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: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<MzansiInnovationHub> {
ChangeNotifierProvider(
create: (context) => MihCalculatorProvider(),
),
ChangeNotifierProvider(
create: (context) => AboutMihProvider(),
),
ChangeNotifierProvider(
create: (context) => MihMineSweeperProvider(),
),
],
child: MaterialApp.router(
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_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",

View File

@@ -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<AboutMih> {
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<AboutMih> {
appTools: getTools(),
appBody: getToolBody(),
appToolTitles: getToolTitle(),
selectedbodyIndex: _selcetedIndex,
onIndexChange: (newValue) {
setState(() {
_selcetedIndex = newValue;
});
// print("Index: $_selcetedIndex");
selectedbodyIndex: context.watch<AboutMihProvider>().toolIndex,
onIndexChange: (newIndex) {
context.read<AboutMihProvider>().setToolIndex(newIndex);
},
);
}
@@ -72,28 +69,20 @@ class _AboutMihState extends State<AboutMih> {
MihPackageTools getTools() {
Map<Widget, void Function()?> temp = {};
temp[const Icon(Icons.info)] = () {
setState(() {
_selcetedIndex = 0;
});
context.read<AboutMihProvider>().setToolIndex(0);
};
temp[const Icon(Icons.policy)] = () {
setState(() {
_selcetedIndex = 1;
});
context.read<AboutMihProvider>().setToolIndex(1);
};
temp[const Icon(Icons.design_services)] = () {
setState(() {
_selcetedIndex = 2;
});
context.read<AboutMihProvider>().setToolIndex(2);
};
temp[const Icon(Icons.star_rounded)] = () {
setState(() {
_selcetedIndex = 3;
});
context.read<AboutMihProvider>().setToolIndex(3);
};
return MihPackageTools(
tools: temp,
selcetedIndex: _selcetedIndex,
selcetedIndex: context.watch<AboutMihProvider>().toolIndex,
);
}

View File

@@ -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<AboutMihTile> {
onTap: () {
context.goNamed(
"aboutMih",
extra: AboutArguments(
widget.personalSelected,
0,
),
extra: widget.personalSelected,
);
// Navigator.of(context).pushNamed(
// '/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_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<MIHAppDrawer> {
],
),
onTap: () {
WidgetsBinding.instance
.addPostFrameCallback((_) async {
context
.read<AboutMihProvider>()
.setToolIndex(1);
});
context.goNamed(
"aboutMih",
extra: AboutArguments(
true,
1,
),
extra: true,
);
},
),
@@ -236,12 +241,15 @@ class _MIHAppDrawerState extends State<MIHAppDrawer> {
],
),
onTap: () {
WidgetsBinding.instance
.addPostFrameCallback((_) async {
context
.read<AboutMihProvider>()
.setToolIndex(2);
});
context.goNamed(
"aboutMih",
extra: AboutArguments(
true,
2,
),
extra: true,
);
},
),