import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:wandergo/core/l10n/l10n.dart'; import 'package:wandergo/core/l10n/locale_provider.dart'; import 'package:wandergo/core/router/app_router.dart'; import 'package:wandergo/core/theme/app_theme.dart'; import 'package:wandergo/core/theme/system_bars.dart'; /// 앱 뿌리 — 테마 · 언어 · 화면 이동 class WanderGoApp extends ConsumerWidget { const WanderGoApp({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp.router( onGenerateTitle: (context) => context.l10n.appTitle, debugShowCheckedModeBanner: false, theme: AppTheme.light(), // null 이면 기기 언어. 지원하지 않는 언어는 supportedLocales 의 첫 항목(영어) locale: ref.watch(appLocaleProvider), supportedLocales: AppLocalizations.supportedLocales, localizationsDelegates: AppLocalizations.localizationsDelegates, routerConfig: ref.watch(routerProvider), // 상단 바가 없는 화면의 상태 표시줄 기본값 — 흰 바탕이라 검은 글자. // 사진 위처럼 다르게 보여야 하는 화면은 안쪽에서 AnnotatedRegion 으로 덮어쓴다 builder: (context, child) => AnnotatedRegion( value: kStatusBarDark, child: child ?? const SizedBox.shrink(), ), ); } }