Merge pull request #119 from yaso-meth/NEW--Mzansi-Home-Revamp

NEW--Mzansi-Home-Revamp
This commit is contained in:
yaso-meth
2025-03-26 13:08:57 +02:00
committed by GitHub
56 changed files with 2484 additions and 1371 deletions

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'mih_app_drawer.dart';
import '../../mih_packages/mih_home/components/mih_app_drawer.dart';
import 'mih_body.dart';
import 'mih_header.dart';

View File

@@ -1,13 +1,14 @@
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_action.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mih_home/components/mih_app_drawer.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart';
import 'package:flutter/material.dart';
// import 'package:flutter_swipe_detector/flutter_swipe_detector.dart';
// ignore: must_be_immutable
class MihApp extends StatefulWidget {
final MihAppAction appActionButton;
final Widget appActionButton;
final MihAppTools appTools;
final List<Widget> appBody;
final MIHAppDrawer? actionDrawer;
int selectedbodyIndex;
final Function(int) onIndexChange;
MihApp({
@@ -15,6 +16,7 @@ class MihApp extends StatefulWidget {
required this.appActionButton,
required this.appTools,
required this.appBody,
this.actionDrawer,
required this.selectedbodyIndex,
required this.onIndexChange,
});
@@ -54,6 +56,7 @@ class _MihAppState extends State<MihApp> {
Widget build(BuildContext context) {
Size screenSize = MediaQuery.of(context).size;
return Scaffold(
drawer: widget.actionDrawer,
body: SafeArea(
child: Container(
width: screenSize.width,

View File

@@ -52,59 +52,71 @@ class _MihAppTileState extends State<MihAppTile> {
@override
Widget build(BuildContext context) {
double borderRadius = widget.iconSize * 0.25;
return SizedBox(
width: widget.iconSize,
child: Container(
alignment: Alignment.topCenter,
// color: Colors.black,
// constraints: BoxConstraints(),
child: Column(
children: [
AnimatedContainer(
//alignment: Alignment.center,
width: widget.iconSize,
height: widget.iconSize,
duration: const Duration(seconds: 2),
child: Material(
color: widget.primaryColor,
// shadowColor:
// MzanziInnovationHub.of(context)!.theme.secondaryColor(),
// elevation: 5,
borderRadius: BorderRadius.circular(borderRadius),
child: InkWell(
borderRadius: BorderRadius.circular(borderRadius),
// ho
onTap: widget.onTap,
onLongPress: () {
displayHint();
},
// hoverDuration: ,
splashColor:
MzanziInnovationHub.of(context)!.theme.highlightColor(),
highlightColor:
MzanziInnovationHub.of(context)!.theme.highlightColor(),
child: FittedBox(child: widget.appIcon),
),
),
double borderRadius = widget.iconSize * 0.15;
return Container(
alignment: Alignment.topCenter,
// color: Colors.black,
// width: widget.iconSize,
// height: widget.iconSize + widget.iconSize / 3,
child: Column(
children: [
Flexible(
flex: 3,
child: LayoutBuilder(
builder: (context, constraints) {
double iconHeight = constraints.maxWidth;
return AnimatedContainer(
height: iconHeight,
duration: const Duration(seconds: 2),
child: Material(
color: widget.primaryColor,
// shadowColor:
// MzanziInnovationHub.of(context)!.theme.secondaryColor(),
// elevation: 5,
borderRadius: BorderRadius.circular(borderRadius),
child: InkWell(
borderRadius: BorderRadius.circular(borderRadius),
// ho
onTap: widget.onTap,
onLongPress: () {
displayHint();
},
// hoverDuration: ,
splashColor: MzanziInnovationHub.of(context)!
.theme
.highlightColor(),
highlightColor: MzanziInnovationHub.of(context)!
.theme
.highlightColor(),
child: FittedBox(child: widget.appIcon),
),
),
);
},
),
const SizedBox(height: 10),
FittedBox(
child: Text(
widget.appName,
textAlign: TextAlign.center,
// softWrap: true,
// overflow: TextOverflow.visible,
style: TextStyle(
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
fontSize: 40.0,
fontWeight: FontWeight.bold,
),
const SizedBox(height: 10),
Flexible(
flex: 1,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
widget.appName,
textAlign: TextAlign.center,
// softWrap: true,
// overflow: TextOverflow.visible,
style: TextStyle(
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
fontSize: 20.0,
fontWeight: FontWeight.bold,
),
),
),
)
],
),
],
),
)
],
),
);
}

View File

@@ -1,9 +1,9 @@
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_action.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/about_mih/app_tools/mih_info.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/about_mih/app_tools/mih_privacy_policy.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/about_mih/app_tools/mih_terms_of_service.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';
class AboutMih extends StatefulWidget {

View File

@@ -0,0 +1,46 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tile.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
class AboutMihTile extends StatefulWidget {
final double packageSize;
const AboutMihTile({
super.key,
required this.packageSize,
});
@override
State<AboutMihTile> createState() => _AboutMihTileState();
}
class _AboutMihTileState extends State<AboutMihTile> {
@override
Widget build(BuildContext context) {
return MihAppTile(
onTap: () {
Navigator.of(context).pushNamed(
'/about',
arguments: 0,
);
},
appName: "About MIH",
appIcon: Container(
alignment: Alignment.center,
padding: const EdgeInsets.all(25),
child: FaIcon(
FontAwesomeIcons.circleInfo,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
size: widget.packageSize,
),
),
// Icon(
// Icons.info,
// color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
// ),
iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
);
}
}

View File

@@ -2,7 +2,7 @@ import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_action.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/app_user.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/access_review/app_tools/mih_access_requests.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/access_review/package_tools/mih_access_requests.dart';
import 'package:flutter/material.dart';
class MihAccess extends StatefulWidget {

View File

@@ -0,0 +1,43 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/app_user.dart';
import 'package:flutter/material.dart';
class MihAccessTile extends StatefulWidget {
final AppUser signedInUser;
final double packageSize;
const MihAccessTile({
super.key,
required this.signedInUser,
required this.packageSize,
});
@override
State<MihAccessTile> createState() => _MihAccessTileState();
}
class _MihAccessTileState extends State<MihAccessTile> {
@override
Widget build(BuildContext context) {
return MihAppTile(
onTap: () {
Navigator.of(context).pushNamed(
'/mih-access',
arguments: widget.signedInUser,
);
},
appName: "MIH Access",
appIcon: Container(
padding: const EdgeInsets.all(1),
child: Icon(
Icons.check_box,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
),
iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
);
}
}

View File

@@ -1,8 +1,8 @@
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_action.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/calculator/app_tools/simple_calc.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/calculator/app_tools/tip_calc.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/calculator/package_tools/simple_calc.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/calculator/package_tools/tip_calc.dart';
import 'package:flutter/material.dart';
class MIHCalculator extends StatefulWidget {

View File

@@ -0,0 +1,42 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tile.dart';
import 'package:flutter/material.dart';
class MihCalculatorTile extends StatefulWidget {
final bool personalSelected;
final double packageSize;
const MihCalculatorTile({
super.key,
required this.personalSelected,
required this.packageSize,
});
@override
State<MihCalculatorTile> createState() => _MihCalculatorTileState();
}
class _MihCalculatorTileState extends State<MihCalculatorTile> {
@override
Widget build(BuildContext context) {
return MihAppTile(
onTap: () {
Navigator.of(context).pushNamed(
'/calculator',
arguments: widget.personalSelected,
);
},
appName: "Calculator",
appIcon: Container(
padding: const EdgeInsets.all(0),
child: Icon(
Icons.calculate,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
),
iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
);
}
}

View File

@@ -2,7 +2,7 @@ import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_action.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/calendar/app_tools/appointments.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/calendar/package_tools/appointments.dart';
import 'package:flutter/material.dart';
class MzansiCalendar extends StatefulWidget {

View File

@@ -0,0 +1,43 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:flutter/material.dart';
class MzansiCalendarTile extends StatefulWidget {
final CalendarArguments arguments;
final double packageSize;
const MzansiCalendarTile({
super.key,
required this.arguments,
required this.packageSize,
});
@override
State<MzansiCalendarTile> createState() => _MzansiCalendarTileState();
}
class _MzansiCalendarTileState extends State<MzansiCalendarTile> {
@override
Widget build(BuildContext context) {
return MihAppTile(
onTap: () {
Navigator.of(context).pushNamed(
'/calendar',
arguments: widget.arguments,
);
},
appName: "Calendar",
appIcon: Container(
padding: const EdgeInsets.all(0.5),
child: Icon(
Icons.calendar_month,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
),
iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
);
}
}

View File

@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import '../../main.dart';
import '../../mih_objects/app_user.dart';
import '../../mih_objects/arguments.dart';
import '../../../main.dart';
import '../../../mih_objects/app_user.dart';
import '../../../mih_objects/arguments.dart';
import 'package:supertokens_flutter/supertokens.dart';
import '../mih_profile_picture.dart';
import '../../../mih_components/mih_profile_picture.dart';
class MIHAppDrawer extends StatefulWidget {
final AppUser signedInUser;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -4,6 +4,7 @@ import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih-app_tool_bo
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_action.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mih_home/mih_home.dart';
import 'package:flutter/material.dart';
import '../../mih_apis/mih_api_calls.dart';
@@ -12,7 +13,6 @@ import '../../mih_env/env.dart';
import '../../mih_objects/app_user.dart';
import '../../mih_objects/arguments.dart';
import '../../mih_objects/business_user.dart';
import 'mih_home.dart';
class MIHProfileGetter extends StatefulWidget {
final bool personalSelected;
@@ -242,7 +242,7 @@ class _MIHProfileGetterState extends State<MIHProfileGetter> {
builder: (BuildContext context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.hasData) {
return MIHHome(
return MihHome(
signedInUser: snapshot.requireData.signedInUser,
businessUser: snapshot.data!.businessUser,
business: snapshot.data!.business,
@@ -255,6 +255,19 @@ class _MIHProfileGetterState extends State<MIHProfileGetter> {
isDevActive: isDevActive(),
personalSelected: widget.personalSelected,
);
// return MIHHomeLegacy(
// signedInUser: snapshot.requireData.signedInUser,
// businessUser: snapshot.data!.businessUser,
// business: snapshot.data!.business,
// patient: snapshot.data!.patient,
// notifications: snapshot.data!.notifi,
// propicFile: isPictureAvailable(snapshot.data!.profilePicUrl),
// isUserNew: isUserNew(snapshot.requireData.signedInUser),
// isBusinessUser: isBusinessUser(snapshot.requireData.signedInUser),
// isBusinessUserNew: isBusinessUserNew(snapshot.data!.businessUser),
// isDevActive: isDevActive(),
// personalSelected: widget.personalSelected,
// );
} else {
return errorPage(snapshot.error.toString());
}

View File

@@ -0,0 +1,222 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_single_child_scroll.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih-app_tool_body.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/app_user.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/business.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/business_user.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/about_mih/package_tile/about_mih_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/calculator/package_tiles/mih_calculator_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/calendar/package_tiles/mzansi_calendar_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_profile/business_profile/package_tiles/mzansi_business_profile_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_manager/package_tiles/pat_manager_tile.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class MihBusinessHome extends StatefulWidget {
final AppUser signedInUser;
final bool personalSelected;
final Business? business;
final BusinessUser? businessUser;
const MihBusinessHome({
super.key,
required this.signedInUser,
required this.personalSelected,
required this.business,
required this.businessUser,
});
@override
State<MihBusinessHome> createState() => _MihBusinessHomeState();
}
class _MihBusinessHomeState extends State<MihBusinessHome> {
final FocusNode _focusNode = FocusNode();
final TextEditingController searchController = TextEditingController();
String packageSearch = "";
late List<Widget> businessPackages;
double packageSize = 200;
List<Widget> setBusinessPackages() {
List<Widget> temp = [];
//=============== Biz Profile ===============
temp.add(
MzansiBusinessProfileTile(
arguments: BusinessArguments(
widget.signedInUser,
widget.businessUser,
widget.business,
),
packageSize: packageSize,
),
);
//=============== Pat Manager ===============
temp.add(
PatManagerTile(
arguments: PatManagerArguments(
widget.signedInUser,
false,
widget.business,
widget.businessUser,
),
packageSize: packageSize,
),
);
//=============== Calendar ===============
temp.add(
MzansiCalendarTile(
arguments: CalendarArguments(
widget.signedInUser,
false,
widget.business,
widget.businessUser,
),
packageSize: packageSize,
),
);
//=============== Mzansi AI ===============
temp.add(
MzansiAiTile(
signedInUser: widget.signedInUser,
packageSize: packageSize,
),
);
//=============== Calculator ===============
temp.add(
MihCalculatorTile(
personalSelected: widget.personalSelected,
packageSize: packageSize,
),
);
//=============== About MIH ===============
temp.add(
AboutMihTile(packageSize: packageSize),
);
return temp;
}
EdgeInsets getPadding(double width, double height) {
if (MzanziInnovationHub.of(context)!.theme.screenType == "mobile") {
double mobilePadding = 10;
return EdgeInsets.only(
left: mobilePadding,
right: mobilePadding,
bottom: mobilePadding,
);
} else {
return EdgeInsets.only(
left: width / 13,
right: width / 13,
bottom: height / 15,
);
}
}
@override
void dispose() {
super.dispose();
searchController.dispose();
}
@override
void initState() {
super.initState();
businessPackages = setBusinessPackages();
}
@override
Widget build(BuildContext context) {
final Size size = MediaQuery.sizeOf(context);
final double width = size.width;
final double height = size.height;
return MihAppToolBody(
borderOn: true,
bodyItem: getBody(width, height),
);
}
Widget getBody(double width, double height) {
return MihSingleChildScroll(
child: Column(
children: [
const Text(
"Business Home",
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 25,
),
),
const SizedBox(
height: 10,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: [
Flexible(
flex: 4,
child: KeyboardListener(
focusNode: _focusNode,
autofocus: true,
onKeyEvent: (event) async {
if (event is KeyDownEvent &&
event.logicalKey == LogicalKeyboardKey.enter) {
setState(() {
packageSearch = searchController.text;
});
}
},
child: SizedBox(
child: MIHSearchField(
controller: searchController,
hintText: "Search Mzansi Packages",
required: false,
editable: true,
onTap: () {
setState(() {
packageSearch = searchController.text;
});
},
),
),
),
),
Flexible(
flex: 1,
child: IconButton(
//padding: const EdgeInsets.all(0),
onPressed: () {
setState(() {
packageSearch = "";
searchController.clear();
});
},
icon: const Icon(
Icons.filter_alt_off,
size: 30,
),
),
),
],
),
const SizedBox(height: 10),
GridView.builder(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
padding: getPadding(width, height),
// shrinkWrap: true,
itemCount: businessPackages.length,
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: packageSize,
),
itemBuilder: (context, index) {
return businessPackages[index];
},
),
],
),
);
}
}

View File

@@ -0,0 +1,240 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_single_child_scroll.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih-app_tool_body.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/app_user.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/business.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/business_user.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/about_mih/package_tile/about_mih_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/access_review/package_tile/mih_access_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/calculator/package_tiles/mih_calculator_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/calendar/package_tiles/mzansi_calendar_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_wallet/package_tiles/mih_wallet_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class MihPersonalHome extends StatefulWidget {
final AppUser signedInUser;
final bool personalSelected;
final Business? business;
final BusinessUser? businessUser;
final ImageProvider<Object>? propicFile;
const MihPersonalHome({
super.key,
required this.signedInUser,
required this.personalSelected,
required this.business,
required this.businessUser,
required this.propicFile,
});
@override
State<MihPersonalHome> createState() => _MihPersonalHomeState();
}
class _MihPersonalHomeState extends State<MihPersonalHome> {
final FocusNode _focusNode = FocusNode();
final TextEditingController searchController = TextEditingController();
String packageSearch = "";
late List<Widget> personalPackages;
double packageSize = 200;
List<Widget> setPersonalPackages() {
List<Widget> temp = [];
//=============== Mzansi Profile ===============
temp.add(
MzansiProfileTile(
signedInUser: widget.signedInUser,
propicFile: widget.propicFile,
packageSize: packageSize,
),
);
//=============== Mzansi Wallet ===============
temp.add(
MihWalletTile(
signedInUser: widget.signedInUser,
packageSize: packageSize,
),
);
//=============== Patient Profile ===============
temp.add(
PatientProfileTile(
arguments: PatientViewArguments(
widget.signedInUser,
null,
null,
null,
"personal",
),
packageSize: packageSize,
),
);
//=============== Mzansi AI ===============
temp.add(
MzansiAiTile(
signedInUser: widget.signedInUser,
packageSize: packageSize,
),
);
//=============== Calendar ===============
temp.add(
MzansiCalendarTile(
arguments: CalendarArguments(
widget.signedInUser,
true,
widget.business,
widget.businessUser,
),
packageSize: packageSize,
),
);
//=============== Calculator ===============
temp.add(
MihCalculatorTile(
personalSelected: widget.personalSelected,
packageSize: packageSize,
),
);
//=============== MIH Access ===============
temp.add(
MihAccessTile(
signedInUser: widget.signedInUser,
packageSize: packageSize,
),
);
//=============== About MIH ===============
temp.add(
AboutMihTile(packageSize: packageSize),
);
return temp;
}
EdgeInsets getPadding(double width, double height) {
if (MzanziInnovationHub.of(context)!.theme.screenType == "mobile") {
double mobilePadding = 10;
return EdgeInsets.only(
left: mobilePadding,
right: mobilePadding,
bottom: mobilePadding,
);
} else {
return EdgeInsets.only(
left: width / 13,
right: width / 13,
bottom: height / 15,
);
}
}
@override
void dispose() {
super.dispose();
searchController.dispose();
}
@override
void initState() {
super.initState();
personalPackages = setPersonalPackages();
}
@override
Widget build(BuildContext context) {
final Size size = MediaQuery.sizeOf(context);
final double width = size.width;
final double height = size.height;
return MihAppToolBody(
borderOn: true,
bodyItem: getBody(width, height),
);
}
Widget getBody(double width, double height) {
return MihSingleChildScroll(
child: Column(
children: [
const Text(
"Personal Home",
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 25,
),
),
const SizedBox(
height: 10,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: [
Flexible(
flex: 4,
child: KeyboardListener(
focusNode: _focusNode,
autofocus: true,
onKeyEvent: (event) async {
if (event is KeyDownEvent &&
event.logicalKey == LogicalKeyboardKey.enter) {
setState(() {
packageSearch = searchController.text;
});
}
},
child: SizedBox(
child: MIHSearchField(
controller: searchController,
hintText: "Search Mzansi Packages",
required: false,
editable: true,
onTap: () {
setState(() {
packageSearch = searchController.text;
});
},
),
),
),
),
Flexible(
flex: 1,
child: IconButton(
//padding: const EdgeInsets.all(0),
onPressed: () {
setState(() {
packageSearch = "";
searchController.clear();
});
},
icon: const Icon(
Icons.filter_alt_off,
size: 30,
),
),
),
],
),
const SizedBox(height: 10),
GridView.builder(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
padding: getPadding(width, height),
// shrinkWrap: true,
itemCount: personalPackages.length,
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: packageSize,
),
itemBuilder: (context, index) {
return personalPackages[index];
},
),
],
),
);
}
}

View File

@@ -2,7 +2,7 @@ import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_action.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/app_user.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_ai/app_tools/ai_chat.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_ai/package_tools/ai_chat.dart';
import 'package:flutter/material.dart';
class MzansiAi extends StatefulWidget {

View File

@@ -0,0 +1,41 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/app_user.dart';
import 'package:flutter/material.dart';
class MzansiAiTile extends StatefulWidget {
final AppUser signedInUser;
final double packageSize;
const MzansiAiTile({
super.key,
required this.signedInUser,
required this.packageSize,
});
@override
State<MzansiAiTile> createState() => _MzansiAiTileState();
}
class _MzansiAiTileState extends State<MzansiAiTile> {
@override
Widget build(BuildContext context) {
ImageProvider aiLogo = MzanziInnovationHub.of(context)!.theme.aiLogoImage();
return MihAppTile(
onTap: () {
Navigator.of(context).pushNamed(
'/mzansi-ai',
arguments: widget.signedInUser,
);
},
appName: "Mzansi AI",
appIcon: Container(
padding: const EdgeInsets.all(25),
child: Image(image: aiLogo),
),
iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
);
}
}

View File

@@ -2,9 +2,9 @@ import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_action.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_profile/business_profile/app_tools/mih_business_profile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_profile/business_profile/app_tools/mih_business_user_search.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_profile/business_profile/app_tools/mih_my_business_team.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_profile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_user_search.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_my_business_team.dart';
import 'package:flutter/material.dart';
class MzansiBusinessProfile extends StatefulWidget {

View File

@@ -0,0 +1,43 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:flutter/material.dart';
class MzansiBusinessProfileTile extends StatefulWidget {
final BusinessArguments arguments;
final double packageSize;
const MzansiBusinessProfileTile({
super.key,
required this.arguments,
required this.packageSize,
});
@override
State<MzansiBusinessProfileTile> createState() =>
_MzansiBusinessProfileTileState();
}
class _MzansiBusinessProfileTileState extends State<MzansiBusinessProfileTile> {
@override
Widget build(BuildContext context) {
return MihAppTile(
onTap: () {
Navigator.of(context).pushNamed(
'/business-profile/manage',
arguments: widget.arguments,
);
},
appName: "Business Profile",
appIcon: Container(
padding: const EdgeInsets.all(0.5),
child: Icon(
Icons.business_center,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
),
iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
);
}
}

View File

@@ -3,18 +3,18 @@ import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:supertokens_flutter/http.dart' as http;
import '../../../main.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import '../../../mih_components/mih_layout/mih_window.dart';
import '../../../mih_components/mih_pop_up_messages/mih_delete_message.dart';
import '../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
import '../../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
import '../../../mih_env/env.dart';
import '../../../mih_objects/arguments.dart';
import '../../../mih_objects/business_employee.dart';
import '../../../../main.dart';
import '../../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
import '../../../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
import '../../../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import '../../../../mih_components/mih_layout/mih_window.dart';
import '../../../../mih_components/mih_pop_up_messages/mih_delete_message.dart';
import '../../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
import '../../../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
import '../../../../mih_env/env.dart';
import '../../../../mih_objects/arguments.dart';
import '../../../../mih_objects/business_employee.dart';
class BuildEmployeeList extends StatefulWidget {
final List<BusinessEmployee> employees;

View File

@@ -3,17 +3,17 @@ import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:supertokens_flutter/http.dart' as http;
import '../../../main.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import '../../../mih_components/mih_layout/mih_window.dart';
import '../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
import '../../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
import '../../../mih_env/env.dart';
import '../../../mih_objects/app_user.dart';
import '../../../mih_objects/arguments.dart';
import '../../../../main.dart';
import '../../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
import '../../../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
import '../../../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import '../../../../mih_components/mih_layout/mih_window.dart';
import '../../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
import '../../../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
import '../../../../mih_env/env.dart';
import '../../../../mih_objects/app_user.dart';
import '../../../../mih_objects/arguments.dart';
class BuildUserList extends StatefulWidget {
final List<AppUser> users;

View File

@@ -3,20 +3,20 @@ import 'dart:convert';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import '../../main.dart';
import '../../../main.dart';
import 'package:supertokens_flutter/http.dart' as http;
import 'package:supertokens_flutter/supertokens.dart';
import 'package:http/http.dart' as http2;
import '../../mih_components/mih_inputs_and_buttons/mih_button.dart';
import '../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
import '../../mih_components/mih_inputs_and_buttons/mih_file_input.dart';
import '../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import '../../mih_components/mih_pop_up_messages/mih_error_message.dart';
import '../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../mih_components/mih_pop_up_messages/mih_success_message.dart';
import '../../mih_env/env.dart';
import '../../mih_objects/arguments.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_file_input.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import '../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
import '../../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
import '../../../mih_env/env.dart';
import '../../../mih_objects/arguments.dart';
class BusinessAbout extends StatefulWidget {
final BusinessArguments arguments;

View File

@@ -3,21 +3,21 @@ import 'dart:convert';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import '../../main.dart';
import '../../../main.dart';
import 'package:supertokens_flutter/http.dart' as http;
import 'package:supertokens_flutter/supertokens.dart';
import 'package:http/http.dart' as http2;
import '../../mih_apis/mih_location_api.dart';
import '../../mih_components/mih_inputs_and_buttons/mih_button.dart';
import '../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
import '../../mih_components/mih_inputs_and_buttons/mih_file_input.dart';
import '../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import '../../mih_components/mih_pop_up_messages/mih_error_message.dart';
import '../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../mih_components/mih_pop_up_messages/mih_success_message.dart';
import '../../mih_env/env.dart';
import '../../mih_objects/arguments.dart';
import '../../../mih_apis/mih_location_api.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_file_input.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import '../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
import '../../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
import '../../../mih_env/env.dart';
import '../../../mih_objects/arguments.dart';
class BusinessDetails extends StatefulWidget {
final BusinessArguments arguments;

View File

@@ -3,21 +3,21 @@ import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_swipe_detector/flutter_swipe_detector.dart';
import '../../main.dart';
import '../../../main.dart';
import 'package:supertokens_flutter/http.dart' as http;
import '../../mih_components/mih_inputs_and_buttons/mih_search_input.dart';
import '../../mih_components/mih_layout/mih_action.dart';
import '../../mih_components/mih_layout/mih_body.dart';
import '../../mih_components/mih_layout/mih_header.dart';
import '../../mih_components/mih_layout/mih_layout_builder.dart';
import '../../mih_components/mih_pop_up_messages/mih_error_message.dart';
import '../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../mih_components/mih_pop_up_messages/mih_success_message.dart';
import '../../mih_env/env.dart';
import '../../mih_objects/app_user.dart';
import '../../mih_objects/arguments.dart';
import '../../mih_objects/business_employee.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_search_input.dart';
import '../../../mih_components/mih_layout/mih_action.dart';
import '../../../mih_components/mih_layout/mih_body.dart';
import '../../../mih_components/mih_layout/mih_header.dart';
import '../../../mih_components/mih_layout/mih_layout_builder.dart';
import '../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
import '../../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
import '../../../mih_env/env.dart';
import '../../../mih_objects/app_user.dart';
import '../../../mih_objects/arguments.dart';
import '../../../mih_objects/business_employee.dart';
import 'builder/build_employee_list.dart';
import 'builder/build_user_list.dart';
import 'business_details.dart';

View File

@@ -3,26 +3,26 @@ import 'dart:convert';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import '../../main.dart';
import '../../../main.dart';
import 'package:supertokens_flutter/http.dart' as http;
import 'package:supertokens_flutter/supertokens.dart';
import 'package:file_picker/file_picker.dart';
import 'package:http/http.dart' as http2;
import '../../mih_apis/mih_location_api.dart';
import '../../mih_components/mih_inputs_and_buttons/mih_button.dart';
import '../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
import '../../mih_components/mih_inputs_and_buttons/mih_file_input.dart';
import '../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import '../../mih_components/mih_layout/mih_action.dart';
import '../../mih_components/mih_layout/mih_body.dart';
import '../../mih_components/mih_layout/mih_header.dart';
import '../../mih_components/mih_layout/mih_layout_builder.dart';
import '../../mih_components/mih_pop_up_messages/mih_error_message.dart';
import '../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../mih_components/mih_pop_up_messages/mih_success_message.dart';
import '../../mih_env/env.dart';
import '../../mih_objects/app_user.dart';
import '../../../mih_apis/mih_location_api.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_button.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_file_input.dart';
import '../../../mih_components/mih_inputs_and_buttons/mih_text_input.dart';
import '../../../mih_components/mih_layout/mih_action.dart';
import '../../../mih_components/mih_layout/mih_body.dart';
import '../../../mih_components/mih_layout/mih_header.dart';
import '../../../mih_components/mih_layout/mih_layout_builder.dart';
import '../../../mih_components/mih_pop_up_messages/mih_error_message.dart';
import '../../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../../mih_components/mih_pop_up_messages/mih_success_message.dart';
import '../../../mih_env/env.dart';
import '../../../mih_objects/app_user.dart';
class ProfileBusinessAdd extends StatefulWidget {
//final BusinessUserScreenArguments arguments;

View File

@@ -2,7 +2,7 @@ import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_action.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_profile/personal_profile/app_tools/mih_personal_profile.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_profile.dart';
import 'package:flutter/material.dart';
class MzansiProfile extends StatefulWidget {

View File

@@ -0,0 +1,47 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/app_user.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:flutter/material.dart';
class MzansiProfileTile extends StatefulWidget {
final AppUser signedInUser;
final ImageProvider<Object>? propicFile;
final double packageSize;
const MzansiProfileTile({
super.key,
required this.signedInUser,
required this.propicFile,
required this.packageSize,
});
@override
State<MzansiProfileTile> createState() => _MzansiProfileTileState();
}
class _MzansiProfileTileState extends State<MzansiProfileTile> {
@override
Widget build(BuildContext context) {
ImageProvider logo = MzanziInnovationHub.of(context)!.theme.logoImage();
return MihAppTile(
onTap: () {
Navigator.of(context).pushNamed(
'/mzansi-profile',
arguments: AppProfileUpdateArguments(
widget.signedInUser,
widget.propicFile,
),
);
},
appName: "Mzansi Profile",
appIcon: Container(
padding: const EdgeInsets.all(25),
child: Image(image: logo),
),
iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
);
}
}

View File

@@ -2,7 +2,7 @@ import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_action.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/app_user.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_wallet/app_tools/mih_cards.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_wallet/package_tools/mih_cards.dart';
import 'package:flutter/material.dart';
class MihWallet extends StatefulWidget {

View File

@@ -0,0 +1,45 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/app_user.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
class MihWalletTile extends StatefulWidget {
final AppUser signedInUser;
final double packageSize;
const MihWalletTile({
super.key,
required this.signedInUser,
required this.packageSize,
});
@override
State<MihWalletTile> createState() => _MihWalletTileState();
}
class _MihWalletTileState extends State<MihWalletTile> {
@override
Widget build(BuildContext context) {
return MihAppTile(
onTap: () {
Navigator.of(context).pushNamed(
'/mzansi-wallet',
arguments: widget.signedInUser,
);
},
appName: "Mzansi Wallet",
appIcon: Container(
padding: const EdgeInsets.all(25),
child: FaIcon(
FontAwesomeIcons.wallet,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
size: widget.packageSize,
),
),
iconSize: 200,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
);
}
}

View File

@@ -0,0 +1,42 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:flutter/material.dart';
class PatManagerTile extends StatefulWidget {
final PatManagerArguments arguments;
final double packageSize;
const PatManagerTile({
super.key,
required this.arguments,
required this.packageSize,
});
@override
State<PatManagerTile> createState() => _PatManagerTileState();
}
class _PatManagerTileState extends State<PatManagerTile> {
@override
Widget build(BuildContext context) {
return MihAppTile(
onTap: () {
Navigator.of(context).pushNamed(
'/patient-manager',
arguments: widget.arguments,
);
},
appName: "Patient Manager",
appIcon: Container(
padding: const EdgeInsets.all(1),
child: Icon(
Icons.medical_services,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
),
iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
);
}
}

View File

@@ -2,9 +2,9 @@ import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_action.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_manager/app_tools/mih_patient_search.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_manager/app_tools/my_patient_list.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_manager/app_tools/waiting_room.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_manager/package_tools/mih_patient_search.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_manager/package_tools/my_patient_list.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_manager/package_tools/waiting_room.dart';
import 'package:flutter/material.dart';
class PatManager extends StatefulWidget {

View File

@@ -0,0 +1,43 @@
import 'package:Mzansi_Innovation_Hub/main.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tile.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:flutter/material.dart';
class PatientProfileTile extends StatefulWidget {
final PatientViewArguments arguments;
final double packageSize;
const PatientProfileTile({
super.key,
required this.arguments,
required this.packageSize,
});
@override
State<PatientProfileTile> createState() => _PatientProfileTileState();
}
class _PatientProfileTileState extends State<PatientProfileTile> {
@override
Widget build(BuildContext context) {
return MihAppTile(
onTap: () {
Navigator.of(context).pushNamed(
'/patient-profile',
arguments: widget.arguments,
);
},
appName: "Patient Profile",
appIcon: Container(
padding: const EdgeInsets.all(15),
child: Icon(
Icons.medical_information_outlined,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
size: widget.packageSize,
)),
iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
);
}
}

View File

@@ -2,10 +2,10 @@ import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_action.dart';
import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_profile/app_tools/patient_claim_or_statement.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_profile/app_tools/patient_consultation.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_profile/app_tools/patient_documents.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_profile/app_tools/patient_info.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_profile/package_tools/patient_claim_or_statement.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_profile/package_tools/patient_consultation.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_profile/package_tools/patient_documents.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/patient_profile/pat_profile/package_tools/patient_info.dart';
import 'package:flutter/material.dart';
class PatientProfile extends StatefulWidget {

View File

@@ -24,7 +24,7 @@ import '../mih_objects/arguments.dart';
import '../mih_packages/authentication/forgot_password.dart';
import '../mih_packages/authentication/reset_password.dart';
import '../mih_packages/patient_profile/pat_profile/components/full_screen_file.dart';
import '../mih_packages/manage_business/profile_business_add.dart';
import '../mih_packages/mzansi_profile/manage_business/profile_business_add.dart';
class RouteGenerator {
static Route<dynamic> generateRoute(RouteSettings settings) {
@@ -112,7 +112,7 @@ class RouteGenerator {
//===============================================================
//User Profile
case '/user-profile':
case '/mzansi-profile':
if (args is AppProfileUpdateArguments) {
return MaterialPageRoute(
settings: settings,