diff --git a/Frontend/lib/mih_components/mih_package/test/package_test.dart b/Frontend/lib/mih_components/mih_package/test/package_test.dart new file mode 100644 index 00000000..93a646b7 --- /dev/null +++ b/Frontend/lib/mih_components/mih_package/test/package_test.dart @@ -0,0 +1,336 @@ +import 'package:Mzansi_Innovation_Hub/main.dart'; +import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_button.dart'; +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_alert.dart'; +import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tile.dart'; +import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_tools.dart'; +import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih_app_window.dart'; +import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih-app_tool_body.dart'; +import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart'; +import 'package:flutter/material.dart'; + +class PackageTest extends StatefulWidget { + const PackageTest({super.key}); + + @override + State createState() => _PackageTestState(); +} + +class _PackageTestState extends State { + int _selcetedIndex = 0; + + MihAppAction getAction() { + return MihAppAction( + icon: const Icon(Icons.arrow_back), + iconSize: 35, + onTap: () { + Navigator.of(context).pop(); + Navigator.of(context).popAndPushNamed( + '/', + arguments: AuthArguments(true, false), + ); + }, + ); + } + + MihAppTools getTools() { + Map temp = Map(); + temp[const Icon(Icons.arrow_back)] = () { + setState(() { + _selcetedIndex = 0; + }); + }; + temp[const Icon(Icons.arrow_forward)] = () { + setState(() { + _selcetedIndex = 1; + }); + }; + return MihAppTools( + tools: temp, + selcetedIndex: _selcetedIndex, + ); + } + + void showAlert() { + showDialog( + context: context, + builder: (context) { + return MihAppAlert( + alertIcon: Icon( + Icons.warning_amber_rounded, + size: 100, + color: MzanziInnovationHub.of(context)!.theme.errorColor(), + ), + alertTitle: "Oops! Looks like some fields are missing.", + alertBody: Column( + children: [ + Text( + "We noticed that some required fields are still empty. To ensure your request is processed smoothly, please fill out all the highlighted fields before submitting the form again.", + style: TextStyle( + color: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + fontSize: 15, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 25), + RichText( + text: TextSpan( + style: TextStyle( + color: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + fontSize: 15, + fontWeight: FontWeight.bold, + ), + children: [ + TextSpan( + text: "Here's a quick tip: ", + style: TextStyle( + fontStyle: FontStyle.italic, + color: MzanziInnovationHub.of(context)! + .theme + .errorColor())), + const TextSpan(text: "Look for fields with an asterisk ("), + TextSpan( + text: "*", + style: TextStyle( + color: MzanziInnovationHub.of(context)! + .theme + .errorColor())), + const TextSpan( + text: ") next to them, as these are mandatory."), + ], + ), + ), + ], + ), + alertColour: MzanziInnovationHub.of(context)!.theme.errorColor(), + ); + }, + ); + } + + void showFullScreenWindow() { + showDialog( + context: context, + builder: (context) { + return MihAppWindow( + fullscreen: true, + windowTitle: "Test", + windowTools: const [], + onWindowTapClose: () { + Navigator.pop(context); + }, + windowBody: [ + Text( + "Window test", + style: TextStyle( + color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + fontSize: 15, + fontWeight: FontWeight.bold, + ), + ) + ], + ); + }, + ); + } + + void showNormalWindow() { + showDialog( + context: context, + builder: (context) { + return MihAppWindow( + fullscreen: false, + windowTitle: "Test", + windowTools: const [], + onWindowTapClose: () { + Navigator.pop(context); + }, + windowBody: [ + Text( + "Window test", + style: TextStyle( + color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + fontSize: 15, + fontWeight: FontWeight.bold, + ), + ) + ], + ); + }, + ); + } + + List getToolBody() { + List toolBodies = [ + MihAppToolBody( + borderOn: true, + bodyItem: SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.max, + children: [ + Text( + "Hello", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + color: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + ), + ), + const SizedBox(height: 15), + const Divider(), + const SizedBox(height: 15), + MIHButton( + onTap: () { + showAlert(); + }, + buttonText: "Test MIH Alert", + buttonColor: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + textColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + const SizedBox(height: 15), + MIHButton( + onTap: () { + showFullScreenWindow(); + }, + buttonText: "Test MIH Window Full Screen", + buttonColor: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + textColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + const SizedBox(height: 15), + MIHButton( + onTap: () { + showNormalWindow(); + }, + buttonText: "Test MIH Window Normal", + buttonColor: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + textColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + const SizedBox(height: 15), + MihAppTile( + onTap: () {}, + appName: "Package Tets", + appIcon: Icon( + Icons.warning_amber_rounded, + //size: 250, + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + iconSize: 200, + primaryColor: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + const SizedBox(height: 15), + MihAppTile( + onTap: () {}, + appName: "Package Tets", + appIcon: Icon( + Icons.warning_amber_rounded, + //size: 250, + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + iconSize: 200, + primaryColor: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + const SizedBox(height: 15), + MihAppTile( + onTap: () {}, + appName: "Package Tets", + appIcon: Icon( + Icons.warning_amber_rounded, + //size: 250, + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + iconSize: 200, + primaryColor: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + const SizedBox(height: 15), + MihAppTile( + onTap: () {}, + appName: "Package Tets", + appIcon: Icon( + Icons.warning_amber_rounded, + //size: 250, + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + iconSize: 200, + primaryColor: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + const SizedBox(height: 15), + MihAppTile( + onTap: () {}, + appName: "Package Tets", + appIcon: Icon( + Icons.warning_amber_rounded, + //size: 250, + color: MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + iconSize: 200, + primaryColor: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + secondaryColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), + ), + ], + ), + ), + ), + MihAppToolBody( + borderOn: false, + bodyItem: Column( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.max, + children: [ + Text( + "World!!!", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + ), + ), + ], + ), + ), + ]; + return toolBodies; + } + + @override + Widget build(BuildContext context) { + return MihApp( + appActionButton: getAction(), + appTools: getTools(), + appBody: getToolBody(), + selectedbodyIndex: _selcetedIndex, + onIndexChange: (newValue) { + setState(() { + _selcetedIndex = newValue; + }); + print("Index: $_selcetedIndex"); + }, + ); + } +} diff --git a/Frontend/lib/mih_packages/mih_home/mih_home.dart b/Frontend/lib/mih_packages/mih_home/mih_home.dart index bb63aeb2..12a3c7b5 100644 --- a/Frontend/lib/mih_packages/mih_home/mih_home.dart +++ b/Frontend/lib/mih_packages/mih_home/mih_home.dart @@ -421,6 +421,30 @@ class _MIHHomeState extends State { void setAppsDev(List tileList) { if (AppEnviroment.getEnv() == "Dev") { + tileList.add(MIHTile( + videoID: "", + onTap: () { + Navigator.of(context).pushNamed( + '/package-dev', + //arguments: widget.signedInUser, + ); + }, + tileName: "Package - 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: () { diff --git a/Frontend/lib/mih_router/routeGenerator.dart b/Frontend/lib/mih_router/routeGenerator.dart index fc4e45ae..fa9f183b 100644 --- a/Frontend/lib/mih_router/routeGenerator.dart +++ b/Frontend/lib/mih_router/routeGenerator.dart @@ -1,3 +1,4 @@ +import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/test/package_test.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/calculator/calculator.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/mih_policy_tos/mih_privacy_polocy.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/mih_policy_tos/mih_terms_of_service.dart'; @@ -290,6 +291,15 @@ class RouteGenerator { builder: (_) => const MIHCalculator(), ); + //=============================================================== + + //Calculator + case '/package-dev': + return MaterialPageRoute( + settings: settings, + builder: (_) => const PackageTest(), + ); + default: return _errorRoute(); }