import 'package:flutter/material.dart'; import 'package:frontend/provider/theme_provider.dart'; import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; import 'values/strings.dart'; import 'main_scaffold.dart'; // providers import 'provider/quote_provider.dart'; // pages import 'pages/list.dart'; import 'pages/add.dart'; import 'pages/flashcards.dart'; import 'pages/leaderboard.dart'; //import 'pages/settings.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); final isDark = await loadDarkMode(); runApp( MultiProvider( providers: [ ChangeNotifierProvider( create: (_) => QuoteProvider() ), ChangeNotifierProvider( create: (_) => ThemeProvider(isDark: isDark) ) ], child: HlaskovnikFrontendApp() ) ); } class HlaskovnikFrontendApp extends StatelessWidget { HlaskovnikFrontendApp({super.key}); final _router = GoRouter( routes: [ ShellRoute( builder: (context, state, child) { return MainScaffold(child: child); }, routes: [ GoRoute(path: '/', builder: (context, state) => ListPage()), GoRoute(path: '/add', builder: (context, state) => AddPage()), GoRoute(path: '/flashcards', builder: (context, state) => FlashcardsPage()), GoRoute(path: '/leaderboard', builder: (context, state) => LeaderboardPage()), //GoRoute(path: '/settings', builder: (context, state) => SettingsPage()), ], ), ], ); @override Widget build(BuildContext context) { final themeProvider = context.watch(); return MaterialApp.router( title: Strings.appName, theme: ThemeData( colorScheme: ColorScheme.fromSeed( seedColor: Colors.red, brightness: Brightness.light, ), useMaterial3: true, ), darkTheme: ThemeData( colorScheme: ColorScheme.fromSeed( seedColor: Colors.red, brightness: Brightness.dark, ), useMaterial3: true, ), themeMode: themeProvider.isDark ? ThemeMode.dark : ThemeMode.system, routerConfig: _router, ); } }