@@ -3,46 +3,63 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
33import 'package:shared_preferences/shared_preferences.dart' ;
44import 'package:sysadmin/core/theme/app_theme.dart' ;
55import 'package:sysadmin/presentation/screens/dashboard/index.dart' ;
6- import 'package:sysadmin/providers/theme_provider.dart' ;
76import 'package:sysadmin/presentation/screens/onboarding/index.dart' ;
7+ import 'package:sysadmin/providers/theme_provider.dart' ;
88
99void main () async {
1010 WidgetsFlutterBinding .ensureInitialized ();
1111 final prefs = await SharedPreferences .getInstance ();
1212 final bool isOnBoardingDone = prefs.getBool ('isOnBoardingDone' ) ?? false ;
1313 runApp (
1414 ProviderScope (
15- child: SysAdminMaterialApp (isOnBoardingDone: isOnBoardingDone)
15+ child: SysAdminMaterialApp (
16+ isOnBoardingDone: isOnBoardingDone,
17+ )
1618 )
1719 );
1820}
1921
2022// Returns Material App
2123class SysAdminMaterialApp extends ConsumerWidget {
22- final bool isOnBoardingDone;
24+ final bool isOnBoardingDone;
2325
24- const SysAdminMaterialApp ({
26+ const SysAdminMaterialApp ({
2527 super .key,
2628 this .isOnBoardingDone = false ,
2729 });
2830
2931 @override
3032 Widget build (BuildContext context, WidgetRef ref) {
31- final isDark = ref.watch (themeProvider);
32-
33- return MaterialApp (
34- debugShowCheckedModeBanner: false ,
35- theme: AppTheme .lightTheme,
36- darkTheme: AppTheme .darkTheme,
37- themeMode: isDark ? ThemeMode .dark : ThemeMode .light,
38- title: 'SysAdmin' ,
39- home: SysAdminApp (isOnBoardingDone: isOnBoardingDone),
33+ final isDarkTheme = ref.watch (themeProvider);
34+ final initialThemeAsync = ref.watch (initialThemeProvider);
35+
36+ return initialThemeAsync.when (
37+ data: (_) => MaterialApp (
38+ debugShowCheckedModeBanner: false ,
39+ theme: AppTheme .lightTheme,
40+ darkTheme: AppTheme .darkTheme,
41+ themeMode: isDarkTheme ? ThemeMode .dark : ThemeMode .light,
42+ title: 'SysAdmin' ,
43+ home: SysAdminApp (isOnBoardingDone: isOnBoardingDone),
44+ ),
45+ loading: () => const MaterialApp (
46+ home: Scaffold (
47+ body: Center (
48+ child: CircularProgressIndicator (),
49+ ),
50+ ),
51+ ),
52+ error: (error, stack) => MaterialApp (
53+ home: Scaffold (
54+ body: Center (
55+ child: Text ('Error loading theme: $error ' ),
56+ ),
57+ ),
58+ ),
4059 );
4160 }
42-
4361}
4462
45- // Returns Scaffold
4663class SysAdminApp extends StatelessWidget {
4764 final bool isOnBoardingDone;
4865
@@ -53,11 +70,10 @@ class SysAdminApp extends StatelessWidget {
5370
5471 @override
5572 Widget build (BuildContext context) {
56-
57- return Scaffold (
73+ return Scaffold (
5874 body: Center (
5975 child: isOnBoardingDone ? const DashboardScreen () : const OnBoarding (),
6076 ),
6177 );
6278 }
63- }
79+ }
0 commit comments