import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:login_vault_app/auth_service.dart'; import 'package:login_vault_app/theme_provider.dart'; import 'package:login_vault_app/auth_screen.dart'; import 'package:login_vault_app/dashboard_screen.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); final auth = AuthService(); final theme = ThemeProvider(); final registered = await auth.isRegistered(); final email = await auth.getEmail() ?? ''; runApp( MultiProvider( providers: [ Provider.value(value: auth), ChangeNotifierProvider.value(value: theme), ], child: MyApp(registered: registered, email: email), ), ); } class MyApp extends StatelessWidget { final bool registered; final String email; const MyApp({super.key, required this.registered, required this.email}); @override Widget build(BuildContext context) { final theme = Provider.of(context); return MaterialApp( title: 'Login Vault', theme: ThemeData( useMaterial3: true, brightness: Brightness.light, colorSchemeSeed: Colors.indigo, ), darkTheme: ThemeData( useMaterial3: true, brightness: Brightness.dark, colorSchemeSeed: Colors.indigo, ), themeMode: theme.mode, home: registered ? DashboardScreen( auth: context.read(), theme: theme, email: email, ) : AuthScreen(auth: context.read()), debugShowCheckedModeBanner: false, ); } }