Migration to mih_package_toolkit

This commit is contained in:
2026-03-18 16:42:12 +02:00
parent 84cb6b2e83
commit c67529dbac
180 changed files with 2112 additions and 8147 deletions

View File

@@ -1,11 +1,10 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mih_package_toolkit/mih_package_toolkit.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_business_profile_preview.dart';
import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:provider/provider.dart';
class BuildBusinessSearchResultsList extends StatefulWidget {
@@ -33,14 +32,12 @@ class _BuildBusinessSearchResultsListState
itemCount: widget.businessList.length,
separatorBuilder: (BuildContext context, index) {
return Divider(
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.secondary(),
);
},
itemBuilder: (context, index) {
return Material(
color: MihColors.getPrimaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.primary(),
child: InkWell(
onTap: () {
directoryProvider.setSelectedBusiness(
@@ -50,9 +47,7 @@ class _BuildBusinessSearchResultsListState
'businessProfileView',
);
},
splashColor: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark")
.withOpacity(0.2),
splashColor: MihColors.secondary().withOpacity(0.2),
borderRadius: BorderRadius.circular(15),
child: Padding(
padding: EdgeInsetsGeometry.symmetric(

View File

@@ -1,11 +1,10 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mih_package_toolkit/mih_package_toolkit.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_business_profile_preview.dart';
import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:provider/provider.dart';
class BuildFavouriteBusinessesList extends StatefulWidget {
@@ -44,8 +43,7 @@ class _BuildFavouriteBusinessesListState
return const SizedBox(); // Or a placeholder if a business couldn't be loaded
}
return Material(
color: MihColors.getPrimaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.primary(),
child: InkWell(
onTap: () {
directoryProvider.setSelectedBusiness(
@@ -55,9 +53,7 @@ class _BuildFavouriteBusinessesListState
'businessProfileView',
);
},
splashColor: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark")
.withOpacity(0.2),
splashColor: MihColors.secondary().withOpacity(0.2),
borderRadius: BorderRadius.circular(15),
child: Padding(
padding: EdgeInsets.symmetric(

View File

@@ -1,11 +1,10 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mih_package_toolkit/mih_package_toolkit.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_personal_profile_preview.dart';
import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:provider/provider.dart';
class BuildUserSearchResultsList extends StatefulWidget {
@@ -33,14 +32,12 @@ class _BuildUserSearchResultsListState
itemCount: widget.userList.length,
separatorBuilder: (BuildContext context, index) {
return Divider(
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.secondary(),
);
},
itemBuilder: (context, index) {
return Material(
color: MihColors.getPrimaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.primary(),
child: InkWell(
onTap: () {
directoryProvider.setSelectedUser(
@@ -49,9 +46,7 @@ class _BuildUserSearchResultsListState
'mzansiProfileView',
);
},
splashColor: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark")
.withOpacity(0.2),
splashColor: MihColors.secondary().withOpacity(0.2),
borderRadius: BorderRadius.circular(15),
child: Padding(
padding: EdgeInsetsGeometry.symmetric(

View File

@@ -1,10 +1,7 @@
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:go_router/go_router.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package_action.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tools.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_loading_circle.dart';
import 'package:mih_package_toolkit/mih_package_toolkit.dart';
import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.dart';
import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart';
import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/package_tools/mih_favourite_businesses.dart';
@@ -74,11 +71,11 @@ class _MzansiDirectoryState extends State<MzansiDirectory> {
);
}
return MihPackage(
appActionButton: getAction(),
appTools: getTools(),
appBody: getToolBody(),
appToolTitles: getToolTitle(),
selectedbodyIndex: directoryProvider.toolIndex,
packageActionButton: getAction(),
packageTools: getTools(),
packageToolBodies: getToolBody(),
packageToolTitles: getToolTitle(),
selectedBodyIndex: directoryProvider.toolIndex,
onIndexChange: (newValue) {
directoryProvider.setToolIndex(newValue);
},
@@ -121,7 +118,7 @@ class _MzansiDirectoryState extends State<MzansiDirectory> {
};
return MihPackageTools(
tools: temp,
selcetedIndex: context.watch<MzansiDirectoryProvider>().toolIndex,
selectedIndex: context.watch<MzansiDirectoryProvider>().toolIndex,
);
}

View File

@@ -1,9 +1,6 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tile.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:mih_package_toolkit/mih_package_toolkit.dart';
class MzansiDirectoryTile extends StatefulWidget {
final double packageSize;
@@ -32,16 +29,14 @@ class _MzansiDirectoryTileState extends State<MzansiDirectoryTile> {
// ),
// );
},
appName: "Mzansi Directory",
appIcon: Icon(
packageName: "Mzansi Directory",
packageIcon: Icon(
MihIcons.mzansiDirectory,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.secondary(),
// size: widget.packageSize,
),
iconSize: widget.packageSize,
textColor: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
textColor: MihColors.secondary(),
);
}
}

View File

@@ -1,9 +1,5 @@
import 'package:flutter/material.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_search_bar.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:mih_package_toolkit/mih_package_toolkit.dart';
class MihContacts extends StatefulWidget {
const MihContacts({super.key});
@@ -21,6 +17,7 @@ class _MihContactsState extends State<MihContacts> {
final Size size = MediaQuery.sizeOf(context);
final double width = size.width;
return MihPackageToolBody(
backgroundColor: MihColors.primary(),
borderOn: false,
bodyItem: getBody(width),
);
@@ -37,10 +34,8 @@ class _MihContactsState extends State<MihContacts> {
controller: contactSearchController,
hintText: "Search Contacts",
prefixIcon: Icons.search,
fillColor: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
hintColor: MihColors.getPrimaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
fillColor: MihColors.secondary(),
hintColor: MihColors.primary(),
onPrefixIconTap: () {},
searchFocusNode: searchFocusNode,
),

View File

@@ -1,13 +1,8 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mih_package_toolkit/mih_package_toolkit.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_search_bar.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_loading_circle.dart';
import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/builders/build_favourite_businesses_list.dart';
import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_business_details_services.dart';
@@ -107,6 +102,7 @@ class _MihFavouriteBusinessesState extends State<MihFavouriteBusinesses> {
final Size size = MediaQuery.sizeOf(context);
final double width = size.width;
return MihPackageToolBody(
backgroundColor: MihColors.primary(),
borderOn: false,
bodyItem: getBody(width),
);
@@ -130,10 +126,8 @@ class _MihFavouriteBusinessesState extends State<MihFavouriteBusinesses> {
controller: businessSearchController,
hintText: "Search Businesses",
prefixIcon: Icons.search,
fillColor: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
hintColor: MihColors.getPrimaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
fillColor: MihColors.secondary(),
hintColor: MihColors.primary(),
onPrefixIconTap: () {},
searchFocusNode: searchFocusNode,
),
@@ -151,9 +145,7 @@ class _MihFavouriteBusinessesState extends State<MihFavouriteBusinesses> {
Icon(
MihIcons.iDontKnow,
size: 165,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
color: MihColors.secondary(),
),
const SizedBox(height: 10),
Text(
@@ -163,9 +155,7 @@ class _MihFavouriteBusinessesState extends State<MihFavouriteBusinesses> {
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
color: MihColors.secondary(),
),
),
],
@@ -182,9 +172,7 @@ class _MihFavouriteBusinessesState extends State<MihFavouriteBusinesses> {
Icon(
MihIcons.businessProfile,
size: 165,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
color: MihColors.secondary(),
),
const SizedBox(height: 10),
Text(
@@ -194,11 +182,7 @@ class _MihFavouriteBusinessesState extends State<MihFavouriteBusinesses> {
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!
.theme
.mode ==
"Dark"),
color: MihColors.secondary(),
),
),
const SizedBox(height: 25),
@@ -209,11 +193,7 @@ class _MihFavouriteBusinessesState extends State<MihFavouriteBusinesses> {
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.normal,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!
.theme
.mode ==
"Dark"),
color: MihColors.secondary(),
),
children: [
TextSpan(text: "Use the mzansi search"),

View File

@@ -1,18 +1,10 @@
import 'package:flutter/material.dart';
import 'package:ken_logger/ken_logger.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mih_package_toolkit/mih_package_toolkit.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_button.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_dropdwn_field.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_search_bar.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_loading_circle.dart';
import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.dart';
import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/builders/build_business_search_resultsList.dart';
import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/builders/build_user_search_results_list.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
@@ -151,6 +143,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
final Size size = MediaQuery.sizeOf(context);
final double width = size.width;
return MihPackageToolBody(
backgroundColor: MihColors.primary(),
borderOn: false,
bodyItem: getBody(width),
);
@@ -190,18 +183,12 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
icon: Icon(
Icons.swap_horiz_rounded,
size: 35,
color: MihColors.getPrimaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
color: MihColors.primary(),
),
),
],
fillColor: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
hintColor: MihColors.getPrimaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
fillColor: MihColors.secondary(),
hintColor: MihColors.primary(),
onPrefixIconTap: () {
searchPressed(profileProvider, directoryProvider);
},
@@ -231,9 +218,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
? Icons.filter_list_rounded
: Icons.filter_list_off_rounded,
size: 35,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
color: MihColors.secondary(),
),
),
),
@@ -280,18 +265,12 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
);
}
},
buttonColor: MihColors.getGreenColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
buttonColor: MihColors.green(),
elevation: 10,
child: Text(
"Search",
style: TextStyle(
color: MihColors.getPrimaryColor(
MzansiInnovationHub.of(context)!
.theme
.mode ==
"Dark"),
color: MihColors.primary(),
fontSize: 20,
fontWeight: FontWeight.bold,
),
@@ -337,8 +316,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
Icon(
MihIcons.iDontKnow,
size: 165,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.secondary(),
),
const SizedBox(height: 25),
Text(
@@ -348,8 +326,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.secondary(),
),
),
],
@@ -369,8 +346,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
Icon(
MihIcons.businessProfile,
size: 165,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.secondary(),
),
const SizedBox(height: 10),
Text(
@@ -380,8 +356,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.secondary(),
),
),
const SizedBox(height: 25),
@@ -392,9 +367,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.normal,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
color: MihColors.secondary(),
),
children: [
TextSpan(text: "Press "),
@@ -403,9 +376,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
child: Icon(
Icons.swap_horiz_rounded,
size: 20,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
color: MihColors.secondary(),
),
),
TextSpan(text: " to search for people of Mzansi"),
@@ -421,9 +392,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.normal,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
color: MihColors.secondary(),
),
children: [
TextSpan(text: "Press "),
@@ -432,9 +401,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
child: Icon(
Icons.filter_list_rounded,
size: 20,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
color: MihColors.secondary(),
),
),
TextSpan(text: " to filter business types"),
@@ -450,10 +417,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
return Center(
child: Text(
"Error pulling Patients Data\n/users/search/${directoryProvider.searchTerm}",
style: TextStyle(
fontSize: 25,
color: MihColors.getRedColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark")),
style: TextStyle(fontSize: 25, color: MihColors.red()),
textAlign: TextAlign.center,
),
);
@@ -485,8 +449,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
Icon(
MihIcons.personalProfile,
size: 165,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.secondary(),
),
const SizedBox(height: 10),
Text(
@@ -496,8 +459,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.secondary(),
),
),
const SizedBox(height: 25),
@@ -508,9 +470,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.normal,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
color: MihColors.secondary(),
),
children: [
TextSpan(text: "Press "),
@@ -519,9 +479,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
child: Icon(
Icons.swap_horiz_rounded,
size: 20,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
color: MihColors.secondary(),
),
),
TextSpan(text: " to search for businesses of Mzansi"),
@@ -543,8 +501,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
Icon(
MihIcons.iDontKnow,
size: 165,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.secondary(),
),
const SizedBox(height: 10),
Text(
@@ -554,8 +511,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
color: MihColors.secondary(),
),
),
],
@@ -565,10 +521,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
return Center(
child: Text(
"Error pulling Patients Data\n/users/search/${directoryProvider.searchTerm}",
style: TextStyle(
fontSize: 25,
color: MihColors.getRedColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark")),
style: TextStyle(fontSize: 25, color: MihColors.red()),
textAlign: TextAlign.center,
),
);