import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/models/enums/user_types.dart'; import 'package:test_sa/new_views/pages/land_page/calender_page.dart'; import 'package:test_sa/new_views/pages/land_page/home_app_bar.dart'; import 'package:test_sa/new_views/pages/land_page/my_assets_page.dart'; import 'package:test_sa/new_views/pages/land_page/my_request/my_requests_page.dart'; import 'package:test_sa/views/pages/device_transfer/asset_search_screen.dart'; import 'package:test_sa/views/pages/user/land_page.dart' as old_page; import 'package:test_sa/views/widgets/equipment/single_device_picker.dart'; import '../../common_widgets/app_bottom_nav_bar.dart'; import '../../common_widgets/app_drawer.dart'; import '../../common_widgets/app_floating_action_button.dart'; import 'contact_us_bottom_sheet.dart'; import 'dashboard_page.dart'; class LandPage extends StatefulWidget { static const String routeName = "/land-page"; const LandPage({Key key}) : super(key: key); @override State createState() => _LandPageState(); } class _LandPageState extends State { final GlobalKey _scaffoldKey = GlobalKey(); int currentPageIndex = 0; bool showAppbar = true; List _pages; UserProvider _userProvider; @override void initState() { _pages = []; super.initState(); } @override Widget build(BuildContext context) { if (_userProvider == null) { _userProvider = Provider.of(context); _pages = [ DashboardPage(onDrawerPress: (() { _scaffoldKey.currentState.isDrawerOpen ? _scaffoldKey.currentState.closeDrawer() : _scaffoldKey.currentState.openDrawer(); })), old_page.LandPage(), SingleDevicePicker(), if (_userProvider.user.type == UsersTypes.engineer) CalenderPage(), MyRequestsPage(), ]; } return WillPopScope( onWillPop: () async { /// TODO [zaid] : show dialog before exit // bool result = await showDialog( // context: context, // builder: (_) => const AAlertDialog( // title: "_subtitle.exit", // content: "_subtitle.exitAlert", // ), // ); if (true) { if (Platform.isAndroid) { SystemChannels.platform.invokeMethod('SystemNavigator.pop'); } else { exit(0); } } return false; }, child: Scaffold( key: _scaffoldKey, drawer: AppDrawer(), body: _pages[currentPageIndex], bottomNavigationBar: AppBottomNavigationBar( selectedIndex: currentPageIndex, onPressed: (index) { bool isEngineer = _userProvider.user.type == UsersTypes.engineer; if (index == (isEngineer ? 4 : 3)) { showModalBottomSheet( context: context, useSafeArea: true, backgroundColor: Colors.transparent, builder: (context) => const ContactUsBottomSheet(), ); } else { setState(() { currentPageIndex = index; }); if (index == 1) { setState(() { showAppbar = false; }); } else { setState(() { showAppbar = true; }); } } }, ), ), ); } }