Skip to content

Commit c0894be

Browse files
committed
fix theme changing crash, fix button style
1 parent 2dba857 commit c0894be

5 files changed

Lines changed: 32 additions & 15 deletions

File tree

lib/core/common/widgets/drawer/drawer_menu.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,20 +100,20 @@ class DrawerMenu extends StatelessWidget {
100100
},
101101
),
102102
],
103-
DrawerTile(
104-
onTap: () {
105-
Navigator.pop(context);
106-
context.platformPushNamed(Routes.exploreView);
107-
},
108-
text: LocaleText.explore,
109-
icon: Icons.explore),
110103
DrawerTile(
111104
onTap: () {
112105
context.popAndPlatformPushNamed(
113106
Routes.bookmarksView);
114107
},
115108
text: LocaleText.bookmarks,
116109
icon: Icons.bookmarks),
110+
DrawerTile(
111+
onTap: () {
112+
Navigator.pop(context);
113+
context.platformPushNamed(Routes.exploreView);
114+
},
115+
text: LocaleText.explore,
116+
icon: Icons.explore),
117117
DrawerTile(
118118
onTap: () {
119119
context

lib/core/providers/global_providers.dart

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
import 'package:provider/single_child_widget.dart';
1+
import 'package:go_router/go_router.dart';
22
import 'package:provider/provider.dart';
3+
import 'package:provider/single_child_widget.dart';
34
import 'package:waves/core/dependency_injection/dependency_injection.dart';
5+
import 'package:waves/core/routes/app_router.dart';
46
import 'package:waves/core/utilities/theme/theme_mode.dart';
57
import 'package:waves/features/notifications/presentation/controller/notifications_controller.dart';
68
import 'package:waves/features/notifications/repository/notifications_repository.dart';
@@ -19,6 +21,11 @@ class GlobalProviders {
1921
lazy: false,
2022
create: (context) => UserController(),
2123
),
24+
ProxyProvider<UserController, GoRouter>(
25+
lazy: false,
26+
update: (context, userController, previousRouter) =>
27+
previousRouter ?? AppRouter.createRouter(userController),
28+
),
2229
ChangeNotifierProxyProvider<UserController, UserProfileController>(
2330
create: (context) => UserProfileController(accountName: null),
2431
update: (context, userController, previousProfileController) {

lib/core/routes/app_router.dart

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,18 @@ class AppRouter {
3535
static final _shellNavigatorKey = GlobalKey<NavigatorState>();
3636

3737
static GoRouter router(BuildContext context) {
38-
bool isTermsAccepted = context.select<UserController, bool>(
39-
(settingsController) => settingsController.getTermsAcceptedFlag());
38+
return Provider.of<GoRouter>(context, listen: false);
39+
}
4040

41-
String initialPath = isTermsAccepted ? '/' : '/${Routes.welcomeView}';
41+
static GoRouter createRouter(UserController userController) {
42+
final isTermsAccepted = userController.getTermsAcceptedFlag();
43+
final initialPath = isTermsAccepted ? '/' : '/${Routes.welcomeView}';
4244

4345
return GoRouter(
44-
navigatorKey: _rootNavigatorKey,
45-
initialLocation: initialPath,
46-
routes: routes());
46+
navigatorKey: _rootNavigatorKey,
47+
initialLocation: initialPath,
48+
routes: routes(),
49+
);
4750
}
4851

4952
static List<RouteBase> routes() {

lib/features/threads/presentation/thread_feed/view/thread_feed_view.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,10 @@ class _LoginPrompt extends StatelessWidget {
223223
),
224224
const SizedBox(height: 16),
225225
FilledButton(
226+
style: FilledButton.styleFrom(
227+
backgroundColor: theme.primaryColor,
228+
foregroundColor: theme.colorScheme.onPrimary,
229+
),
226230
onPressed: () {
227231
context.platformPushNamed(Routes.authView);
228232
},

lib/main.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
66
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
77
import 'package:get_storage/get_storage.dart';
88
import 'package:package_info_plus/package_info_plus.dart';
9+
import 'package:go_router/go_router.dart';
910
import 'package:provider/provider.dart';
1011
import 'package:waves/core/locales/app_locales.dart';
1112
import 'package:waves/core/providers/global_providers.dart';
@@ -106,8 +107,10 @@ class MyApp extends StatelessWidget {
106107
final double textScaleFactor = isLargeScreen ? 1.15 : 1.0;
107108
final double iconScaleFactor = isLargeScreen ? 1.2 : 1.0;
108109

110+
final router = context.read<GoRouter>();
111+
109112
return MaterialApp.router(
110-
routerConfig: AppRouter.router(context),
113+
routerConfig: router,
111114
localizationsDelegates: context.localizationDelegates,
112115
supportedLocales: context.supportedLocales,
113116
locale: context.locale,

0 commit comments

Comments
 (0)