NEW: About MIH Provider Setup

This commit is contained in:
2025-10-13 10:45:30 +02:00
parent bbadc58ab8
commit f828ba1786
6 changed files with 69 additions and 45 deletions

View File

@@ -1,7 +1,9 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:go_router/go_router.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_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_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_components/mih_providers/mzansi_wallet_provider.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -81,6 +83,12 @@ class _MzansiInnovationHubState extends State<MzansiInnovationHub> {
ChangeNotifierProvider( ChangeNotifierProvider(
create: (context) => MihCalculatorProvider(), create: (context) => MihCalculatorProvider(),
), ),
ChangeNotifierProvider(
create: (context) => AboutMihProvider(),
),
ChangeNotifierProvider(
create: (context) => MihMineSweeperProvider(),
),
], ],
child: MaterialApp.router( child: MaterialApp.router(
title: getTitle(), title: getTitle(),

View File

@@ -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();
}
}

View File

@@ -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_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_home.dart';
import 'package:mzansi_innovation_hub/mih_packages/mih_home/mih_route_error.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_ai/mzansi_ai.dart';
import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/mzansi_directory.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'; 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 barcodeScanner = '/scanner';
static const String calculator = '/calculator'; static const String calculator = '/calculator';
static const String mzansiAi = '/mzansi-ai'; static const String mzansiAi = '/mzansi-ai';
static const String mihMineSweeper = '/mih-mine-sweeper';
static const String packageDevTest = '/package-dev'; static const String packageDevTest = '/package-dev';
} }
@@ -150,14 +152,12 @@ class MihGoRouter {
path: MihGoRouterPaths.aboutMih, path: MihGoRouterPaths.aboutMih,
builder: (BuildContext context, GoRouterState state) { builder: (BuildContext context, GoRouterState state) {
KenLogger.success("MihGoRouter: aboutMih"); KenLogger.success("MihGoRouter: aboutMih");
final AboutArguments? args = state.extra as AboutArguments?; final bool? args = state.extra as bool?;
int index = 0;
bool personalSelected = true; bool personalSelected = true;
if (args != null) { if (args != null) {
index = args.packageIndex ?? 0; personalSelected = args;
personalSelected = args.personalSelected;
} }
return AboutMih(arguments: AboutArguments(personalSelected, index)); return AboutMih(personalSelected: personalSelected);
}, },
), ),
// ========================== Mzansi Profile Personal ================================== // ========================== Mzansi Profile Personal ==================================
@@ -463,6 +463,15 @@ class MihGoRouter {
return MIHPrintPreview(arguments: args!); return MIHPrintPreview(arguments: args!);
}, },
), ),
// ========================== MIH Calculator ==================================
GoRoute(
name: "mihMineSweeper",
path: MihGoRouterPaths.mihMineSweeper,
builder: (BuildContext context, GoRouterState state) {
KenLogger.success("MihGoRouter: mihMineSweeper");
return MihMineSweeper();
},
),
// ========================== End ================================== // ========================== End ==================================
// GoRoute( // GoRoute(
// name: "notifications", // name: "notifications",

View File

