97 lines
2.7 KiB
Dart
97 lines
2.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
import '../../Controller/Home/Homecontroller.dart';
|
|
import '../../Helper/Constants/Colorconstants.dart';
|
|
import '../../Helper/toast.dart';
|
|
import '../Customers/Customersview.dart';
|
|
import '../Dashboard/Dashboardview.dart';
|
|
import '../Dashboard/Tabs/Createdview.dart';
|
|
import '../More/Moreview.dart';
|
|
import '../Orders/Orderspage.dart';
|
|
|
|
|
|
class HomeView extends StatelessWidget {
|
|
final int selectedIndex;
|
|
|
|
HomeView({super.key, required this.selectedIndex});
|
|
|
|
HomeController homeController = Get.put(HomeController());
|
|
|
|
DateTime? currentBackPressTime;
|
|
|
|
Future<bool> _willPopCallback() async {
|
|
DateTime now = DateTime.now();
|
|
if (currentBackPressTime == null ||
|
|
now.difference(currentBackPressTime!) > Duration(seconds: 1)) {
|
|
currentBackPressTime = now;
|
|
Toast.showToast("Press one more time to exit");
|
|
return Future.value(false);
|
|
}else{
|
|
Get.back();
|
|
return Future.value(true);
|
|
|
|
}
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final List<Widget> widgetOptionsNearle = _widgetOptionsNearle();
|
|
|
|
return GetBuilder<HomeController>(initState: (_) {
|
|
homeController.selectedIndex = selectedIndex;
|
|
}, builder: (controller) {
|
|
return WillPopScope(
|
|
onWillPop: _willPopCallback,
|
|
child: Scaffold(
|
|
bottomNavigationBar: BottomNavigationBar(
|
|
type: BottomNavigationBarType.fixed,
|
|
items: <BottomNavigationBarItem>[
|
|
const BottomNavigationBarItem(
|
|
icon: Icon(Icons.home),
|
|
label: 'Home',
|
|
),
|
|
const BottomNavigationBarItem(
|
|
icon: Icon(Icons.shopping_cart),
|
|
label: 'Orders',
|
|
),
|
|
const BottomNavigationBarItem(
|
|
icon: Icon(Icons.shopping_bag),
|
|
label: 'Products',
|
|
),
|
|
const BottomNavigationBarItem(
|
|
icon: Icon(Icons.people),
|
|
label: 'Customers',
|
|
),
|
|
const BottomNavigationBarItem(
|
|
icon: Icon(Icons.person),
|
|
label: 'Accounts',
|
|
),
|
|
],
|
|
currentIndex: homeController.selectedIndex,
|
|
selectedItemColor: ColorConstants.primaryColor,
|
|
unselectedItemColor: Colors.grey,
|
|
onTap: homeController.onItemTapped,
|
|
),
|
|
body: widgetOptionsNearle[controller.selectedIndex],
|
|
),
|
|
);
|
|
});
|
|
}
|
|
|
|
|
|
|
|
List<Widget> _widgetOptionsNearle() =>
|
|
<Widget>[
|
|
DashboardView(),
|
|
OrderView(),
|
|
ProductView(),
|
|
CustomerView(),
|
|
// ReassignRidersView(deliveryDetails: DeliveriesDetails()),
|
|
MoreView()
|
|
];
|
|
|
|
}
|
|
|
|
|