Files
enaklo-flutter/lib/presentation/pages/main/main_page.dart
T

62 lines
1.8 KiB
Dart
Raw Normal View History

2025-08-27 18:51:14 +07:00
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
2025-09-18 12:25:48 +07:00
import 'package:flutter_bloc/flutter_bloc.dart';
2025-08-27 18:51:14 +07:00
2025-09-18 12:25:48 +07:00
import '../../../application/auth/auth_bloc.dart';
2025-08-27 18:51:14 +07:00
import '../../router/app_router.gr.dart';
import 'widgets/bottom_navbar.dart';
@RoutePage()
2025-09-18 12:25:48 +07:00
class MainPage extends StatefulWidget {
2025-08-27 18:51:14 +07:00
const MainPage({super.key});
2025-09-18 12:25:48 +07:00
@override
State<MainPage> createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
@override
initState() {
super.initState();
context.read<AuthBloc>().add(const AuthEvent.fetchCurrentUser());
}
2026-10-10 02:33:16 +07:00
/// Beranda EnakPoint & EnakCoin: tukar, transfer, game, dan voucher.
void _openWallet() {
final isAuthenticated = context.read<AuthBloc>().state.isAuthenticated;
context.router.push(
2026-10-10 02:33:16 +07:00
isAuthenticated ? const WalletRoute() : const OnboardingRoute(),
);
}
2025-08-27 18:51:14 +07:00
@override
Widget build(BuildContext context) {
return AutoTabsRouter.pageView(
2026-01-16 12:26:06 +07:00
routes: [
HomeRoute(),
// VoucherRoute(),
OrderRoute(),
CommunityRoute(),
2026-01-16 12:26:06 +07:00
ProfileRoute(),
],
2025-08-27 18:51:14 +07:00
physics: const NeverScrollableScrollPhysics(),
builder: (context, child, pageController) {
// Docked FAB ikut naik ke atas keyboard; sembunyikan saat mengetik.
final isKeyboardOpen = MediaQuery.viewInsetsOf(context).bottom > 0;
return Scaffold(
body: child,
floatingActionButton: isKeyboardOpen
? null
2026-10-10 02:33:16 +07:00
: MainWalletButton(onPressed: _openWallet),
floatingActionButtonLocation: const MainWalletButtonLocation(),
bottomNavigationBar: MainBottomNavbar(
tabsRouter: AutoTabsRouter.of(context),
2026-10-10 02:33:16 +07:00
onWalletTap: _openWallet,
),
);
},
2025-08-27 18:51:14 +07:00
);
}
}