import 'dart:async'; import 'package:flutter/material.dart'; import '../../core/auth/auth_service.dart'; import '../../core/payment/google_play_order_recovery.dart'; import '../history/history_screen.dart'; import '../home/home_screen.dart'; import '../profile/profile_screen.dart'; /// Root shell: bottom tabs **Home**, **History**, **Profile** (English labels). class MainScreen extends StatefulWidget { const MainScreen({super.key}); @override State createState() => _MainScreenState(); } class _MainScreenState extends State { int _index = 0; VoidCallback? _cancelLoginRecoveryHook; @override void initState() { super.initState(); _cancelLoginRecoveryHook = AuthService.whenLoginSucceeded( onReady: () { unawaited(runGooglePlayOrderRecovery()); }, ); } @override void dispose() { _cancelLoginRecoveryHook?.call(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( body: IndexedStack( index: _index, children: [ const HomeScreen(), HistoryScreen( isRootTab: true, isTabSelected: _index == 1, ), const ProfileScreen(isRootTab: true), ], ), bottomNavigationBar: NavigationBar( selectedIndex: _index, onDestinationSelected: (i) => setState(() => _index = i), destinations: const [ NavigationDestination( icon: Icon(Icons.home_outlined), selectedIcon: Icon(Icons.home_rounded), label: 'Home', ), NavigationDestination( icon: Icon(Icons.history_outlined), selectedIcon: Icon(Icons.history_rounded), label: 'History', ), NavigationDestination( icon: Icon(Icons.person_outline_rounded), selectedIcon: Icon(Icons.person_rounded), label: 'Profile', ), ], ), ); } }