diff --git a/Frontend/lib/main.dart b/Frontend/lib/main.dart index a6d55038..bffb4a3d 100644 --- a/Frontend/lib/main.dart +++ b/Frontend/lib/main.dart @@ -1,6 +1,7 @@ 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_authentication_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'; @@ -74,6 +75,9 @@ class _MzansiInnovationHubState extends State { precacheImage(theme.loadingImage(), context); return MultiProvider( providers: [ + ChangeNotifierProvider( + create: (context) => MihAuthenticationProvider(), + ), ChangeNotifierProvider( create: (context) => MzansiWalletProvider(), ), diff --git a/Frontend/lib/mih_components/mih_providers/mih_authentication_provider.dart b/Frontend/lib/mih_components/mih_providers/mih_authentication_provider.dart new file mode 100644 index 00000000..94d33ba3 --- /dev/null +++ b/Frontend/lib/mih_components/mih_providers/mih_authentication_provider.dart @@ -0,0 +1,14 @@ +import 'package:flutter/foundation.dart'; + +class MihAuthenticationProvider extends ChangeNotifier { + int toolIndex; + + MihAuthenticationProvider({ + this.toolIndex = 0, + }); + + void setToolIndex(int index) { + toolIndex = index; + notifyListeners(); + } +} diff --git a/Frontend/lib/mih_packages/mih_authentication/mih_authentication.dart b/Frontend/lib/mih_packages/mih_authentication/mih_authentication.dart index b255f91d..3511ed90 100644 --- a/Frontend/lib/mih_packages/mih_authentication/mih_authentication.dart +++ b/Frontend/lib/mih_packages/mih_authentication/mih_authentication.dart @@ -4,8 +4,10 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_ 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/mih_authentication_provider.dart'; import 'package:mzansi_innovation_hub/mih_packages/mih_authentication/package_tools/mih_register.dart'; import 'package:mzansi_innovation_hub/mih_packages/mih_authentication/package_tools/mih_sign_in.dart'; +import 'package:provider/provider.dart'; class MihAuthentication extends StatefulWidget { const MihAuthentication({super.key}); @@ -15,56 +17,35 @@ class MihAuthentication extends StatefulWidget { } class _MihAuthenticationState extends State { - int _selcetedIndex = 0; - @override Widget build(BuildContext context) { return MihPackage( appActionButton: getAction(), appTools: getTools(), appBody: getToolBody(), - selectedbodyIndex: _selcetedIndex, - onIndexChange: (newValue) { - setState(() { - _selcetedIndex = newValue; - }); + selectedbodyIndex: context.watch().toolIndex, + onIndexChange: (newIndex) { + context.read().setToolIndex(newIndex); }, ); } List getToolBody() { - List toolBodies = [ - MihSignIn( - onNewUserButtonTap: () { - setState(() { - _selcetedIndex = 1; - }); - }, - ), - MihRegister(onExistingUserButtonTap: () { - setState(() { - _selcetedIndex = 0; - }); - }) - ]; + List toolBodies = [MihSignIn(), MihRegister()]; return toolBodies; } MihPackageTools getTools() { Map temp = {}; temp[const Icon(Icons.perm_identity)] = () { - setState(() { - _selcetedIndex = 0; - }); + context.read().setToolIndex(0); }; temp[const Icon(Icons.create)] = () { - setState(() { - _selcetedIndex = 1; - }); + context.read().setToolIndex(1); }; return MihPackageTools( tools: temp, - selcetedIndex: _selcetedIndex, + selcetedIndex: context.watch().toolIndex, ); } @@ -75,7 +56,7 @@ class _MihAuthenticationState extends State { icon: const Icon(MihIcons.mihLogo), iconSize: 45, onTap: () { - context.goNamed("aboutMih", extra: 0); + context.goNamed("aboutMih", extra: true); }, ), ); diff --git a/Frontend/lib/mih_packages/mih_authentication/package_tools/mih_register.dart b/Frontend/lib/mih_packages/mih_authentication/package_tools/mih_register.dart index 6fc9e0de..f97a0334 100644 --- a/Frontend/lib/mih_packages/mih_authentication/package_tools/mih_register.dart +++ b/Frontend/lib/mih_packages/mih_authentication/package_tools/mih_register.dart @@ -11,19 +11,19 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_authentication_provider.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_env.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_user_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart'; +import 'package:provider/provider.dart'; import 'package:supertokens_flutter/http.dart' as http; import 'package:supertokens_flutter/supertokens.dart'; class MihRegister extends StatefulWidget { - final void Function()? onExistingUserButtonTap; const MihRegister({ super.key, - required this.onExistingUserButtonTap, }); @override @@ -366,7 +366,11 @@ class _MihRegisterState extends State { ), ), MihButton( - onPressed: widget.onExistingUserButtonTap, + onPressed: () { + context + .read() + .setToolIndex(0); + }, buttonColor: MihColors.getSecondaryColor( MzansiInnovationHub.of(context)!.theme.mode == "Dark"), diff --git a/Frontend/lib/mih_packages/mih_authentication/package_tools/mih_sign_in.dart b/Frontend/lib/mih_packages/mih_authentication/package_tools/mih_sign_in.dart index c6bb47f2..d21ee78c 100644 --- a/Frontend/lib/mih_packages/mih_authentication/package_tools/mih_sign_in.dart +++ b/Frontend/lib/mih_packages/mih_authentication/package_tools/mih_sign_in.dart @@ -9,18 +9,18 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_authentication_provider.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_env.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_authentication_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_install_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart'; +import 'package:provider/provider.dart'; class MihSignIn extends StatefulWidget { - final void Function()? onNewUserButtonTap; const MihSignIn({ super.key, - required this.onNewUserButtonTap, }); @override @@ -381,7 +381,11 @@ class _MihSignInState extends State { ), ), MihButton( - onPressed: widget.onNewUserButtonTap, + onPressed: () { + context + .read() + .setToolIndex(1); + }, buttonColor: MihColors.getSecondaryColor( MzansiInnovationHub.of(context)!.theme.mode == "Dark"),