@@ -1,19 +1,22 @@
import 'package:go_router/go_router.dart'; 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.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_action.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.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_%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_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_privacy_policy.dart';
import 'package:mzansi_innovation_hub/mih_packages/about_mih/package_tools/mih_terms_of_service.dart'; import 'package:mzansi_innovation_hub/mih_packages/about_mih/package_tools/mih_terms_of_service.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class AboutMih extends StatefulWidget { class AboutMih extends StatefulWidget {
final AboutArguments? arguments; final bool? personalSelected;
// final AboutArguments? arguments;
const AboutMih({ const AboutMih({
super.key, super.key,
this.arguments, // this.arguments,
this.personalSelected,
}); });
@override @override
@@ -21,19 +24,16 @@ class AboutMih extends StatefulWidget {
} }
class _AboutMihState extends State<AboutMih> { class _AboutMihState extends State<AboutMih> {
late int _selcetedIndex;
late bool _personalSelected; late bool _personalSelected;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
setState(() { setState(() {
if (widget.arguments == null) { if (widget.personalSelected == null) {
_selcetedIndex = 0;
_personalSelected = true; _personalSelected = true;
} else { } else {
_selcetedIndex = widget.arguments!.packageIndex!; _personalSelected = widget.personalSelected!;
_personalSelected = widget.arguments!.personalSelected;
} }
}); });
} }
@@ -45,12 +45,9 @@ class _AboutMihState extends State<AboutMih> {
appTools: getTools(), appTools: getTools(),
appBody: getToolBody(), appBody: getToolBody(),
appToolTitles: getToolTitle(), appToolTitles: getToolTitle(),
selectedbodyIndex: _selcetedIndex, selectedbodyIndex: context.watch<AboutMihProvider>().toolIndex,
onIndexChange: (newValue) { onIndexChange: (newIndex) {
setState(() { context.read<AboutMihProvider>().setToolIndex(newIndex);
_selcetedIndex = newValue;
});
// print("Index: $_selcetedIndex");
}, },
); );
} }
@@ -72,28 +69,20 @@ class _AboutMihState extends State<AboutMih> {
MihPackageTools getTools() { MihPackageTools getTools() {
Map<Widget, void Function()?> temp = {}; Map<Widget, void Function()?> temp = {};
temp[const Icon(Icons.info)] = () { temp[const Icon(Icons.info)] = () {
setState(() { context.read<AboutMihProvider>().setToolIndex(0);
_selcetedIndex = 0;
});
}; };
temp[const Icon(Icons.policy)] = () { temp[const Icon(Icons.policy)] = () {
setState(() { context.read<AboutMihProvider>().setToolIndex(1);
_selcetedIndex = 1;
});
}; };
temp[const Icon(Icons.design_services)] = () { temp[const Icon(Icons.design_services)] = () {
setState(() { context.read<AboutMihProvider>().setToolIndex(2);
_selcetedIndex = 2;
});
}; };
temp[const Icon(Icons.star_rounded)] = () { temp[const Icon(Icons.star_rounded)] = () {
setState(() { context.read<AboutMihProvider>().setToolIndex(3);
_selcetedIndex = 3;
});
}; };
return MihPackageTools( return MihPackageTools(
tools: temp, tools: temp,
selcetedIndex: _selcetedIndex, selcetedIndex: context.watch<AboutMihProvider>().toolIndex,
); );
} }

View File

@@ -1,6 +1,5 @@
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import 'package:mzansi_innovation_hub/main.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:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
@@ -26,10 +25,7 @@ class _AboutMihTileState extends State<AboutMihTile> {
onTap: () { onTap: () {
context.goNamed( context.goNamed(
"aboutMih", "aboutMih",
extra: AboutArguments( extra: widget.personalSelected,
widget.personalSelected,
0,
),
); );
// Navigator.of(context).pushNamed( // Navigator.of(context).pushNamed(
// '/about', // '/about',

View File

@@ -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_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_circle_avatar.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.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:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:provider/provider.dart';
import '../../../main.dart'; import '../../../main.dart';
import 'package:supertokens_flutter/supertokens.dart'; import 'package:supertokens_flutter/supertokens.dart';
@@ -200,12 +202,15 @@ class _MIHAppDrawerState extends State<MIHAppDrawer> {
], ],
), ),
onTap: () { onTap: () {
WidgetsBinding.instance
.addPostFrameCallback((_) async {
context
.read<AboutMihProvider>()
.setToolIndex(1);
});
context.goNamed( context.goNamed(
"aboutMih", "aboutMih",
extra: AboutArguments( extra: true,
true,
1,
),
); );
}, },
), ),
@@ -236,12 +241,15 @@ class _MIHAppDrawerState extends State<MIHAppDrawer> {
], ],
), ),
onTap: () { onTap: () {
WidgetsBinding.instance
.addPostFrameCallback((_) async {
context
.read<AboutMihProvider>()
.setToolIndex(2);
});
context.goNamed( context.goNamed(
"aboutMih", "aboutMih",
extra: AboutArguments( extra: true,
true,
2,
),
); );
}, },
), ),