cargo66/lib/presentation/screens/root.dart

84 lines
2.4 KiB
Dart
Raw Normal View History

2024-07-23 10:55:48 +00:00
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../application/application.dart';
import '../../configs/configs.dart';
2024-08-02 10:44:37 +00:00
import '../../core/core.dart';
2024-07-23 10:55:48 +00:00
import '../widgets/bottom_navbar.dart';
2024-08-02 10:44:37 +00:00
import 'screens.dart';
2024-07-23 10:55:48 +00:00
class RootScreen extends StatelessWidget {
const RootScreen({super.key});
Future<bool> onPopInvoked(BuildContext context) async {
return (await showDialog<bool>(
context: context,
builder: (context) => AlertDialog(
title: const Text(
'Exit Application',
style: TextStyle(color: AppColors.primary),
),
content: const Text(
'Are You Sure?',
),
actions: <Widget>[
TextButton(
child: const Text(
'Yes',
style: TextStyle(
color: Colors.red,
),
),
onPressed: () {
SystemNavigator.pop();
},
),
TextButton(
child: const Text(
'No',
style: TextStyle(color: AppColors.primary),
),
onPressed: () {
Navigator.of(context).pop();
},
),
],
),
)) ??
false;
}
@override
Widget build(BuildContext context) {
App.init(context);
return PopScope(
onPopInvoked: (didPop) => onPopInvoked(context),
child: Scaffold(
backgroundColor: AppColors.surface,
bottomNavigationBar: const BottomNavigation(),
body: Container(
color: AppColors.surface,
child: Center(
child: BlocBuilder<NavigationCubit, NavigationTab>(
builder: (context, activeTab) {
switch (activeTab) {
2024-08-19 04:50:22 +00:00
case NavigationTab.home:
2024-07-23 10:55:48 +00:00
return const OrdersScreen();
2024-08-19 04:50:22 +00:00
case NavigationTab.histories:
return const HistoriesScreen();
case NavigationTab.profile:
2024-08-02 10:44:37 +00:00
return const ProfileScreen();
2024-07-23 10:55:48 +00:00
default:
2024-08-02 10:44:37 +00:00
return const OrdersScreen();
2024-07-23 10:55:48 +00:00
}
},
),
),
),
),
);
}
}