diff --git a/Frontend/lib/main.dart b/Frontend/lib/main.dart index c3c12b52..a6d55038 100644 --- a/Frontend/lib/main.dart +++ b/Frontend/lib/main.dart @@ -1,7 +1,9 @@ import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_providers/about_mih_provider.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_calculator_provider.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_mine_sweeper_provider.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import 'package:provider/provider.dart'; @@ -81,6 +83,12 @@ class _MzansiInnovationHubState extends State { ChangeNotifierProvider( create: (context) => MihCalculatorProvider(), ), + ChangeNotifierProvider( + create: (context) => AboutMihProvider(), + ), + ChangeNotifierProvider( + create: (context) => MihMineSweeperProvider(), + ), ], child: MaterialApp.router( title: getTitle(), diff --git a/Frontend/lib/mih_components/mih_providers/about_mih_provider.dart b/Frontend/lib/mih_components/mih_providers/about_mih_provider.dart new file mode 100644 index 00000000..5ef994ba --- /dev/null +++ b/Frontend/lib/mih_components/mih_providers/about_mih_provider.dart @@ -0,0 +1,14 @@ +import 'package:flutter/foundation.dart'; + +class AboutMihProvider extends ChangeNotifier { + int toolIndex; + + AboutMihProvider({ + this.toolIndex = 0, + }); + + void setToolIndex(int index) { + toolIndex = index; + notifyListeners(); + } +} diff --git a/Frontend/lib/mih_config/mih_go_router.dart b/Frontend/lib/mih_config/mih_go_router.dart index 7ac1e756..856d61ff 100644 --- a/Frontend/lib/mih_config/mih_go_router.dart +++ b/Frontend/lib/mih_config/mih_go_router.dart @@ -13,6 +13,7 @@ import 'package:mzansi_innovation_hub/mih_packages/mih_authentication/mih_auth_p import 'package:mzansi_innovation_hub/mih_packages/mih_authentication/mih_authentication.dart'; import 'package:mzansi_innovation_hub/mih_packages/mih_home/mih_home.dart'; import 'package:mzansi_innovation_hub/mih_packages/mih_home/mih_route_error.dart'; +import 'package:mzansi_innovation_hub/mih_packages/mine_sweeper/mih_mine_sweeper.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_ai/mzansi_ai.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/mzansi_directory.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/mzansi_business_profile.dart'; @@ -63,6 +64,7 @@ class MihGoRouterPaths { static const String barcodeScanner = '/scanner'; static const String calculator = '/calculator'; static const String mzansiAi = '/mzansi-ai'; + static const String mihMineSweeper = '/mih-mine-sweeper'; static const String packageDevTest = '/package-dev'; } @@ -150,14 +152,12 @@ class MihGoRouter { path: MihGoRouterPaths.aboutMih, builder: (BuildContext context, GoRouterState state) { KenLogger.success("MihGoRouter: aboutMih"); - final AboutArguments? args = state.extra as AboutArguments?; - int index = 0; + final bool? args = state.extra as bool?; bool personalSelected = true; if (args != null) { - index = args.packageIndex ?? 0; - personalSelected = args.personalSelected; + personalSelected = args; } - return AboutMih(arguments: AboutArguments(personalSelected, index)); + return AboutMih(personalSelected: personalSelected); }, ), // ========================== Mzansi Profile Personal ================================== @@ -463,6 +463,15 @@ class MihGoRouter { return MIHPrintPreview(arguments: args!); }, ), + // ========================== MIH Calculator ================================== + GoRoute( + name: "mihMineSweeper", + path: MihGoRouterPaths.mihMineSweeper, + builder: (BuildContext context, GoRouterState state) { + KenLogger.success("MihGoRouter: mihMineSweeper"); + return MihMineSweeper(); + }, + ), // ========================== End ================================== // GoRoute( // name: "notifications", diff --git a/Frontend/lib/mih_packages/about_mih/about_mih.dart b/Frontend/lib/mih_packages/about_mih/about_mih.dart index e18dcf45..336885f9 100644 --- a/Frontend/lib/mih_packages/about_mih/about_mih.dart +++ b/Frontend/lib/mih_packages/about_mih/about_mih.dart @@ -1,19 +1,22 @@ import 'package:go_router/go_router.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_providers/about_mih_provider.dart'; import 'package:mzansi_innovation_hub/mih_packages/about_mih/package_tools/mih_%20attributes.dart'; import 'package:mzansi_innovation_hub/mih_packages/about_mih/package_tools/mih_info.dart'; import 'package:mzansi_innovation_hub/mih_packages/about_mih/package_tools/mih_privacy_policy.dart'; import 'package:mzansi_innovation_hub/mih_packages/about_mih/package_tools/mih_terms_of_service.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class AboutMih extends StatefulWidget { - final AboutArguments? arguments; + final bool? personalSelected; + // final AboutArguments? arguments; const AboutMih({ super.key, - this.arguments, + // this.arguments, + this.personalSelected, }); @override @@ -21,19 +24,16 @@ class AboutMih extends StatefulWidget { } class _AboutMihState extends State { - late int _selcetedIndex; late bool _personalSelected; @override void initState() { super.initState(); setState(() { - if (widget.arguments == null) { - _selcetedIndex = 0; + if (widget.personalSelected == null) { _personalSelected = true; } else { - _selcetedIndex = widget.arguments!.packageIndex!; - _personalSelected = widget.arguments!.personalSelected; + _personalSelected = widget.personalSelected!; } }); } @@ -45,12 +45,9 @@ class _AboutMihState extends State { appTools: getTools(), appBody: getToolBody(), appToolTitles: getToolTitle(), - selectedbodyIndex: _selcetedIndex, - onIndexChange: (newValue) { - setState(() { - _selcetedIndex = newValue; - }); - // print("Index: $_selcetedIndex"); + selectedbodyIndex: context.watch().toolIndex, + onIndexChange: (newIndex) { + context.read().setToolIndex(newIndex); }, ); } @@ -72,28 +69,20 @@ class _AboutMihState extends State { MihPackageTools getTools() { Map temp = {}; temp[const Icon(Icons.info)] = () { - setState(() { - _selcetedIndex = 0; - }); + context.read().setToolIndex(0); }; temp[const Icon(Icons.policy)] = () { - setState(() { - _selcetedIndex = 1; - }); + context.read().setToolIndex(1); }; temp[const Icon(Icons.design_services)] = () { - setState(() { - _selcetedIndex = 2; - }); + context.read().setToolIndex(2); }; temp[const Icon(Icons.star_rounded)] = () { - setState(() { - _selcetedIndex = 3; - }); + context.read().setToolIndex(3); }; return MihPackageTools( tools: temp, - selcetedIndex: _selcetedIndex, + selcetedIndex: context.watch().toolIndex, ); } diff --git a/Frontend/lib/mih_packages/about_mih/package_tile/about_mih_tile.dart b/Frontend/lib/mih_packages/about_mih/package_tile/about_mih_tile.dart index 28b03444..edf7c351 100644 --- a/Frontend/lib/mih_packages/about_mih/package_tile/about_mih_tile.dart +++ b/Frontend/lib/mih_packages/about_mih/package_tile/about_mih_tile.dart @@ -1,6 +1,5 @@ import 'package:go_router/go_router.dart'; import 'package:mzansi_innovation_hub/main.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart'; import 'package:flutter/material.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart'; @@ -26,10 +25,7 @@ class _AboutMihTileState extends State { onTap: () { context.goNamed( "aboutMih", - extra: AboutArguments( - widget.personalSelected, - 0, - ), + extra: widget.personalSelected, ); // Navigator.of(context).pushNamed( // '/about', diff --git a/Frontend/lib/mih_packages/mih_home/components/mih_app_drawer.dart b/Frontend/lib/mih_packages/mih_home/components/mih_app_drawer.dart index ad15cbef..bd09514d 100644 --- a/Frontend/lib/mih_packages/mih_home/components/mih_app_drawer.dart +++ b/Frontend/lib/mih_packages/mih_home/components/mih_app_drawer.dart @@ -4,7 +4,9 @@ import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_circle_avatar.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_providers/about_mih_provider.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; +import 'package:provider/provider.dart'; import '../../../main.dart'; import 'package:supertokens_flutter/supertokens.dart'; @@ -200,12 +202,15 @@ class _MIHAppDrawerState extends State { ], ), onTap: () { + WidgetsBinding.instance + .addPostFrameCallback((_) async { + context + .read() + .setToolIndex(1); + }); context.goNamed( "aboutMih", - extra: AboutArguments( - true, - 1, - ), + extra: true, ); }, ), @@ -236,12 +241,15 @@ class _MIHAppDrawerState extends State { ], ), onTap: () { + WidgetsBinding.instance + .addPostFrameCallback((_) async { + context + .read() + .setToolIndex(2); + }); context.goNamed( "aboutMih", - extra: AboutArguments( - true, - 2, - ), + extra: true, ); }, ),