import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:sunny_mochi/core/crash/crash_gate.dart'; import 'package:sunny_mochi/core/router/app_router.dart'; import 'package:sunny_mochi/core/theme/app_theme.dart'; import 'package:sunny_mochi/core/theme/theme_notifier.dart'; class App extends ConsumerWidget { const App({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final router = ref.watch(appRouterProvider); final themeMode = ref.watch(themeModeProvider); final scheme = ref.watch(themeProvider); return MaterialApp.router( title: 'Sunny Mochi', // TODO: 替换为项目应用名 debugShowCheckedModeBanner: false, theme: AppTheme.light(scheme: scheme), darkTheme: AppTheme.dark(scheme: scheme), themeMode: themeMode, routerConfig: router, // CrashGate 在 MaterialApp 内部:showDialog 需要 MaterialLocalizations builder: (context, child) => CrashGate(child: child ?? const SizedBox()), ); } }