import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; import '../models/settings.dart'; import '../viewmodels/settings_view_model.dart'; import '../theme.dart'; class KoolTabApp extends StatefulWidget { const KoolTabApp({super.key, required this.router}); final GoRouter router; @override State createState() => _KoolTabAppState(); } class _KoolTabAppState extends State { @override void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { context.read().ensureLoaded(); }); } @override Widget build(BuildContext context) { final settings = context.watch().settings; return MaterialApp.router( title: 'KoolTab', debugShowCheckedModeBanner: false, routerConfig: widget.router, theme: lightTheme, darkTheme: darkTheme, themeMode: _mapThemeMode(settings.themeMode, context), ); } ThemeMode _mapThemeMode(AppThemeMode mode, BuildContext context) { final hasLoaded = context.read().hasLoaded; return switch (mode) { AppThemeMode.dark => ThemeMode.dark, AppThemeMode.light => ThemeMode.light, AppThemeMode.system => hasLoaded ? ThemeMode.system : ThemeMode.dark, }; } }