From ca1f9d93b9e23f8b16706042a69274257870f0df Mon Sep 17 00:00:00 2001 From: PETER IRUNGU <peteralidante254@gmail.com> Date: Mon, 5 Feb 2024 03:56:05 +0300 Subject: [PATCH 1/2] new theme design --- lib/main.dart | 4 +- .../sub => collections/children}/event.dart | 0 .../children}/event_model.dart | 2 +- .../sub => collections/children}/goal.dart | 0 .../sub => collections/children}/meal.dart | 0 .../children/nested}/event_rsvps.dart | 0 .../children}/schedule.dart | 0 .../children}/settings.dart | 0 .../sub => collections/children}/task.dart | 0 .../parents}/community.dart | 0 .../parents}/group.dart | 0 .../parents}/user.dart | 0 lib/{pages => models}/theme/dark.dart | 0 lib/{pages => models}/theme/light.dart | 0 lib/pages/create/add_event.dart | 4 +- lib/pages/home/screens/dashboard.dart | 108 +++++++++++++++++- lib/pages/home/screens/food.dart | 69 ++++++++++- lib/pages/home/screens/schedules.dart | 81 ++++++++++++- lib/pages/home/screens/tasks.dart | 67 ++++++++++- lib/pages/user/account.dart | 2 +- lib/pages/user/add_account_details.dart | 2 +- lib/pages/user/login.dart | 2 +- lib/providers/theme_provider.dart | 9 +- lib/providers/user_provider.dart | 2 +- lib/widgets/common/action_button.dart | 2 +- lib/widgets/common/drawer.dart | 2 +- lib/widgets/styled/input_adder/location.dart | 4 +- lib/widgets/styled/input_adder/repeat.dart | 2 +- pubspec.lock | 90 +++++++-------- pubspec.yaml | 4 +- 30 files changed, 370 insertions(+), 86 deletions(-) rename lib/models/{collection/sub => collections/children}/event.dart (100%) rename lib/models/{collection/sub => collections/children}/event_model.dart (90%) rename lib/models/{collection/sub => collections/children}/goal.dart (100%) rename lib/models/{collection/sub => collections/children}/meal.dart (100%) rename lib/models/{collection/sub/sub => collections/children/nested}/event_rsvps.dart (100%) rename lib/models/{collection/sub => collections/children}/schedule.dart (100%) rename lib/models/{collection/sub => collections/children}/settings.dart (100%) rename lib/models/{collection/sub => collections/children}/task.dart (100%) rename lib/models/{collection => collections/parents}/community.dart (100%) rename lib/models/{collection => collections/parents}/group.dart (100%) rename lib/models/{collection => collections/parents}/user.dart (100%) rename lib/{pages => models}/theme/dark.dart (100%) rename lib/{pages => models}/theme/light.dart (100%) diff --git a/lib/main.dart b/lib/main.dart index 8278b7e..123bd84 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,5 @@ import 'package:Organiser/firebase_options.dart'; -import 'package:Organiser/pages/theme/theme_provider.dart'; +import 'package:Organiser/providers/theme_provider.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; @@ -41,7 +41,7 @@ class _OrganiserAppState extends State<OrganiserApp> { statusBarColor: Colors.transparent, )); return MaterialApp( - theme: Provider.of<ThemeProvider>(context).themeData, + theme: Provider.of<ThemeProvider>(context).themeData, home: SplashScreen( onSelectThemeColor: () {}, ), diff --git a/lib/models/collection/sub/event.dart b/lib/models/collections/children/event.dart similarity index 100% rename from lib/models/collection/sub/event.dart rename to lib/models/collections/children/event.dart diff --git a/lib/models/collection/sub/event_model.dart b/lib/models/collections/children/event_model.dart similarity index 90% rename from lib/models/collection/sub/event_model.dart rename to lib/models/collections/children/event_model.dart index 0a11991..83d8d57 100644 --- a/lib/models/collection/sub/event_model.dart +++ b/lib/models/collections/children/event_model.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:Organiser/models/collection/sub/event.dart'; +import 'package:Organiser/models/collections/children/event.dart'; class EventModel extends ChangeNotifier { List<Event> events = []; diff --git a/lib/models/collection/sub/goal.dart b/lib/models/collections/children/goal.dart similarity index 100% rename from lib/models/collection/sub/goal.dart rename to lib/models/collections/children/goal.dart diff --git a/lib/models/collection/sub/meal.dart b/lib/models/collections/children/meal.dart similarity index 100% rename from lib/models/collection/sub/meal.dart rename to lib/models/collections/children/meal.dart diff --git a/lib/models/collection/sub/sub/event_rsvps.dart b/lib/models/collections/children/nested/event_rsvps.dart similarity index 100% rename from lib/models/collection/sub/sub/event_rsvps.dart rename to lib/models/collections/children/nested/event_rsvps.dart diff --git a/lib/models/collection/sub/schedule.dart b/lib/models/collections/children/schedule.dart similarity index 100% rename from lib/models/collection/sub/schedule.dart rename to lib/models/collections/children/schedule.dart diff --git a/lib/models/collection/sub/settings.dart b/lib/models/collections/children/settings.dart similarity index 100% rename from lib/models/collection/sub/settings.dart rename to lib/models/collections/children/settings.dart diff --git a/lib/models/collection/sub/task.dart b/lib/models/collections/children/task.dart similarity index 100% rename from lib/models/collection/sub/task.dart rename to lib/models/collections/children/task.dart diff --git a/lib/models/collection/community.dart b/lib/models/collections/parents/community.dart similarity index 100% rename from lib/models/collection/community.dart rename to lib/models/collections/parents/community.dart diff --git a/lib/models/collection/group.dart b/lib/models/collections/parents/group.dart similarity index 100% rename from lib/models/collection/group.dart rename to lib/models/collections/parents/group.dart diff --git a/lib/models/collection/user.dart b/lib/models/collections/parents/user.dart similarity index 100% rename from lib/models/collection/user.dart rename to lib/models/collections/parents/user.dart diff --git a/lib/pages/theme/dark.dart b/lib/models/theme/dark.dart similarity index 100% rename from lib/pages/theme/dark.dart rename to lib/models/theme/dark.dart diff --git a/lib/pages/theme/light.dart b/lib/models/theme/light.dart similarity index 100% rename from lib/pages/theme/light.dart rename to lib/models/theme/light.dart diff --git a/lib/pages/create/add_event.dart b/lib/pages/create/add_event.dart index 76cda85..87de66b 100644 --- a/lib/pages/create/add_event.dart +++ b/lib/pages/create/add_event.dart @@ -1,8 +1,8 @@ import 'package:Organiser/widgets/styled/input_adder/repeat.dart'; import 'package:Organiser/widgets/styled/input_adder/timezone.dart'; import 'package:flutter/material.dart'; -import 'package:Organiser/models/collection/sub/event.dart'; -import 'package:Organiser/models/collection/sub/event_model.dart'; +import 'package:Organiser/models/collections/children/event.dart'; +import 'package:Organiser/models/collections/children/event_model.dart'; import 'package:Organiser/widgets/styled/input_adder/title.dart'; import 'package:Organiser/widgets/styled/input_adder/note.dart'; import 'package:Organiser/widgets/styled/input_adder/cartegory.dart'; diff --git a/lib/pages/home/screens/dashboard.dart b/lib/pages/home/screens/dashboard.dart index 4da2dfb..23830b3 100644 --- a/lib/pages/home/screens/dashboard.dart +++ b/lib/pages/home/screens/dashboard.dart @@ -4,13 +4,15 @@ import 'package:Organiser/widgets/common/drawer.dart'; import 'package:flutter/material.dart'; class Dashboard extends StatefulWidget { - const Dashboard({Key? key}); + const Dashboard({Key? key}) : super(key: key); @override State<Dashboard> createState() => _DashboardState(); } class _DashboardState extends State<Dashboard> { + String selectedFilter = 'This Week'; + @override Widget build(BuildContext context) { return Scaffold( @@ -19,12 +21,112 @@ class _DashboardState extends State<Dashboard> { body: SingleChildScrollView( child: IntrinsicHeight( child: Column( - children: [Center(child: Text("Dashboard"))], + mainAxisAlignment: MainAxisAlignment.center, + children: [ + _buildFilterChips(), + SizedBox(height: 20), + _buildHighlights(), + SizedBox(height: 20), + _buildInsights(), + ], ), ), ), - floatingActionButton: CustomFAB(), + floatingActionButton: CustomFAB(), floatingActionButtonLocation: FloatingActionButtonLocation.miniEndFloat, ); } + + Widget _buildFilterChips() { + List<String> filters = ['This Week', 'Today', 'This Month', 'This Year']; + + return Wrap( + spacing: 8.0, + children: filters.map((filter) { + return FilterChip( + label: Text(filter), + selected: selectedFilter == filter, + onSelected: (isSelected) { + setState(() { + selectedFilter = isSelected ? filter : 'This Week'; + }); + }, + ); + }).toList(), + ); + } + + Widget _buildHighlights() { + return Container( + padding: EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.grey[200], + borderRadius: BorderRadius.circular(10), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Highlights', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + SizedBox(height: 10), + // Add widgets for highlights (tasks, events, calendars) + // Example: + ListTile( + leading: Icon(Icons.check_circle, color: Colors.green), + title: Text('Completed Task 1'), + ), + ListTile( + leading: Icon(Icons.event, color: Colors.blue), + title: Text('Upcoming Event 1'), + ), + ListTile( + leading: Icon(Icons.calendar_today, color: Colors.orange), + title: Text('Calendar Event 1'), + ), + ], + ), + ); + } + + Widget _buildInsights() { + return Container( + padding: EdgeInsets.all(16), + margin: EdgeInsets.symmetric(vertical: 20), + decoration: BoxDecoration( + color: Colors.grey[200], + borderRadius: BorderRadius.circular(10), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Insights', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + SizedBox(height: 10), + // Add widgets for insights (progress bars, charts, etc.) + // Example: + _buildProgressBar('Task Progress', 0.8), // 80% progress + _buildProgressBar('Event Completion', 0.6), // 60% completion + ], + ), + ); + } + + Widget _buildProgressBar(String label, double value) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(label), + LinearProgressIndicator( + value: value, + backgroundColor: Colors.grey[300], + valueColor: AlwaysStoppedAnimation<Color>(Colors.blue), + ), + SizedBox(height: 10), + ], + ); + } } diff --git a/lib/pages/home/screens/food.dart b/lib/pages/home/screens/food.dart index bc1650c..af83517 100644 --- a/lib/pages/home/screens/food.dart +++ b/lib/pages/home/screens/food.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; class Food extends StatefulWidget { - const Food({Key? key}); + const Food({Key? key}) : super(key: key); @override State<Food> createState() => _FoodState(); @@ -10,12 +10,71 @@ class Food extends StatefulWidget { class _FoodState extends State<Food> { @override Widget build(BuildContext context) { - return SingleChildScrollView( - child: IntrinsicHeight( - child: Column( - children: [Center(child: Text("Food"))], + return DefaultTabController( + length: 2, + child: Scaffold( + appBar: AppBar( + title: Text('Food'), + bottom: TabBar( + labelColor: Theme.of(context).colorScheme.primary, + indicatorColor: Theme.of(context).colorScheme.primary, + unselectedLabelColor: Theme.of(context).hintColor, + tabs: [ + Tab(text: 'Meals'), + Tab(text: 'Marketplace'), + ], + ), + ), + body: TabBarView( + children: [ + _buildMealsPage(), + _buildMarketplacePage(), + ], ), ), ); } + + Widget _buildMealsPage() { + return SingleChildScrollView( + child: Column( + children: [ + Card( + child: ListTile( + title: Text('Meal 1'), + subtitle: Text('Description for Meal 1'), + // Customize the card as needed for your meal representation + ), + ), + Card( + child: ListTile( + title: Text('Meal 2'), + subtitle: Text('Description for Meal 2'), + // Customize the card as needed for your meal representation + ), + ), + // Add more cards for other meals + ], + ), + ); + } + + Widget _buildMarketplacePage() { + List<String> restaurants = [ + 'Restaurant A', + 'Restaurant B', + 'Restaurant C', + // Add more restaurants as needed + ]; + + return ListView.builder( + itemCount: restaurants.length, + itemBuilder: (context, index) { + return ListTile( + title: Text(restaurants[index]), + // Customize the ListTile as needed for your restaurant representation + ); + }, + ); + } } diff --git a/lib/pages/home/screens/schedules.dart b/lib/pages/home/screens/schedules.dart index d18823a..d157396 100644 --- a/lib/pages/home/screens/schedules.dart +++ b/lib/pages/home/screens/schedules.dart @@ -1,21 +1,90 @@ import 'package:flutter/material.dart'; +import 'package:syncfusion_flutter_calendar/calendar.dart'; class Schedules extends StatefulWidget { - const Schedules({Key? key}); + const Schedules({Key? key}) : super(key: key); @override State<Schedules> createState() => _SchedulesState(); } -class _SchedulesState extends State<Schedules> { +class _SchedulesState extends State<Schedules> + with SingleTickerProviderStateMixin { + late TabController _tabController; + + @override + void initState() { + super.initState(); + _tabController = TabController(length: 2, vsync: this); + } + @override Widget build(BuildContext context) { - return SingleChildScrollView( - child: IntrinsicHeight( - child: Column( - + return Scaffold( + appBar: AppBar( + title: Text('My Calendars'), + bottom: TabBar( + labelColor: Theme.of(context).colorScheme.primary, + indicatorColor: Theme.of(context).colorScheme.primary, + unselectedLabelColor: Theme.of(context).hintColor, + controller: _tabController, + tabs: [ + Tab(text: 'Schedules'), + Tab(text: 'Events',), + ], ), ), + body: TabBarView( + controller: _tabController, + children: [ + _buildSchedulesView(), + _buildEventsView(), + ], + ), ); } + + Widget _buildSchedulesView() { + return SfCalendar( + view: CalendarView.timelineWeek, + dataSource: _getCalendarDataSource(), + ); + } + + Widget _buildEventsView() { + // You can customize this view for displaying events + return Center( + child: Text('Events View'), + ); + } + + // Method to create a data source for the calendar + _DataSource _getCalendarDataSource() { + List<Appointment> appointments = <Appointment>[]; + + // Add your events to the list of appointments + appointments.add(Appointment( + startTime: DateTime.now(), + endTime: DateTime.now().add(Duration(hours: 2)), + subject: 'Meeting 1', + color: Colors.blue, + )); + + appointments.add(Appointment( + startTime: DateTime.now().add(Duration(days: 1)), + endTime: DateTime.now().add(Duration(days: 1, hours: 1)), + subject: 'Meeting 2', + color: Colors.green, + )); + + // Return the data source + return _DataSource(appointments); + } +} + +// Data source class +class _DataSource extends CalendarDataSource { + _DataSource(List<Appointment> source) { + appointments = source; + } } diff --git a/lib/pages/home/screens/tasks.dart b/lib/pages/home/screens/tasks.dart index f17153c..d2bbd5b 100644 --- a/lib/pages/home/screens/tasks.dart +++ b/lib/pages/home/screens/tasks.dart @@ -1,21 +1,76 @@ import 'package:flutter/material.dart'; class Tasks extends StatefulWidget { - const Tasks({Key? key}); + const Tasks({Key? key}) : super(key: key); @override State<Tasks> createState() => _TasksState(); } class _TasksState extends State<Tasks> { + List<String> tasks = [ + 'Task 1', + 'Task 2', + 'Task 3', + 'Task 4', + 'Task 5', + 'Task 6', + 'Task 7', + 'Task 8', + ]; + + List<String> filters = ['All', 'Pending', 'Completed']; + String selectedFilter = 'All'; + @override Widget build(BuildContext context) { - return SingleChildScrollView( - child: IntrinsicHeight( - child: Column( - children: [Center(child: Text("Tasks"))], - ), + return Scaffold( + appBar: AppBar( + title: Text('Tasks'), + actions: [ + _buildFilterChips(), + ], ), + body: _buildTaskList(), + ); + } + + Widget _buildFilterChips() { + return Wrap( + spacing: 8.0, + children: filters.map((filter) { + return FilterChip( + label: Text(filter), + selected: selectedFilter == filter, + onSelected: (isSelected) { + setState(() { + selectedFilter = isSelected ? filter : 'All'; + }); + }, + ); + }).toList(), + ); + } + + Widget _buildTaskList() { + List<String> filteredTasks = tasks; + + // Apply filtering based on the selected filter + if (selectedFilter != 'All') { + filteredTasks = tasks.where((task) { + // You can customize this condition based on your task status + return task.contains(selectedFilter); + }).toList(); + } + + return ListView.builder( + itemCount: filteredTasks.length, + itemBuilder: (context, index) { + return ListTile( + title: Text(filteredTasks[index]), + // Customize the ListTile as needed for your task representation + ); + }, ); } } diff --git a/lib/pages/user/account.dart b/lib/pages/user/account.dart index c427901..64377b9 100644 --- a/lib/pages/user/account.dart +++ b/lib/pages/user/account.dart @@ -1,4 +1,4 @@ -import 'package:Organiser/models/collection/user.dart'; +import 'package:Organiser/models/collections/parents/user.dart'; import 'package:Organiser/dialogues/logout.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; diff --git a/lib/pages/user/add_account_details.dart b/lib/pages/user/add_account_details.dart index 7d04a73..a4d20bb 100644 --- a/lib/pages/user/add_account_details.dart +++ b/lib/pages/user/add_account_details.dart @@ -1,5 +1,5 @@ import 'dart:io'; -import 'package:Organiser/models/collection/user.dart'; +import 'package:Organiser/models/collections/parents/user.dart'; import 'package:flutter/material.dart'; import 'package:image_picker/image_picker.dart'; import 'package:firebase_auth/firebase_auth.dart'; diff --git a/lib/pages/user/login.dart b/lib/pages/user/login.dart index 7f85336..74ce71a 100644 --- a/lib/pages/user/login.dart +++ b/lib/pages/user/login.dart @@ -1,4 +1,4 @@ -import 'package:Organiser/models/collection/user.dart'; +import 'package:Organiser/models/collections/parents/user.dart'; import 'package:Organiser/pages/user/forgot_pwd.dart'; import 'package:Organiser/pages/user/register.dart'; import 'package:Organiser/providers/user_provider.dart'; diff --git a/lib/providers/theme_provider.dart b/lib/providers/theme_provider.dart index 2dbbb38..9b04fb0 100644 --- a/lib/providers/theme_provider.dart +++ b/lib/providers/theme_provider.dart @@ -1,5 +1,5 @@ -import 'package:Organiser/pages/theme/dark.dart'; -import 'package:Organiser/pages/theme/light.dart'; +import 'package:Organiser/models/theme/dark.dart'; +import 'package:Organiser/models/theme/light.dart'; import 'package:flutter/material.dart'; class ThemeProvider with ChangeNotifier { @@ -12,12 +12,11 @@ class ThemeProvider with ChangeNotifier { notifyListeners(); } - void toggleTheme(){ - if(_themeData == lightMode){ + void toggleTheme() { + if (_themeData == lightMode) { themeData = darkMode; } else { themeData = lightMode; } } - } diff --git a/lib/providers/user_provider.dart b/lib/providers/user_provider.dart index c51a0cc..f826e37 100644 --- a/lib/providers/user_provider.dart +++ b/lib/providers/user_provider.dart @@ -1,4 +1,4 @@ -import 'package:Organiser/models/collection/user.dart'; +import 'package:Organiser/models/collections/parents/user.dart'; import 'package:flutter/material.dart'; class UserProvider extends ChangeNotifier { diff --git a/lib/widgets/common/action_button.dart b/lib/widgets/common/action_button.dart index eded805..f38f9eb 100644 --- a/lib/widgets/common/action_button.dart +++ b/lib/widgets/common/action_button.dart @@ -1,4 +1,4 @@ -import 'package:Organiser/models/collection/sub/event_model.dart'; +import 'package:Organiser/models/collections/children/event_model.dart'; import 'package:Organiser/pages/create/add_event.dart'; import 'package:flutter/material.dart'; diff --git a/lib/widgets/common/drawer.dart b/lib/widgets/common/drawer.dart index b1cc263..ae67bf6 100644 --- a/lib/widgets/common/drawer.dart +++ b/lib/widgets/common/drawer.dart @@ -1,8 +1,8 @@ +import 'package:Organiser/models/theme/light.dart'; import 'package:Organiser/pages/info/about.dart'; import 'package:Organiser/pages/info/tips.dart'; import 'package:Organiser/pages/settings/settings.dart'; import 'package:Organiser/pages/theme/color.dart'; -import 'package:Organiser/pages/theme/light.dart'; import 'package:Organiser/pages/user/account.dart'; import 'package:Organiser/dialogues/logout.dart'; import 'package:Organiser/dialogues/rate_app.dart'; diff --git a/lib/widgets/styled/input_adder/location.dart b/lib/widgets/styled/input_adder/location.dart index 1ea8257..09f5c12 100644 --- a/lib/widgets/styled/input_adder/location.dart +++ b/lib/widgets/styled/input_adder/location.dart @@ -1,5 +1,5 @@ -import 'package:Organiser/pages/theme/light.dart'; -import 'package:Organiser/pages/theme/theme_provider.dart'; +import 'package:Organiser/models/theme/light.dart'; +import 'package:Organiser/providers/theme_provider.dart'; import 'package:flutter/material.dart'; import 'dart:ui' as ui; diff --git a/lib/widgets/styled/input_adder/repeat.dart b/lib/widgets/styled/input_adder/repeat.dart index 062c15c..f95f305 100644 --- a/lib/widgets/styled/input_adder/repeat.dart +++ b/lib/widgets/styled/input_adder/repeat.dart @@ -1,5 +1,5 @@ // repeat_adder.dart -import 'package:Organiser/models/collection/sub/event.dart'; +import 'package:Organiser/models/collections/children/event.dart'; import 'package:flutter/material.dart'; // ignore: must_be_immutable diff --git a/pubspec.lock b/pubspec.lock index 3c4e858..76f7278 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -101,10 +101,10 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.18.0" convert: dependency: transitive description: @@ -420,10 +420,10 @@ packages: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" mime: dependency: transitive description: @@ -601,18 +601,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" string_scanner: dependency: transitive description: @@ -621,6 +621,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + syncfusion_flutter_calendar: + dependency: "direct main" + description: + name: syncfusion_flutter_calendar + sha256: ac959ddb9d2d3d153bcacb061167fe5fc559d213598f4481058f641938b73151 + url: "https://pub.dev" + source: hosted + version: "24.1.47" + syncfusion_flutter_core: + dependency: transitive + description: + name: syncfusion_flutter_core + sha256: ed8527189f874b9d07f78f2f4306739ce003e8baccfdd7453c0098beef16428f + url: "https://pub.dev" + source: hosted + version: "24.1.47" + syncfusion_flutter_datepicker: + dependency: transitive + description: + name: syncfusion_flutter_datepicker + sha256: "374ab719b7591af6bf81dabe2db60fa85968bbf4d29522fe61979344454dcc7a" + url: "https://pub.dev" + source: hosted + version: "24.1.47" table_calendar: dependency: "direct main" description: @@ -641,10 +665,18 @@ packages: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.6.1" + timezone: + dependency: transitive + description: + name: timezone + sha256: "1cfd8ddc2d1cfd836bc93e67b9be88c3adaeca6f40a00ca999104c30693cdca0" + url: "https://pub.dev" + source: hosted + version: "0.9.2" typed_data: dependency: transitive description: @@ -729,42 +761,10 @@ packages: dependency: transitive description: name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 - url: "https://pub.dev" - source: hosted - version: "0.1.4-beta" - webview_flutter: - dependency: "direct main" - description: - name: webview_flutter - sha256: "392c1d83b70fe2495de3ea2c84531268d5b8de2de3f01086a53334d8b6030a88" - url: "https://pub.dev" - source: hosted - version: "3.0.4" - webview_flutter_android: - dependency: transitive - description: - name: webview_flutter_android - sha256: "8b3b2450e98876c70bfcead876d9390573b34b9418c19e28168b74f6cb252dbd" - url: "https://pub.dev" - source: hosted - version: "2.10.4" - webview_flutter_platform_interface: - dependency: transitive - description: - name: webview_flutter_platform_interface - sha256: "812165e4e34ca677bdfbfa58c01e33b27fd03ab5fa75b70832d4b7d4ca1fa8cf" - url: "https://pub.dev" - source: hosted - version: "1.9.5" - webview_flutter_wkwebview: - dependency: transitive - description: - name: webview_flutter_wkwebview - sha256: a5364369c758892aa487cbf59ea41d9edd10f9d9baf06a94e80f1bd1b4c7bbc0 + sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 url: "https://pub.dev" source: hosted - version: "2.9.5" + version: "0.3.0" win32: dependency: transitive description: @@ -798,5 +798,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.1.5 <4.0.0" + dart: ">=3.2.0-194.0.dev <4.0.0" flutter: ">=3.13.0" diff --git a/pubspec.yaml b/pubspec.yaml index b56ab6d..acbe820 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -30,7 +30,7 @@ environment: dependencies: flutter: sdk: flutter - table_calendar: ^3.0.1 + table_calendar: ^3.0.9 cupertino_icons: ^1.0.2 numberpicker: ^2.1.2 firebase_core: ^2.24.2 @@ -41,7 +41,7 @@ dependencies: firebase_auth: ^4.15.3 cloud_firestore: ^4.13.6 url_launcher: ^6.2.2 - webview_flutter: ^3.0.0 + syncfusion_flutter_calendar: ^24.1.47 dev_dependencies: From ce86e49c797c3fb16b8bac762b8b33fdf2d323f6 Mon Sep 17 00:00:00 2001 From: PETER IRUNGU <peteralidante254@gmail.com> Date: Mon, 5 Feb 2024 18:07:27 +0300 Subject: [PATCH 2/2] update mode --- lib/models/theme/dark.dart | 16 +++++++-------- lib/models/theme/light.dart | 19 +++++++++--------- lib/pages/home/home_page.dart | 2 ++ lib/pages/home/screens/dashboard.dart | 5 ----- lib/pages/home/screens/socials.dart | 4 ++-- lib/widgets/common/action_button.dart | 2 +- lib/widgets/common/drawer.dart | 29 ++++++++++++++------------- 7 files changed, 38 insertions(+), 39 deletions(-) diff --git a/lib/models/theme/dark.dart b/lib/models/theme/dark.dart index 7653e14..4ac53ad 100644 --- a/lib/models/theme/dark.dart +++ b/lib/models/theme/dark.dart @@ -4,25 +4,25 @@ ThemeData darkMode = ThemeData( brightness: Brightness.dark, colorScheme: ColorScheme.dark( background: Colors.black, - primary: Colors.green.shade200, - secondary: Colors.green.shade800, + primary: Colors.cyan.shade200, + secondary: Colors.cyan.shade800, ), appBarTheme: AppBarTheme( centerTitle: true, - backgroundColor: Colors.green.shade800, + backgroundColor: Colors.cyan.shade800, foregroundColor: Colors.white, elevation: 1), bottomNavigationBarTheme: BottomNavigationBarThemeData( unselectedItemColor: Colors.grey.shade400.withOpacity(0.8), - selectedItemColor: Colors.green.shade200, - selectedLabelStyle: TextStyle(fontWeight: FontWeight.bold, fontSize: 8), - selectedIconTheme: IconThemeData(size: 35), + selectedItemColor: Colors.cyan.shade200, + selectedLabelStyle: TextStyle(fontWeight: FontWeight.bold, fontSize: 10), + selectedIconTheme: IconThemeData(size: 25), unselectedIconTheme: IconThemeData(size: 20), - backgroundColor: Colors.green.shade800), + backgroundColor: Colors.cyan.shade800), scaffoldBackgroundColor: Colors.grey.shade900, cardTheme: CardTheme(color: Colors.black12), shadowColor: Colors.black, - drawerTheme: DrawerThemeData(backgroundColor: Colors.black54), + drawerTheme: DrawerThemeData(backgroundColor: Colors.black87), dialogTheme: DialogTheme( backgroundColor: Colors.grey.shade800.withOpacity(0.9), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(50)), diff --git a/lib/models/theme/light.dart b/lib/models/theme/light.dart index 2fd3066..9b40fff 100644 --- a/lib/models/theme/light.dart +++ b/lib/models/theme/light.dart @@ -1,30 +1,31 @@ import 'package:flutter/material.dart'; ThemeData lightMode = ThemeData( + primaryColor: Colors.cyan, cardTheme: CardTheme(color: Colors.white, elevation: 1), drawerTheme: - DrawerThemeData(backgroundColor: Colors.green.shade50.withOpacity(0.9)), + DrawerThemeData(backgroundColor: Colors.cyan.shade50,), scaffoldBackgroundColor: Colors.grey.shade50, brightness: Brightness.light, colorScheme: ColorScheme.light( background: Colors.grey.shade400, - primary: Colors.green, - secondary: Colors.green.shade50, + primary: Colors.cyan, + secondary: Colors.cyan.shade50, ), appBarTheme: AppBarTheme( centerTitle: true, - backgroundColor: Colors.green.shade50, + backgroundColor: Colors.cyan.shade50, foregroundColor: Colors.black87, elevation: 1), bottomNavigationBarTheme: BottomNavigationBarThemeData( unselectedItemColor: Colors.black38, - selectedItemColor: Colors.green, - selectedLabelStyle: TextStyle(fontWeight: FontWeight.bold, fontSize: 8), - selectedIconTheme: IconThemeData(size: 35), + selectedItemColor: Colors.cyan, + selectedLabelStyle: TextStyle(fontWeight: FontWeight.bold, fontSize: 10), + selectedIconTheme: IconThemeData(size: 25), unselectedIconTheme: IconThemeData(size: 20), - backgroundColor: Colors.green.shade50), + backgroundColor: Colors.cyan.shade50), dialogTheme: DialogTheme( - backgroundColor: Colors.green.shade50.withOpacity(0.95), + backgroundColor: Colors.cyan.shade50.withOpacity(0.95), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(50)), ), shadowColor: Colors.grey.shade200, diff --git a/lib/pages/home/home_page.dart b/lib/pages/home/home_page.dart index a7ccd1d..b74930e 100644 --- a/lib/pages/home/home_page.dart +++ b/lib/pages/home/home_page.dart @@ -3,6 +3,7 @@ import 'package:Organiser/pages/home/screens/food.dart'; import 'package:Organiser/pages/home/screens/schedules.dart'; import 'package:Organiser/pages/home/screens/tasks.dart'; import 'package:Organiser/widgets/common/bottom_app_bar.dart'; +import 'package:Organiser/widgets/common/drawer.dart'; import 'package:flutter/material.dart'; import 'screens/dashboard.dart'; @@ -27,6 +28,7 @@ class _HomePageState extends State<HomePage> { Widget build(BuildContext context) { return Scaffold( body: _screens[_currentIndex], + drawer: CustomDrawer(), bottomNavigationBar: CustomBottomAppBar( currentIndex: _currentIndex, onTap: (index) { diff --git a/lib/pages/home/screens/dashboard.dart b/lib/pages/home/screens/dashboard.dart index 23830b3..63e7f4e 100644 --- a/lib/pages/home/screens/dashboard.dart +++ b/lib/pages/home/screens/dashboard.dart @@ -1,6 +1,5 @@ import 'package:Organiser/widgets/common/action_button.dart'; import 'package:Organiser/widgets/common/app_bar.dart'; -import 'package:Organiser/widgets/common/drawer.dart'; import 'package:flutter/material.dart'; class Dashboard extends StatefulWidget { @@ -17,7 +16,6 @@ class _DashboardState extends State<Dashboard> { Widget build(BuildContext context) { return Scaffold( appBar: CustomAppBar(), - drawer: CustomDrawer(), body: SingleChildScrollView( child: IntrinsicHeight( child: Column( @@ -60,7 +58,6 @@ class _DashboardState extends State<Dashboard> { return Container( padding: EdgeInsets.all(16), decoration: BoxDecoration( - color: Colors.grey[200], borderRadius: BorderRadius.circular(10), ), child: Column( @@ -95,7 +92,6 @@ class _DashboardState extends State<Dashboard> { padding: EdgeInsets.all(16), margin: EdgeInsets.symmetric(vertical: 20), decoration: BoxDecoration( - color: Colors.grey[200], borderRadius: BorderRadius.circular(10), ), child: Column( @@ -122,7 +118,6 @@ class _DashboardState extends State<Dashboard> { Text(label), LinearProgressIndicator( value: value, - backgroundColor: Colors.grey[300], valueColor: AlwaysStoppedAnimation<Color>(Colors.blue), ), SizedBox(height: 10), diff --git a/lib/pages/home/screens/socials.dart b/lib/pages/home/screens/socials.dart index 6ffe777..9a9b81c 100644 --- a/lib/pages/home/screens/socials.dart +++ b/lib/pages/home/screens/socials.dart @@ -65,7 +65,7 @@ class Screen1 extends StatelessWidget { onPressed: () {}, child: Icon( Icons.group_add_rounded, - color: Theme.of(context).colorScheme.primary, + color: Theme.of(context).colorScheme.secondary, ), )); } @@ -89,7 +89,7 @@ class Screen2 extends StatelessWidget { onPressed: () {}, child: Icon( Icons.domain_add_sharp, - color: Theme.of(context).colorScheme.primary, + color: Theme.of(context).colorScheme.secondary, ), )); } diff --git a/lib/widgets/common/action_button.dart b/lib/widgets/common/action_button.dart index f38f9eb..bf6deca 100644 --- a/lib/widgets/common/action_button.dart +++ b/lib/widgets/common/action_button.dart @@ -98,7 +98,7 @@ class _CustomFABState extends State<CustomFAB> Icon( icon, size: 25.0, - color: Theme.of(context).colorScheme.primary, + color: Theme.of(context).colorScheme.secondary, ), ], ), diff --git a/lib/widgets/common/drawer.dart b/lib/widgets/common/drawer.dart index ae67bf6..0f9ac33 100644 --- a/lib/widgets/common/drawer.dart +++ b/lib/widgets/common/drawer.dart @@ -83,8 +83,8 @@ class CustomDrawer extends StatelessWidget { Text( 'alidante@gmail.com', style: TextStyle( - fontSize: 14.0, - color: Colors.grey, + fontSize: 16.0, + color: Theme.of(context).hintColor, ), ), ], @@ -101,8 +101,8 @@ class CustomDrawer extends StatelessWidget { Text( '25', style: TextStyle( - fontSize: 14.0, - color: Colors.grey, + fontSize: 16.0, + color: Theme.of(context).hintColor, ), ), ], @@ -114,6 +114,7 @@ class CustomDrawer extends StatelessWidget { ), Divider( height: 1, + color: Theme.of(context).hintColor.withOpacity(0.2), ), Expanded( child: ListView( @@ -212,11 +213,12 @@ class CustomDrawer extends StatelessWidget { ), Divider( height: 1, + color: Theme.of(context).hintColor.withOpacity(0.2), ), Container( child: Padding( padding: const EdgeInsets.only( - top: 12, left: 16.0, bottom: 12.0, right: 10.0), + top: 12, left: 16.0, bottom: 12.0, right: 20.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -224,8 +226,8 @@ class CustomDrawer extends StatelessWidget { '© 2023 Alidante', style: TextStyle( fontSize: 14.0, - color: Colors.grey, - fontWeight: FontWeight.w100, + color: Theme.of(context).hintColor, + fontWeight: FontWeight.w300, ), ), GestureDetector( @@ -234,13 +236,12 @@ class CustomDrawer extends StatelessWidget { _showConfirmationDialog(context); }, child: Row(children: <Widget>[ - Text("Log out"), - SizedBox( - width: 3, - ), - Icon( - Icons.arrow_circle_right_outlined, - color: Theme.of(context).colorScheme.primary, + Text( + "Log out", + style: TextStyle( + color: Colors.red, + fontSize: 14, + fontWeight: FontWeight.bold), ), ]), )