import 'package:flutter/material.dart'; import 'core/theme/app_theme.dart'; import 'features/gallery/gallery_screen.dart'; import 'features/generate_video/generate_progress_screen.dart'; import 'features/generate_video/generate_video_screen.dart'; import 'features/generate_video/generation_result_screen.dart'; import 'features/home/home_screen.dart'; import 'features/profile/profile_screen.dart'; import 'features/recharge/recharge_screen.dart'; import 'shared/widgets/bottom_nav_bar.dart'; /// Root app widget with navigation class App extends StatefulWidget { const App({super.key}); @override State createState() => _AppState(); } class _AppState extends State { NavTab _currentTab = NavTab.home; @override Widget build(BuildContext context) { return MaterialApp( title: 'AI Video App', theme: AppTheme.light, debugShowCheckedModeBanner: false, initialRoute: '/', routes: { '/': (_) => _MainScaffold( currentTab: _currentTab, onTabSelected: (tab) => setState(() => _currentTab = tab), ), '/recharge': (_) => const RechargeScreen(), '/generate': (_) => const GenerateVideoScreen(), '/progress': (_) => const GenerateProgressScreen(), '/result': (_) => const GenerationResultScreen(), }, ); } } class _MainScaffold extends StatelessWidget { const _MainScaffold({ required this.currentTab, required this.onTabSelected, }); final NavTab currentTab; final ValueChanged onTabSelected; static const _screens = [ HomeScreen(), GalleryScreen(), ProfileScreen(), ]; @override Widget build(BuildContext context) { return Scaffold( body: IndexedStack( index: currentTab.index, children: _screens, ), bottomNavigationBar: BottomNavBar( currentTab: currentTab, onTabSelected: onTabSelected, ), ); } }