You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.4KB

  1. import 'package:farm_tpf/presentation/screens/control_device/sc_control_device.dart';
  2. import 'package:farm_tpf/presentation/screens/home/home.dart';
  3. import 'package:farm_tpf/presentation/screens/profile/sc_update_profile.dart';
  4. import 'package:farm_tpf/presentation/screens/scan_barcode/sc_scan_barcode.dart';
  5. import 'package:farm_tpf/utils/const_color.dart';
  6. import 'package:flutter/material.dart';
  7. import 'drawer_user_controller.dart';
  8. import 'home_drawer.dart';
  9. class NavigationHomeScreen extends StatefulWidget {
  10. static Route route() {
  11. return MaterialPageRoute<void>(builder: (_) => NavigationHomeScreen());
  12. }
  13. @override
  14. _NavigationHomeScreenState createState() => _NavigationHomeScreenState();
  15. }
  16. class _NavigationHomeScreenState extends State<NavigationHomeScreen> {
  17. Widget screenView;
  18. DrawerIndex drawerIndex;
  19. @override
  20. void initState() {
  21. drawerIndex = DrawerIndex.Home;
  22. screenView = HomePage();
  23. super.initState();
  24. }
  25. @override
  26. Widget build(BuildContext context) {
  27. return Container(
  28. color: COLOR_CONST.DEFAULT,
  29. child: SafeArea(
  30. top: false,
  31. bottom: false,
  32. child: Scaffold(
  33. backgroundColor: COLOR_CONST.WHITE,
  34. body: DrawerUserController(
  35. screenIndex: drawerIndex,
  36. drawerWidth: MediaQuery.of(context).size.width * 0.75,
  37. onDrawerCall: (DrawerIndex drawerIndexdata) {
  38. changeIndex(drawerIndexdata);
  39. //callback from drawer for replace screen as user need with passing DrawerIndex(Enum index)
  40. },
  41. screenView: screenView,
  42. //we replace screen view as we need on navigate starting screens like MyHomePage, HelpScreen, FeedbackScreen, etc...
  43. ),
  44. ),
  45. ),
  46. );
  47. }
  48. void changeIndex(DrawerIndex drawerIndexdata) {
  49. if (drawerIndex != drawerIndexdata) {
  50. drawerIndex = drawerIndexdata;
  51. if (drawerIndex == DrawerIndex.Home) {
  52. setState(() {
  53. screenView = HomePage();
  54. });
  55. } else if (drawerIndex == DrawerIndex.ControlDevice) {
  56. setState(() {
  57. screenView = ControlDeviceScreen();
  58. });
  59. } else if (drawerIndex == DrawerIndex.ScanBarcode) {
  60. setState(() {
  61. Navigator.of(context)
  62. .push(MaterialPageRoute(builder: (_) => ScanBarcodeScreen()));
  63. });
  64. } else {
  65. //do in your way......
  66. }
  67. }
  68. }
  69. }