From c18702c778f9c73ecbf32f8f19c6863ec22932a1 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Tue, 25 Mar 2025 13:37:13 +0200 Subject: [PATCH 01/28] update home to MIHHOMLegacy --- Frontend/lib/mih_packages/mih_home/mih_home.dart | 8 ++++---- .../lib/mih_packages/mih_home/mih_profile_getter.dart | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Frontend/lib/mih_packages/mih_home/mih_home.dart b/Frontend/lib/mih_packages/mih_home/mih_home.dart index 72e60154..52a61c59 100644 --- a/Frontend/lib/mih_packages/mih_home/mih_home.dart +++ b/Frontend/lib/mih_packages/mih_home/mih_home.dart @@ -38,7 +38,7 @@ import '../../mih_objects/notification.dart'; import '../test/test.dart'; // ignore: must_be_immutable -class MIHHome extends StatefulWidget { +class MIHHomeLegacy extends StatefulWidget { final AppUser signedInUser; final BusinessUser? businessUser; final Business? business; @@ -50,7 +50,7 @@ class MIHHome extends StatefulWidget { final bool isBusinessUserNew; final bool isDevActive; bool personalSelected; - MIHHome({ + MIHHomeLegacy({ super.key, required this.signedInUser, required this.businessUser, @@ -66,10 +66,10 @@ class MIHHome extends StatefulWidget { }); @override - State createState() => _MIHHomeState(); + State createState() => _MIHHomeLegacyState(); } -class _MIHHomeState extends State { +class _MIHHomeLegacyState extends State { final proPicController = TextEditingController(); final TextEditingController searchController = TextEditingController(); final FocusNode _focusNode = FocusNode(); diff --git a/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart b/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart index b64e7777..741387d7 100644 --- a/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart +++ b/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart @@ -242,7 +242,7 @@ class _MIHProfileGetterState extends State { builder: (BuildContext context, snapshot) { if (snapshot.connectionState == ConnectionState.done) { if (snapshot.hasData) { - return MIHHome( + return MIHHomeLegacy( signedInUser: snapshot.requireData.signedInUser, businessUser: snapshot.data!.businessUser, business: snapshot.data!.business, From d6fb8e8d647e78aeee890b4207f0033eeaa53f8c Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Tue, 25 Mar 2025 13:37:55 +0200 Subject: [PATCH 02/28] Chaneg file name --- .../mih_home/{mih_home.dart => mih_home_legacy.dart} | 0 Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename Frontend/lib/mih_packages/mih_home/{mih_home.dart => mih_home_legacy.dart} (100%) diff --git a/Frontend/lib/mih_packages/mih_home/mih_home.dart b/Frontend/lib/mih_packages/mih_home/mih_home_legacy.dart similarity index 100% rename from Frontend/lib/mih_packages/mih_home/mih_home.dart rename to Frontend/lib/mih_packages/mih_home/mih_home_legacy.dart diff --git a/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart b/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart index 741387d7..3002258c 100644 --- a/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart +++ b/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart @@ -12,7 +12,7 @@ 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'; +import 'mih_home_legacy.dart'; class MIHProfileGetter extends StatefulWidget { final bool personalSelected; From f315eceacf5553825a311b65d7c00a7f7ef95a47 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Tue, 25 Mar 2025 16:03:47 +0200 Subject: [PATCH 03/28] fix layout of MIH App Tile Widget --- .../mih_package/mih_app_tile.dart | 94 +++++++++++-------- 1 file changed, 54 insertions(+), 40 deletions(-) diff --git a/Frontend/lib/mih_components/mih_package/mih_app_tile.dart b/Frontend/lib/mih_components/mih_package/mih_app_tile.dart index 52ed41aa..c9d2b5c1 100644 --- a/Frontend/lib/mih_components/mih_package/mih_app_tile.dart +++ b/Frontend/lib/mih_components/mih_package/mih_app_tile.dart @@ -52,55 +52,69 @@ class _MihAppTileState extends State { @override Widget build(BuildContext context) { - double borderRadius = widget.iconSize * 0.25; + double borderRadius = widget.iconSize * 0.15; return SizedBox( width: widget.iconSize, + height: 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), - ), + 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, - ), + 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, + ), + ), + ], ), ) ], From 096f4d50a01f33e6987efd63b2207a7069db20d6 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Tue, 25 Mar 2025 16:05:43 +0200 Subject: [PATCH 04/28] rename app_tools to package_tools --- .../about_mih/{app_tools => package_tools}/mih_info.dart | 0 .../{app_tools => package_tools}/mih_privacy_policy.dart | 0 .../{app_tools => package_tools}/mih_terms_of_service.dart | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename Frontend/lib/mih_packages/about_mih/{app_tools => package_tools}/mih_info.dart (100%) rename Frontend/lib/mih_packages/about_mih/{app_tools => package_tools}/mih_privacy_policy.dart (100%) rename Frontend/lib/mih_packages/about_mih/{app_tools => package_tools}/mih_terms_of_service.dart (100%) diff --git a/Frontend/lib/mih_packages/about_mih/app_tools/mih_info.dart b/Frontend/lib/mih_packages/about_mih/package_tools/mih_info.dart similarity index 100% rename from Frontend/lib/mih_packages/about_mih/app_tools/mih_info.dart rename to Frontend/lib/mih_packages/about_mih/package_tools/mih_info.dart diff --git a/Frontend/lib/mih_packages/about_mih/app_tools/mih_privacy_policy.dart b/Frontend/lib/mih_packages/about_mih/package_tools/mih_privacy_policy.dart similarity index 100% rename from Frontend/lib/mih_packages/about_mih/app_tools/mih_privacy_policy.dart rename to Frontend/lib/mih_packages/about_mih/package_tools/mih_privacy_policy.dart diff --git a/Frontend/lib/mih_packages/about_mih/app_tools/mih_terms_of_service.dart b/Frontend/lib/mih_packages/about_mih/package_tools/mih_terms_of_service.dart similarity index 100% rename from Frontend/lib/mih_packages/about_mih/app_tools/mih_terms_of_service.dart rename to Frontend/lib/mih_packages/about_mih/package_tools/mih_terms_of_service.dart From 2799e8100921298360626456a03e7b644193ca5e Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Tue, 25 Mar 2025 16:06:50 +0200 Subject: [PATCH 05/28] rename app_tools to package_tools --- .../{app_tools => package_tools}/mih_access_requests.dart | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Frontend/lib/mih_packages/access_review/{app_tools => package_tools}/mih_access_requests.dart (100%) diff --git a/Frontend/lib/mih_packages/access_review/app_tools/mih_access_requests.dart b/Frontend/lib/mih_packages/access_review/package_tools/mih_access_requests.dart similarity index 100% rename from Frontend/lib/mih_packages/access_review/app_tools/mih_access_requests.dart rename to Frontend/lib/mih_packages/access_review/package_tools/mih_access_requests.dart From b1607f02423e006a5e51bc58e3b7d51013768c88 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Tue, 25 Mar 2025 16:09:48 +0200 Subject: [PATCH 06/28] new package tile formate --- .../package_tile/about_mih_tile.dart | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Frontend/lib/mih_packages/about_mih/package_tile/about_mih_tile.dart diff --git a/Frontend/lib/mih_packages/about_mih/package_tile/about_mih_tile.dart b/Frontend/lib/mih_packages/about_mih/package_tile/about_mih_tile.dart new file mode 100644 index 00000000..2c9a0c84 --- /dev/null +++ b/Frontend/lib/mih_packages/about_mih/package_tile/about_mih_tile.dart @@ -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'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; + +class AboutMihTile extends StatefulWidget { + const AboutMihTile({super.key}); + + @override + State createState() => _AboutMihTileState(); +} + +class _AboutMihTileState extends State { + @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: 200, + ), + ), + // Icon( + // Icons.info, + // color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + // ), + iconSize: 200, + primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ); + } +} From dfe9e5e64cfc0386ff1ce97c5d5eeab4c2b2f35a Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Tue, 25 Mar 2025 16:09:56 +0200 Subject: [PATCH 07/28] update --- Frontend/lib/mih_packages/about_mih/about_mih.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Frontend/lib/mih_packages/about_mih/about_mih.dart b/Frontend/lib/mih_packages/about_mih/about_mih.dart index 474c0e5a..33917c6b 100644 --- a/Frontend/lib/mih_packages/about_mih/about_mih.dart +++ b/Frontend/lib/mih_packages/about_mih/about_mih.dart @@ -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 { From d608728bd0fac5b1909e694bbbc302158658c653 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Tue, 25 Mar 2025 16:10:07 +0200 Subject: [PATCH 08/28] update --- Frontend/lib/mih_packages/access_review/mih_access.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Frontend/lib/mih_packages/access_review/mih_access.dart b/Frontend/lib/mih_packages/access_review/mih_access.dart index 40100ca6..5ebdd805 100644 --- a/Frontend/lib/mih_packages/access_review/mih_access.dart +++ b/Frontend/lib/mih_packages/access_review/mih_access.dart @@ -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 { From 7e9ac5e317df72bbaaf3c9d0d3baed6b712a056e Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 09:15:13 +0200 Subject: [PATCH 09/28] mih access tile created --- .../package_tile/mih_access_tile.dart | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Frontend/lib/mih_packages/access_review/package_tile/mih_access_tile.dart diff --git a/Frontend/lib/mih_packages/access_review/package_tile/mih_access_tile.dart b/Frontend/lib/mih_packages/access_review/package_tile/mih_access_tile.dart new file mode 100644 index 00000000..c2dd1735 --- /dev/null +++ b/Frontend/lib/mih_packages/access_review/package_tile/mih_access_tile.dart @@ -0,0 +1,40 @@ +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; + const MihAccessTile({ + super.key, + required this.signedInUser, + }); + + @override + State createState() => _MihAccessTileState(); +} + +class _MihAccessTileState extends State { + @override + Widget build(BuildContext context) { + return MihAppTile( + onTap: () { + Navigator.of(context).pushNamed( + '/mih-access', + arguments: widget.signedInUser, + ); + }, + appName: "MIH Access", + appIcon: Padding( + padding: const EdgeInsets.all(1), + child: Icon( + Icons.check_box, + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + ), + iconSize: 200, + primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ); + } +} From f2326bc10957b74bcb657eb89467748d19565496 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 09:28:25 +0200 Subject: [PATCH 10/28] update package structure and add package tile --- .../calculator/mih_calculator.dart | 4 +- .../package_tiles/mih_calculator_tile.dart | 39 +++++++++++++++++++ .../simple_calc.dart | 0 .../tip_calc.dart | 0 4 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 Frontend/lib/mih_packages/calculator/package_tiles/mih_calculator_tile.dart rename Frontend/lib/mih_packages/calculator/{app_tools => package_tools}/simple_calc.dart (100%) rename Frontend/lib/mih_packages/calculator/{app_tools => package_tools}/tip_calc.dart (100%) diff --git a/Frontend/lib/mih_packages/calculator/mih_calculator.dart b/Frontend/lib/mih_packages/calculator/mih_calculator.dart index 0a7d11ab..a660ed5e 100644 --- a/Frontend/lib/mih_packages/calculator/mih_calculator.dart +++ b/Frontend/lib/mih_packages/calculator/mih_calculator.dart @@ -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 { diff --git a/Frontend/lib/mih_packages/calculator/package_tiles/mih_calculator_tile.dart b/Frontend/lib/mih_packages/calculator/package_tiles/mih_calculator_tile.dart new file mode 100644 index 00000000..5793a590 --- /dev/null +++ b/Frontend/lib/mih_packages/calculator/package_tiles/mih_calculator_tile.dart @@ -0,0 +1,39 @@ +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; + const MihCalculatorTile({ + super.key, + required this.personalSelected, + }); + + @override + State createState() => _MihCalculatorTileState(); +} + +class _MihCalculatorTileState extends State { + @override + Widget build(BuildContext context) { + return MihAppTile( + onTap: () { + Navigator.of(context).pushNamed( + '/calculator', + arguments: widget.personalSelected, + ); + }, + appName: "Calculator", + appIcon: Padding( + padding: const EdgeInsets.all(0), + child: Icon( + Icons.calculate, + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + ), + iconSize: 200, + primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ); + } +} diff --git a/Frontend/lib/mih_packages/calculator/app_tools/simple_calc.dart b/Frontend/lib/mih_packages/calculator/package_tools/simple_calc.dart similarity index 100% rename from Frontend/lib/mih_packages/calculator/app_tools/simple_calc.dart rename to Frontend/lib/mih_packages/calculator/package_tools/simple_calc.dart diff --git a/Frontend/lib/mih_packages/calculator/app_tools/tip_calc.dart b/Frontend/lib/mih_packages/calculator/package_tools/tip_calc.dart similarity index 100% rename from Frontend/lib/mih_packages/calculator/app_tools/tip_calc.dart rename to Frontend/lib/mih_packages/calculator/package_tools/tip_calc.dart From 49dbb33e99a0dfebce33da17d4dc65051f7f56b3 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 09:41:40 +0200 Subject: [PATCH 11/28] update package structure and add package tile --- .../calendar/mzansi_calendar.dart | 2 +- .../package_tiles/mzansi_calendar_tile.dart | 40 +++++++++++++++++++ .../appointments.dart | 0 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 Frontend/lib/mih_packages/calendar/package_tiles/mzansi_calendar_tile.dart rename Frontend/lib/mih_packages/calendar/{app_tools => package_tools}/appointments.dart (100%) diff --git a/Frontend/lib/mih_packages/calendar/mzansi_calendar.dart b/Frontend/lib/mih_packages/calendar/mzansi_calendar.dart index 6404d514..570e3acb 100644 --- a/Frontend/lib/mih_packages/calendar/mzansi_calendar.dart +++ b/Frontend/lib/mih_packages/calendar/mzansi_calendar.dart @@ -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 { diff --git a/Frontend/lib/mih_packages/calendar/package_tiles/mzansi_calendar_tile.dart b/Frontend/lib/mih_packages/calendar/package_tiles/mzansi_calendar_tile.dart new file mode 100644 index 00000000..2842ce9a --- /dev/null +++ b/Frontend/lib/mih_packages/calendar/package_tiles/mzansi_calendar_tile.dart @@ -0,0 +1,40 @@ +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; + const MzansiCalendarTile({ + super.key, + required this.arguments, + }); + + @override + State createState() => _MzansiCalendarTileState(); +} + +class _MzansiCalendarTileState extends State { + @override + Widget build(BuildContext context) { + return MihAppTile( + onTap: () { + Navigator.of(context).pushNamed( + '/calendar', + arguments: widget.arguments, + ); + }, + appName: "Calendar", + appIcon: Padding( + padding: const EdgeInsets.all(1), + child: Icon( + Icons.calendar_month, + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + ), + iconSize: 200, + primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ); + } +} diff --git a/Frontend/lib/mih_packages/calendar/app_tools/appointments.dart b/Frontend/lib/mih_packages/calendar/package_tools/appointments.dart similarity index 100% rename from Frontend/lib/mih_packages/calendar/app_tools/appointments.dart rename to Frontend/lib/mih_packages/calendar/package_tools/appointments.dart From d845609066f4f203344f96019cb320b45631ebfe Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 09:50:16 +0200 Subject: [PATCH 12/28] update package structure and add package tile --- .../lib/mih_packages/mzansi_ai/mzansi_ai.dart | 2 +- .../package_tiles/mzansi_ai_tile.dart | 41 +++++++++++++++++++ .../{app_tools => package_tools}/ai_chat.dart | 0 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 Frontend/lib/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart rename Frontend/lib/mih_packages/mzansi_ai/{app_tools => package_tools}/ai_chat.dart (100%) diff --git a/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart b/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart index 49316cf8..54272b97 100644 --- a/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart +++ b/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart @@ -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 { diff --git a/Frontend/lib/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart b/Frontend/lib/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart new file mode 100644 index 00000000..cf0d7c12 --- /dev/null +++ b/Frontend/lib/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart @@ -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; + const MzansiAiTile({ + super.key, + required this.signedInUser, + }); + + @override + State createState() => _MzansiAiTileState(); +} + +class _MzansiAiTileState extends State { + @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: Padding( + padding: const EdgeInsets.all(15.0), + child: SizedBox( + width: 225, + child: Image(image: aiLogo), + ), + ), + iconSize: 200, + primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ); + } +} diff --git a/Frontend/lib/mih_packages/mzansi_ai/app_tools/ai_chat.dart b/Frontend/lib/mih_packages/mzansi_ai/package_tools/ai_chat.dart similarity index 100% rename from Frontend/lib/mih_packages/mzansi_ai/app_tools/ai_chat.dart rename to Frontend/lib/mih_packages/mzansi_ai/package_tools/ai_chat.dart From d48e5d1611a6c841c4eba3b479ea14dced51c971 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 10:01:44 +0200 Subject: [PATCH 13/28] update package Structure and app package tile --- .../personal_profile/mzansi_profile.dart | 2 +- .../package_tiles/mzansi_profile_tile.dart | 47 +++++++++++++++++++ .../mih_personal_profile.dart | 0 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart rename Frontend/lib/mih_packages/mzansi_profile/personal_profile/{app_tools => package_tools}/mih_personal_profile.dart (100%) diff --git a/Frontend/lib/mih_packages/mzansi_profile/personal_profile/mzansi_profile.dart b/Frontend/lib/mih_packages/mzansi_profile/personal_profile/mzansi_profile.dart index e8a90ce3..d6da3b6b 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/personal_profile/mzansi_profile.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/personal_profile/mzansi_profile.dart @@ -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 { diff --git a/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart b/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart new file mode 100644 index 00000000..867e1f58 --- /dev/null +++ b/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart @@ -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? propicFile; + const MzansiProfileTile({ + super.key, + required this.signedInUser, + required this.propicFile, + }); + + @override + State createState() => _MzansiProfileTileState(); +} + +class _MzansiProfileTileState extends State { + @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: Padding( + padding: const EdgeInsets.all(15.0), + child: SizedBox( + width: 225, + child: Image(image: logo), + ), + ), + iconSize: 200, + primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ); + } +} diff --git a/Frontend/lib/mih_packages/mzansi_profile/personal_profile/app_tools/mih_personal_profile.dart b/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_profile.dart similarity index 100% rename from Frontend/lib/mih_packages/mzansi_profile/personal_profile/app_tools/mih_personal_profile.dart rename to Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_profile.dart From 85804b354fb916ea5c694ac2d66e90e270587f6f Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 10:10:56 +0200 Subject: [PATCH 14/28] update package structure and add package tile --- .../mzansi_wallet/mih_wallet.dart | 2 +- .../package_tiles/mih_wallet_tile.dart | 42 +++++++++++++++++++ .../mih_cards.dart | 0 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 Frontend/lib/mih_packages/mzansi_wallet/package_tiles/mih_wallet_tile.dart rename Frontend/lib/mih_packages/mzansi_wallet/{app_tools => package_tools}/mih_cards.dart (100%) diff --git a/Frontend/lib/mih_packages/mzansi_wallet/mih_wallet.dart b/Frontend/lib/mih_packages/mzansi_wallet/mih_wallet.dart index cabd4380..1359c10b 100644 --- a/Frontend/lib/mih_packages/mzansi_wallet/mih_wallet.dart +++ b/Frontend/lib/mih_packages/mzansi_wallet/mih_wallet.dart @@ -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 { diff --git a/Frontend/lib/mih_packages/mzansi_wallet/package_tiles/mih_wallet_tile.dart b/Frontend/lib/mih_packages/mzansi_wallet/package_tiles/mih_wallet_tile.dart new file mode 100644 index 00000000..c271b092 --- /dev/null +++ b/Frontend/lib/mih_packages/mzansi_wallet/package_tiles/mih_wallet_tile.dart @@ -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/app_user.dart'; +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; + +class MihWalletTile extends StatefulWidget { + final AppUser signedInUser; + const MihWalletTile({ + super.key, + required this.signedInUser, + }); + + @override + State createState() => _MihWalletTileState(); +} + +class _MihWalletTileState extends State { + @override + Widget build(BuildContext context) { + return MihAppTile( + onTap: () { + Navigator.of(context).pushNamed( + '/mzansi-wallet', + arguments: widget.signedInUser, + ); + }, + appName: "Mzansi Wallet", + appIcon: Padding( + padding: const EdgeInsets.all(20.0), + child: FaIcon( + FontAwesomeIcons.wallet, + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + size: 200, + ), + ), + iconSize: 200, + primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ); + } +} diff --git a/Frontend/lib/mih_packages/mzansi_wallet/app_tools/mih_cards.dart b/Frontend/lib/mih_packages/mzansi_wallet/package_tools/mih_cards.dart similarity index 100% rename from Frontend/lib/mih_packages/mzansi_wallet/app_tools/mih_cards.dart rename to Frontend/lib/mih_packages/mzansi_wallet/package_tools/mih_cards.dart From eae8777ca6da4ccb8acf79ca6421b2d80b04220f Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 10:23:35 +0200 Subject: [PATCH 15/28] package rescructure and add package time --- .../package_tiles/patient_profile_tile.dart | 39 +++++++++++++++++++ .../patient_claim_or_statement.dart | 0 .../patient_consultation.dart | 0 .../patient_documents.dart | 0 .../patient_info.dart | 0 .../pat_profile/patient_profile.dart | 8 ++-- 6 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 Frontend/lib/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart rename Frontend/lib/mih_packages/patient_profile/pat_profile/{app_tools => package_tools}/patient_claim_or_statement.dart (100%) rename Frontend/lib/mih_packages/patient_profile/pat_profile/{app_tools => package_tools}/patient_consultation.dart (100%) rename Frontend/lib/mih_packages/patient_profile/pat_profile/{app_tools => package_tools}/patient_documents.dart (100%) rename Frontend/lib/mih_packages/patient_profile/pat_profile/{app_tools => package_tools}/patient_info.dart (100%) diff --git a/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart b/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart new file mode 100644 index 00000000..89ef24ec --- /dev/null +++ b/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart @@ -0,0 +1,39 @@ +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'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; + +class PatientProfileTile extends StatefulWidget { + final PatientViewArguments arguments; + const PatientProfileTile({ + super.key, + required this.arguments, + }); + + @override + State createState() => _PatientProfileTileState(); +} + +class _PatientProfileTileState extends State { + @override + Widget build(BuildContext context) { + return MihAppTile( + onTap: () { + Navigator.of(context).pushNamed( + '/patient-profile', + arguments: widget.arguments, + ); + }, + appName: "Patient Profile", + appIcon: FaIcon( + FontAwesomeIcons.circleInfo, + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + size: 200, + ), + iconSize: 200, + primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ); + } +} diff --git a/Frontend/lib/mih_packages/patient_profile/pat_profile/app_tools/patient_claim_or_statement.dart b/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tools/patient_claim_or_statement.dart similarity index 100% rename from Frontend/lib/mih_packages/patient_profile/pat_profile/app_tools/patient_claim_or_statement.dart rename to Frontend/lib/mih_packages/patient_profile/pat_profile/package_tools/patient_claim_or_statement.dart diff --git a/Frontend/lib/mih_packages/patient_profile/pat_profile/app_tools/patient_consultation.dart b/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tools/patient_consultation.dart similarity index 100% rename from Frontend/lib/mih_packages/patient_profile/pat_profile/app_tools/patient_consultation.dart rename to Frontend/lib/mih_packages/patient_profile/pat_profile/package_tools/patient_consultation.dart diff --git a/Frontend/lib/mih_packages/patient_profile/pat_profile/app_tools/patient_documents.dart b/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tools/patient_documents.dart similarity index 100% rename from Frontend/lib/mih_packages/patient_profile/pat_profile/app_tools/patient_documents.dart rename to Frontend/lib/mih_packages/patient_profile/pat_profile/package_tools/patient_documents.dart diff --git a/Frontend/lib/mih_packages/patient_profile/pat_profile/app_tools/patient_info.dart b/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tools/patient_info.dart similarity index 100% rename from Frontend/lib/mih_packages/patient_profile/pat_profile/app_tools/patient_info.dart rename to Frontend/lib/mih_packages/patient_profile/pat_profile/package_tools/patient_info.dart diff --git a/Frontend/lib/mih_packages/patient_profile/pat_profile/patient_profile.dart b/Frontend/lib/mih_packages/patient_profile/pat_profile/patient_profile.dart index 031b71c5..e3a62d66 100644 --- a/Frontend/lib/mih_packages/patient_profile/pat_profile/patient_profile.dart +++ b/Frontend/lib/mih_packages/patient_profile/pat_profile/patient_profile.dart @@ -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 { From 209f4361a4b1e8381085149dd20ca8f1840d58f5 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 10:26:50 +0200 Subject: [PATCH 16/28] add padding --- .../package_tiles/patient_profile_tile.dart | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart b/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart index 89ef24ec..9134a142 100644 --- a/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart +++ b/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart @@ -26,10 +26,13 @@ class _PatientProfileTileState extends State { ); }, appName: "Patient Profile", - appIcon: FaIcon( - FontAwesomeIcons.circleInfo, - color: MzanziInnovationHub.of(context)!.theme.primaryColor(), - size: 200, + appIcon: Padding( + padding: const EdgeInsets.all(20.0), + child: FaIcon( + FontAwesomeIcons.bookMedical, + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + size: 200, + ), ), iconSize: 200, primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), From d3871343cdd1ed2d5e6fc2f44a3dafaca36bb42b Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 11:48:17 +0200 Subject: [PATCH 17/28] add package size param --- .../mih_package/mih_app_tile.dart | 122 +++++++++--------- .../package_tile/about_mih_tile.dart | 10 +- .../package_tile/mih_access_tile.dart | 7 +- .../package_tiles/mih_calculator_tile.dart | 7 +- .../package_tiles/mzansi_calendar_tile.dart | 9 +- .../package_tiles/mzansi_ai_tile.dart | 7 +- .../package_tiles/mzansi_profile_tile.dart | 14 +- .../package_tiles/mih_wallet_tile.dart | 9 +- .../package_tiles/patient_profile_tile.dart | 21 +-- Frontend/lib/mih_router/routeGenerator.dart | 4 +- 10 files changed, 114 insertions(+), 96 deletions(-) diff --git a/Frontend/lib/mih_components/mih_package/mih_app_tile.dart b/Frontend/lib/mih_components/mih_package/mih_app_tile.dart index c9d2b5c1..a84c9b88 100644 --- a/Frontend/lib/mih_components/mih_package/mih_app_tile.dart +++ b/Frontend/lib/mih_components/mih_package/mih_app_tile.dart @@ -53,72 +53,70 @@ class _MihAppTileState extends State { @override Widget build(BuildContext context) { double borderRadius = widget.iconSize * 0.15; - return SizedBox( - width: widget.iconSize, - height: widget.iconSize, - child: Container( - alignment: Alignment.topCenter, - 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, + 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), - 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), - 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)! + // ho + onTap: widget.onTap, + onLongPress: () { + displayHint(); + }, + // hoverDuration: , + splashColor: MzanziInnovationHub.of(context)! .theme - .secondaryColor(), - fontSize: 20.0, - fontWeight: FontWeight.bold, + .highlightColor(), + highlightColor: MzanziInnovationHub.of(context)! + .theme + .highlightColor(), + child: FittedBox(child: widget.appIcon), ), ), - ], - ), - ) - ], - ), + ); + }, + ), + ), + 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, + ), + ), + ], + ), + ) + ], ), ); } diff --git a/Frontend/lib/mih_packages/about_mih/package_tile/about_mih_tile.dart b/Frontend/lib/mih_packages/about_mih/package_tile/about_mih_tile.dart index 2c9a0c84..8923ba5d 100644 --- a/Frontend/lib/mih_packages/about_mih/package_tile/about_mih_tile.dart +++ b/Frontend/lib/mih_packages/about_mih/package_tile/about_mih_tile.dart @@ -4,7 +4,11 @@ import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; class AboutMihTile extends StatefulWidget { - const AboutMihTile({super.key}); + final double packageSize; + const AboutMihTile({ + super.key, + required this.packageSize, + }); @override State createState() => _AboutMihTileState(); @@ -27,14 +31,14 @@ class _AboutMihTileState extends State { child: FaIcon( FontAwesomeIcons.circleInfo, color: MzanziInnovationHub.of(context)!.theme.primaryColor(), - size: 200, + size: widget.packageSize, ), ), // Icon( // Icons.info, // color: MzanziInnovationHub.of(context)!.theme.primaryColor(), // ), - iconSize: 200, + iconSize: widget.packageSize, primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), ); diff --git a/Frontend/lib/mih_packages/access_review/package_tile/mih_access_tile.dart b/Frontend/lib/mih_packages/access_review/package_tile/mih_access_tile.dart index c2dd1735..9117d181 100644 --- a/Frontend/lib/mih_packages/access_review/package_tile/mih_access_tile.dart +++ b/Frontend/lib/mih_packages/access_review/package_tile/mih_access_tile.dart @@ -5,9 +5,12 @@ 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 @@ -25,14 +28,14 @@ class _MihAccessTileState extends State { ); }, appName: "MIH Access", - appIcon: Padding( + appIcon: Container( padding: const EdgeInsets.all(1), child: Icon( Icons.check_box, color: MzanziInnovationHub.of(context)!.theme.primaryColor(), ), ), - iconSize: 200, + iconSize: widget.packageSize, primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), ); diff --git a/Frontend/lib/mih_packages/calculator/package_tiles/mih_calculator_tile.dart b/Frontend/lib/mih_packages/calculator/package_tiles/mih_calculator_tile.dart index 5793a590..27c972ab 100644 --- a/Frontend/lib/mih_packages/calculator/package_tiles/mih_calculator_tile.dart +++ b/Frontend/lib/mih_packages/calculator/package_tiles/mih_calculator_tile.dart @@ -4,9 +4,12 @@ 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 @@ -24,14 +27,14 @@ class _MihCalculatorTileState extends State { ); }, appName: "Calculator", - appIcon: Padding( + appIcon: Container( padding: const EdgeInsets.all(0), child: Icon( Icons.calculate, color: MzanziInnovationHub.of(context)!.theme.primaryColor(), ), ), - iconSize: 200, + iconSize: widget.packageSize, primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), ); diff --git a/Frontend/lib/mih_packages/calendar/package_tiles/mzansi_calendar_tile.dart b/Frontend/lib/mih_packages/calendar/package_tiles/mzansi_calendar_tile.dart index 2842ce9a..905d230e 100644 --- a/Frontend/lib/mih_packages/calendar/package_tiles/mzansi_calendar_tile.dart +++ b/Frontend/lib/mih_packages/calendar/package_tiles/mzansi_calendar_tile.dart @@ -5,9 +5,12 @@ 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 @@ -25,14 +28,14 @@ class _MzansiCalendarTileState extends State { ); }, appName: "Calendar", - appIcon: Padding( - padding: const EdgeInsets.all(1), + appIcon: Container( + padding: const EdgeInsets.all(0.5), child: Icon( Icons.calendar_month, color: MzanziInnovationHub.of(context)!.theme.primaryColor(), ), ), - iconSize: 200, + iconSize: widget.packageSize, primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), ); diff --git a/Frontend/lib/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart b/Frontend/lib/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart index cf0d7c12..358c553a 100644 --- a/Frontend/lib/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart +++ b/Frontend/lib/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart @@ -5,9 +5,12 @@ 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 @@ -29,11 +32,11 @@ class _MzansiAiTileState extends State { appIcon: Padding( padding: const EdgeInsets.all(15.0), child: SizedBox( - width: 225, + width: widget.packageSize, child: Image(image: aiLogo), ), ), - iconSize: 200, + iconSize: widget.packageSize, primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), ); diff --git a/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart b/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart index 867e1f58..e2ec4410 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart @@ -7,10 +7,13 @@ import 'package:flutter/material.dart'; class MzansiProfileTile extends StatefulWidget { final AppUser signedInUser; final ImageProvider? propicFile; + final double packageSize; + const MzansiProfileTile({ super.key, required this.signedInUser, required this.propicFile, + required this.packageSize, }); @override @@ -32,14 +35,11 @@ class _MzansiProfileTileState extends State { ); }, appName: "Mzansi Profile", - appIcon: Padding( - padding: const EdgeInsets.all(15.0), - child: SizedBox( - width: 225, - child: Image(image: logo), - ), + appIcon: Container( + padding: const EdgeInsets.all(25), + child: Image(image: logo), ), - iconSize: 200, + iconSize: widget.packageSize, primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), ); diff --git a/Frontend/lib/mih_packages/mzansi_wallet/package_tiles/mih_wallet_tile.dart b/Frontend/lib/mih_packages/mzansi_wallet/package_tiles/mih_wallet_tile.dart index c271b092..0e59f659 100644 --- a/Frontend/lib/mih_packages/mzansi_wallet/package_tiles/mih_wallet_tile.dart +++ b/Frontend/lib/mih_packages/mzansi_wallet/package_tiles/mih_wallet_tile.dart @@ -6,9 +6,12 @@ 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 @@ -26,12 +29,12 @@ class _MihWalletTileState extends State { ); }, appName: "Mzansi Wallet", - appIcon: Padding( - padding: const EdgeInsets.all(20.0), + appIcon: Container( + padding: const EdgeInsets.all(25), child: FaIcon( FontAwesomeIcons.wallet, color: MzanziInnovationHub.of(context)!.theme.primaryColor(), - size: 200, + size: widget.packageSize, ), ), iconSize: 200, diff --git a/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart b/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart index 9134a142..b0662da7 100644 --- a/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart +++ b/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tiles/patient_profile_tile.dart @@ -2,13 +2,15 @@ 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'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; class PatientProfileTile extends StatefulWidget { final PatientViewArguments arguments; + final double packageSize; + const PatientProfileTile({ super.key, required this.arguments, + required this.packageSize, }); @override @@ -26,15 +28,14 @@ class _PatientProfileTileState extends State { ); }, appName: "Patient Profile", - appIcon: Padding( - padding: const EdgeInsets.all(20.0), - child: FaIcon( - FontAwesomeIcons.bookMedical, - color: MzanziInnovationHub.of(context)!.theme.primaryColor(), - size: 200, - ), - ), - iconSize: 200, + 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(), ); diff --git a/Frontend/lib/mih_router/routeGenerator.dart b/Frontend/lib/mih_router/routeGenerator.dart index ef3908dd..6ede9cbf 100644 --- a/Frontend/lib/mih_router/routeGenerator.dart +++ b/Frontend/lib/mih_router/routeGenerator.dart @@ -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 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, From 5b5ad1f7e884eedcdd19420405ce7cf79886dee1 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 11:48:59 +0200 Subject: [PATCH 18/28] new personal home tool --- .../package_tools/mih_personal_home.dart | 240 ++++++++++++++++++ 1 file changed, 240 insertions(+) create mode 100644 Frontend/lib/mih_packages/mih_home/package_tools/mih_personal_home.dart diff --git a/Frontend/lib/mih_packages/mih_home/package_tools/mih_personal_home.dart b/Frontend/lib/mih_packages/mih_home/package_tools/mih_personal_home.dart new file mode 100644 index 00000000..726de997 --- /dev/null +++ b/Frontend/lib/mih_packages/mih_home/package_tools/mih_personal_home.dart @@ -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? propicFile; + + const MihPersonalHome({ + super.key, + required this.signedInUser, + required this.personalSelected, + required this.business, + required this.businessUser, + required this.propicFile, + }); + + @override + State createState() => _MihPersonalHomeState(); +} + +class _MihPersonalHomeState extends State { + final FocusNode _focusNode = FocusNode(); + final TextEditingController searchController = TextEditingController(); + String packageSearch = ""; + late List personalPackages; + double packageSize = 100; + + List setPersonalPackages() { + List 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, + widget.personalSelected, + 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]; + }, + ), + ], + ), + ); + } +} From 85b042b44a6cf36967452b5f9a7cd777d03b27df Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 11:49:16 +0200 Subject: [PATCH 19/28] tile update --- .../mzansi_ai/package_tiles/mzansi_ai_tile.dart | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Frontend/lib/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart b/Frontend/lib/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart index 358c553a..653a9ff0 100644 --- a/Frontend/lib/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart +++ b/Frontend/lib/mih_packages/mzansi_ai/package_tiles/mzansi_ai_tile.dart @@ -29,12 +29,9 @@ class _MzansiAiTileState extends State { ); }, appName: "Mzansi AI", - appIcon: Padding( - padding: const EdgeInsets.all(15.0), - child: SizedBox( - width: widget.packageSize, - child: Image(image: aiLogo), - ), + appIcon: Container( + padding: const EdgeInsets.all(25), + child: Image(image: aiLogo), ), iconSize: widget.packageSize, primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), From d2c423a33c746ee33e50640cd20adf9915aa10e8 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 11:54:14 +0200 Subject: [PATCH 20/28] move to business profile --- .../builder/build_employee_list.dart | 24 +++++++-------- .../builder/build_user_list.dart | 22 +++++++------- .../manage_business/business_about.dart | 20 ++++++------- .../manage_business/business_details.dart | 22 +++++++------- .../manage_business_profile.dart | 26 ++++++++-------- .../manage_business/profile_business_add.dart | 30 +++++++++---------- 6 files changed, 72 insertions(+), 72 deletions(-) rename Frontend/lib/mih_packages/{ => mzansi_profile}/manage_business/builder/build_employee_list.dart (94%) rename Frontend/lib/mih_packages/{ => mzansi_profile}/manage_business/builder/build_user_list.dart (94%) rename Frontend/lib/mih_packages/{ => mzansi_profile}/manage_business/business_about.dart (96%) rename Frontend/lib/mih_packages/{ => mzansi_profile}/manage_business/business_details.dart (96%) rename Frontend/lib/mih_packages/{ => mzansi_profile}/manage_business/manage_business_profile.dart (95%) rename Frontend/lib/mih_packages/{ => mzansi_profile}/manage_business/profile_business_add.dart (94%) diff --git a/Frontend/lib/mih_packages/manage_business/builder/build_employee_list.dart b/Frontend/lib/mih_packages/mzansi_profile/manage_business/builder/build_employee_list.dart similarity index 94% rename from Frontend/lib/mih_packages/manage_business/builder/build_employee_list.dart rename to Frontend/lib/mih_packages/mzansi_profile/manage_business/builder/build_employee_list.dart index 8aff3de8..8154b030 100644 --- a/Frontend/lib/mih_packages/manage_business/builder/build_employee_list.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/manage_business/builder/build_employee_list.dart @@ -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 employees; diff --git a/Frontend/lib/mih_packages/manage_business/builder/build_user_list.dart b/Frontend/lib/mih_packages/mzansi_profile/manage_business/builder/build_user_list.dart similarity index 94% rename from Frontend/lib/mih_packages/manage_business/builder/build_user_list.dart rename to Frontend/lib/mih_packages/mzansi_profile/manage_business/builder/build_user_list.dart index 864c05b2..a13c5d2f 100644 --- a/Frontend/lib/mih_packages/manage_business/builder/build_user_list.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/manage_business/builder/build_user_list.dart @@ -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 users; diff --git a/Frontend/lib/mih_packages/manage_business/business_about.dart b/Frontend/lib/mih_packages/mzansi_profile/manage_business/business_about.dart similarity index 96% rename from Frontend/lib/mih_packages/manage_business/business_about.dart rename to Frontend/lib/mih_packages/mzansi_profile/manage_business/business_about.dart index 7a7e294e..4a55e123 100644 --- a/Frontend/lib/mih_packages/manage_business/business_about.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/manage_business/business_about.dart @@ -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; diff --git a/Frontend/lib/mih_packages/manage_business/business_details.dart b/Frontend/lib/mih_packages/mzansi_profile/manage_business/business_details.dart similarity index 96% rename from Frontend/lib/mih_packages/manage_business/business_details.dart rename to Frontend/lib/mih_packages/mzansi_profile/manage_business/business_details.dart index 397f9ed1..16a02b9c 100644 --- a/Frontend/lib/mih_packages/manage_business/business_details.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/manage_business/business_details.dart @@ -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; diff --git a/Frontend/lib/mih_packages/manage_business/manage_business_profile.dart b/Frontend/lib/mih_packages/mzansi_profile/manage_business/manage_business_profile.dart similarity index 95% rename from Frontend/lib/mih_packages/manage_business/manage_business_profile.dart rename to Frontend/lib/mih_packages/mzansi_profile/manage_business/manage_business_profile.dart index d7464c32..152d7308 100644 --- a/Frontend/lib/mih_packages/manage_business/manage_business_profile.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/manage_business/manage_business_profile.dart @@ -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'; diff --git a/Frontend/lib/mih_packages/manage_business/profile_business_add.dart b/Frontend/lib/mih_packages/mzansi_profile/manage_business/profile_business_add.dart similarity index 94% rename from Frontend/lib/mih_packages/manage_business/profile_business_add.dart rename to Frontend/lib/mih_packages/mzansi_profile/manage_business/profile_business_add.dart index a54baa6c..bc5c9647 100644 --- a/Frontend/lib/mih_packages/manage_business/profile_business_add.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/manage_business/profile_business_add.dart @@ -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; From 5f5f5e66766879a64e3e10bc9d95d43a89db1df7 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 12:13:46 +0200 Subject: [PATCH 21/28] update package structure and add package tile --- .../mzansi_business_profile.dart | 6 +-- .../mzansi_business_profile_tile.dart | 43 +++++++++++++++++++ .../mih_business_profile.dart | 0 .../mih_business_user_search.dart | 0 .../mih_my_business_team.dart | 0 5 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tiles/mzansi_business_profile_tile.dart rename Frontend/lib/mih_packages/mzansi_profile/business_profile/{app_tools => package_tools}/mih_business_profile.dart (100%) rename Frontend/lib/mih_packages/mzansi_profile/business_profile/{app_tools => package_tools}/mih_business_user_search.dart (100%) rename Frontend/lib/mih_packages/mzansi_profile/business_profile/{app_tools => package_tools}/mih_my_business_team.dart (100%) diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/mzansi_business_profile.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/mzansi_business_profile.dart index e4b75b85..2ca69748 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/mzansi_business_profile.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/mzansi_business_profile.dart @@ -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 { diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tiles/mzansi_business_profile_tile.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tiles/mzansi_business_profile_tile.dart new file mode 100644 index 00000000..b5118c00 --- /dev/null +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tiles/mzansi_business_profile_tile.dart @@ -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 createState() => + _MzansiBusinessProfileTileState(); +} + +class _MzansiBusinessProfileTileState extends State { + @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(), + ); + } +} diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/app_tools/mih_business_profile.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_profile.dart similarity index 100% rename from Frontend/lib/mih_packages/mzansi_profile/business_profile/app_tools/mih_business_profile.dart rename to Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_profile.dart diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/app_tools/mih_business_user_search.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_user_search.dart similarity index 100% rename from Frontend/lib/mih_packages/mzansi_profile/business_profile/app_tools/mih_business_user_search.dart rename to Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_user_search.dart diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/app_tools/mih_my_business_team.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_my_business_team.dart similarity index 100% rename from Frontend/lib/mih_packages/mzansi_profile/business_profile/app_tools/mih_my_business_team.dart rename to Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_my_business_team.dart From 93b421ef9f2afc374ab009f71626e0fb739458ec Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 12:24:56 +0200 Subject: [PATCH 22/28] update package structure and add package tile --- .../package_tiles/pat_manager_tile.dart | 42 +++++++++++++++++++ .../mih_patient_search.dart | 0 .../my_patient_list.dart | 0 .../waiting_room.dart | 0 .../pat_manager/pat_manager.dart | 6 +-- 5 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 Frontend/lib/mih_packages/patient_profile/pat_manager/package_tiles/pat_manager_tile.dart rename Frontend/lib/mih_packages/patient_profile/pat_manager/{app_tools => package_tools}/mih_patient_search.dart (100%) rename Frontend/lib/mih_packages/patient_profile/pat_manager/{app_tools => package_tools}/my_patient_list.dart (100%) rename Frontend/lib/mih_packages/patient_profile/pat_manager/{app_tools => package_tools}/waiting_room.dart (100%) diff --git a/Frontend/lib/mih_packages/patient_profile/pat_manager/package_tiles/pat_manager_tile.dart b/Frontend/lib/mih_packages/patient_profile/pat_manager/package_tiles/pat_manager_tile.dart new file mode 100644 index 00000000..ac60e715 --- /dev/null +++ b/Frontend/lib/mih_packages/patient_profile/pat_manager/package_tiles/pat_manager_tile.dart @@ -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 createState() => _PatManagerTileState(); +} + +class _PatManagerTileState extends State { + @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(0.5), + 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(), + ); + } +} diff --git a/Frontend/lib/mih_packages/patient_profile/pat_manager/app_tools/mih_patient_search.dart b/Frontend/lib/mih_packages/patient_profile/pat_manager/package_tools/mih_patient_search.dart similarity index 100% rename from Frontend/lib/mih_packages/patient_profile/pat_manager/app_tools/mih_patient_search.dart rename to Frontend/lib/mih_packages/patient_profile/pat_manager/package_tools/mih_patient_search.dart diff --git a/Frontend/lib/mih_packages/patient_profile/pat_manager/app_tools/my_patient_list.dart b/Frontend/lib/mih_packages/patient_profile/pat_manager/package_tools/my_patient_list.dart similarity index 100% rename from Frontend/lib/mih_packages/patient_profile/pat_manager/app_tools/my_patient_list.dart rename to Frontend/lib/mih_packages/patient_profile/pat_manager/package_tools/my_patient_list.dart diff --git a/Frontend/lib/mih_packages/patient_profile/pat_manager/app_tools/waiting_room.dart b/Frontend/lib/mih_packages/patient_profile/pat_manager/package_tools/waiting_room.dart similarity index 100% rename from Frontend/lib/mih_packages/patient_profile/pat_manager/app_tools/waiting_room.dart rename to Frontend/lib/mih_packages/patient_profile/pat_manager/package_tools/waiting_room.dart diff --git a/Frontend/lib/mih_packages/patient_profile/pat_manager/pat_manager.dart b/Frontend/lib/mih_packages/patient_profile/pat_manager/pat_manager.dart index c517c7a6..f9356471 100644 --- a/Frontend/lib/mih_packages/patient_profile/pat_manager/pat_manager.dart +++ b/Frontend/lib/mih_packages/patient_profile/pat_manager/pat_manager.dart @@ -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 { From 80df5d43e12c277de7881fa0206646468e0cb245 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 12:43:39 +0200 Subject: [PATCH 23/28] add tiles to business home --- .../package_tools/mih_business_home.dart | 222 ++++++++++++++++++ .../package_tools/mih_personal_home.dart | 4 +- .../package_tiles/pat_manager_tile.dart | 2 +- 3 files changed, 225 insertions(+), 3 deletions(-) create mode 100644 Frontend/lib/mih_packages/mih_home/package_tools/mih_business_home.dart diff --git a/Frontend/lib/mih_packages/mih_home/package_tools/mih_business_home.dart b/Frontend/lib/mih_packages/mih_home/package_tools/mih_business_home.dart new file mode 100644 index 00000000..0e877039 --- /dev/null +++ b/Frontend/lib/mih_packages/mih_home/package_tools/mih_business_home.dart @@ -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 createState() => _MihBusinessHomeState(); +} + +class _MihBusinessHomeState extends State { + final FocusNode _focusNode = FocusNode(); + final TextEditingController searchController = TextEditingController(); + String packageSearch = ""; + late List businessPackages; + double packageSize = 200; + + List setBusinessPackages() { + List 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]; + }, + ), + ], + ), + ); + } +} diff --git a/Frontend/lib/mih_packages/mih_home/package_tools/mih_personal_home.dart b/Frontend/lib/mih_packages/mih_home/package_tools/mih_personal_home.dart index 726de997..ae9eee38 100644 --- a/Frontend/lib/mih_packages/mih_home/package_tools/mih_personal_home.dart +++ b/Frontend/lib/mih_packages/mih_home/package_tools/mih_personal_home.dart @@ -42,7 +42,7 @@ class _MihPersonalHomeState extends State { final TextEditingController searchController = TextEditingController(); String packageSearch = ""; late List personalPackages; - double packageSize = 100; + double packageSize = 200; List setPersonalPackages() { List temp = []; @@ -86,7 +86,7 @@ class _MihPersonalHomeState extends State { MzansiCalendarTile( arguments: CalendarArguments( widget.signedInUser, - widget.personalSelected, + true, widget.business, widget.businessUser, ), diff --git a/Frontend/lib/mih_packages/patient_profile/pat_manager/package_tiles/pat_manager_tile.dart b/Frontend/lib/mih_packages/patient_profile/pat_manager/package_tiles/pat_manager_tile.dart index ac60e715..7a718411 100644 --- a/Frontend/lib/mih_packages/patient_profile/pat_manager/package_tiles/pat_manager_tile.dart +++ b/Frontend/lib/mih_packages/patient_profile/pat_manager/package_tiles/pat_manager_tile.dart @@ -28,7 +28,7 @@ class _PatManagerTileState extends State { }, appName: "Patient Manager", appIcon: Container( - padding: const EdgeInsets.all(0.5), + padding: const EdgeInsets.all(1), child: Icon( Icons.medical_services, color: MzanziInnovationHub.of(context)!.theme.primaryColor(), From 8c47ab97b294018e8065ee1302641e2619cb95b5 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 12:59:40 +0200 Subject: [PATCH 24/28] move app drawer in hom package --- .../mih_home/components}/mih_app_drawer.dart | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename Frontend/lib/{mih_components/mih_layout => mih_packages/mih_home/components}/mih_app_drawer.dart (98%) diff --git a/Frontend/lib/mih_components/mih_layout/mih_app_drawer.dart b/Frontend/lib/mih_packages/mih_home/components/mih_app_drawer.dart similarity index 98% rename from Frontend/lib/mih_components/mih_layout/mih_app_drawer.dart rename to Frontend/lib/mih_packages/mih_home/components/mih_app_drawer.dart index 07d8e6eb..da5d5416 100644 --- a/Frontend/lib/mih_components/mih_layout/mih_app_drawer.dart +++ b/Frontend/lib/mih_packages/mih_home/components/mih_app_drawer.dart @@ -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; From 7afe58437ecf6ce45c421a663bfb5c5a4756fb6e Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 13:00:00 +0200 Subject: [PATCH 25/28] update mih app action type --- Frontend/lib/mih_components/mih_package/mih_app.dart | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Frontend/lib/mih_components/mih_package/mih_app.dart b/Frontend/lib/mih_components/mih_package/mih_app.dart index ab9642b5..22a1c945 100644 --- a/Frontend/lib/mih_components/mih_package/mih_app.dart +++ b/Frontend/lib/mih_components/mih_package/mih_app.dart @@ -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 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 { Widget build(BuildContext context) { Size screenSize = MediaQuery.of(context).size; return Scaffold( + drawer: widget.actionDrawer, body: SafeArea( child: Container( width: screenSize.width, From f35a4e4713126a7d0ca51ec5d71f49b4c7eef982 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 13:00:13 +0200 Subject: [PATCH 26/28] legacy stuff --- .../mih_layout/mih_layout_builder.dart | 2 +- .../mih_home/mih_home_legacy.dart | 34 ++++++++++++++++--- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/Frontend/lib/mih_components/mih_layout/mih_layout_builder.dart b/Frontend/lib/mih_components/mih_layout/mih_layout_builder.dart index 8be3adbd..cc15d363 100644 --- a/Frontend/lib/mih_components/mih_layout/mih_layout_builder.dart +++ b/Frontend/lib/mih_components/mih_layout/mih_layout_builder.dart @@ -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'; diff --git a/Frontend/lib/mih_packages/mih_home/mih_home_legacy.dart b/Frontend/lib/mih_packages/mih_home/mih_home_legacy.dart index 52a61c59..b945be40 100644 --- a/Frontend/lib/mih_packages/mih_home/mih_home_legacy.dart +++ b/Frontend/lib/mih_packages/mih_home/mih_home_legacy.dart @@ -15,7 +15,7 @@ import "package:universal_html/html.dart" as html; import '../../mih_apis/mih_location_api.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_app_drawer.dart'; +import 'components/mih_app_drawer.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'; @@ -135,9 +135,11 @@ class _MIHHomeLegacyState extends State { videoID: "P2bM9eosJ_A", onTap: () { Navigator.of(context).pushNamed( - '/user-profile', - arguments: - AppProfileUpdateArguments(widget.signedInUser, widget.propicFile), + '/mzansi-profile', + arguments: AppProfileUpdateArguments( + widget.signedInUser, + widget.propicFile, + ), ); }, tileName: "Mzansi Profile", @@ -533,6 +535,30 @@ class _MIHHomeLegacyState extends State { void setAppsDev(List tileList) { if (AppEnviroment.getEnv() == "Dev") { + tileList.add(MIHTile( + videoID: "", + onTap: () { + Navigator.of(context).pushNamed( + '/home-dev', + //arguments: widget.signedInUser, + ); + }, + tileName: "Home - Dev", + tileIcon: Center( + child: Icon( + Icons.warning, + color: getSec(), + size: 230, + ), + ), + // Icon( + // Icons.info_outline, + // color: getSec(), + // size: 230, + // ), + p: getPrim(), + s: getSec(), + )); tileList.add(MIHTile( videoID: "", onTap: () { From bb0353929d6bc2bfad2af28b59d6c6e3ef7a9559 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 13:00:22 +0200 Subject: [PATCH 27/28] new home package --- .../lib/mih_packages/mih_home/mih_home.dart | 162 ++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 Frontend/lib/mih_packages/mih_home/mih_home.dart diff --git a/Frontend/lib/mih_packages/mih_home/mih_home.dart b/Frontend/lib/mih_packages/mih_home/mih_home.dart new file mode 100644 index 00000000..93e5952e --- /dev/null +++ b/Frontend/lib/mih_packages/mih_home/mih_home.dart @@ -0,0 +1,162 @@ +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_components/mih_profile_picture.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_objects/business_user.dart'; +import 'package:Mzansi_Innovation_Hub/mih_objects/notification.dart'; +import 'package:Mzansi_Innovation_Hub/mih_objects/patients.dart'; +import 'package:Mzansi_Innovation_Hub/mih_packages/mih_home/components/mih_app_drawer.dart'; +import 'package:Mzansi_Innovation_Hub/mih_packages/mih_home/package_tools/mih_business_home.dart'; +import 'package:Mzansi_Innovation_Hub/mih_packages/mih_home/package_tools/mih_personal_home.dart'; +import 'package:flutter/material.dart'; + +// ignore: must_be_immutable +class MihHome extends StatefulWidget { + final AppUser signedInUser; + final BusinessUser? businessUser; + final Business? business; + final Patient? patient; + final List notifications; + final ImageProvider? propicFile; + final bool isUserNew; + final bool isBusinessUser; + final bool isBusinessUserNew; + final bool isDevActive; + bool personalSelected; + MihHome({ + super.key, + required this.signedInUser, + required this.businessUser, + required this.business, + required this.patient, + required this.notifications, + required this.propicFile, + required this.isUserNew, + required this.isBusinessUser, + required this.isBusinessUserNew, + required this.isDevActive, + required this.personalSelected, + }); + + @override + State createState() => _MihHomeState(); +} + +class _MihHomeState extends State { + final proPicController = TextEditingController(); + int _selcetedIndex = 0; + late bool _personalSelected; + + @override + void dispose() { + super.dispose(); + } + + @override + void initState() { + super.initState(); + _personalSelected = widget.personalSelected; + } + + @override + Widget build(BuildContext context) { + return MihApp( + appActionButton: getAction(), + appTools: getTools(), + appBody: getToolBody(), + actionDrawer: getActionDrawer(), + selectedbodyIndex: _selcetedIndex, + onIndexChange: (newValue) { + setState(() { + _selcetedIndex = newValue; + }); + if (newValue == 0) { + setState(() { + _personalSelected = true; + }); + } else { + setState(() { + _personalSelected = false; + }); + } + }, + ); + } + + Widget getAction() { + return Builder(builder: (context) { + return MihAppAction( + icon: Padding( + padding: const EdgeInsets.only(left: 5.0), + child: MIHProfilePicture( + profilePictureFile: widget.propicFile, + proPicController: proPicController, + proPic: null, + width: 45, + radius: 21, + drawerMode: false, + editable: false, + onChange: (newProPic) {}, + ), + ), + iconSize: 45, + onTap: () { + Scaffold.of(context).openDrawer(); + }, + ); + }); + } + + MIHAppDrawer getActionDrawer() { + return MIHAppDrawer( + signedInUser: widget.signedInUser, + propicFile: widget.propicFile, + ); + } + + MihAppTools getTools() { + Map temp = {}; + temp[const Icon(Icons.person)] = () { + setState(() { + _selcetedIndex = 0; + }); + }; + if (widget.isBusinessUser) { + temp[const Icon(Icons.business_center)] = () { + setState(() { + _selcetedIndex = 1; + }); + }; + } + return MihAppTools( + tools: temp, + selcetedIndex: _selcetedIndex, + ); + } + + List getToolBody() { + List toolBodies = []; + toolBodies.add( + MihPersonalHome( + signedInUser: widget.signedInUser, + personalSelected: _personalSelected, + business: widget.business, + businessUser: widget.businessUser, + propicFile: widget.propicFile, + ), + ); + if (widget.isBusinessUser) { + toolBodies.add( + MihBusinessHome( + signedInUser: widget.signedInUser, + personalSelected: _personalSelected, + businessUser: widget.businessUser, + business: widget.business, + ), + ); + } + return toolBodies; + } +} From a954b91ec9c3177e463775fae4e2522dbfd8e258 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 26 Mar 2025 13:00:40 +0200 Subject: [PATCH 28/28] update getter for new home --- .../mih_home/mih_profile_getter.dart | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart b/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart index 3002258c..6e6faafe 100644 --- a/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart +++ b/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart @@ -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_legacy.dart'; class MIHProfileGetter extends StatefulWidget { final bool personalSelected; @@ -242,7 +242,7 @@ class _MIHProfileGetterState extends State { builder: (BuildContext context, snapshot) { if (snapshot.connectionState == ConnectionState.done) { if (snapshot.hasData) { - return MIHHomeLegacy( + return MihHome( signedInUser: snapshot.requireData.signedInUser, businessUser: snapshot.data!.businessUser, business: snapshot.data!.business, @@ -255,6 +255,19 @@ class _MIHProfileGetterState extends State { 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()); }