From 7d854e1aff4b64f5a4620f8a0425d37793c6a60a Mon Sep 17 00:00:00 2001 From: yaso Date: Wed, 22 Jan 2025 11:22:35 +0200 Subject: [PATCH 01/10] Add AI container to docker compose --- docker-compose.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index a749eae7..eaa59dd2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -147,6 +147,23 @@ services: restart: unless-stopped networks: - MIH-network + #============== Minio File Storage ==================================================================== + ollama: + container_name: MIH-AI + image: ollama/ollama:latest + ports: + - 11434:11434 + volumes: + # - ./Mzansi_AI:/code + - ./Mzansi_AI/ollama/ollama:/root/.ollama + pull_policy: always + tty: true + restart: always + environment: + - OLLAMA_KEEP_ALIVE=24h + - OLLAMA_HOST=0.0.0.0 + networks: + - MIH-network #============== Firebaase ==================================================================== # firebase: # container_name: MIH-firebase-emulator From 48b419bd42b51000dca8bf752278a227e0ef3646 Mon Sep 17 00:00:00 2001 From: yaso Date: Wed, 22 Jan 2025 11:22:49 +0200 Subject: [PATCH 02/10] add ollama package --- Frontend/pubspec.lock | 32 ++++++++++++++++++++++++++++++++ Frontend/pubspec.yaml | 1 + 2 files changed, 33 insertions(+) diff --git a/Frontend/pubspec.lock b/Frontend/pubspec.lock index 3d5aca9e..75606494 100644 --- a/Frontend/pubspec.lock +++ b/Frontend/pubspec.lock @@ -321,6 +321,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.1" + fetch_api: + dependency: transitive + description: + name: fetch_api + sha256: "97f46c25b480aad74f7cc2ad7ccba2c5c6f08d008e68f95c1077286ce243d0e6" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + fetch_client: + dependency: transitive + description: + name: fetch_client + sha256: "9666ee14536778474072245ed5cba07db81ae8eb5de3b7bf4a2d1e2c49696092" + url: "https://pub.dev" + source: hosted + version: "1.1.2" ffi: dependency: transitive description: @@ -448,6 +464,14 @@ packages: url: "https://pub.dev" source: hosted version: "10.8.0" + freezed_annotation: + dependency: transitive + description: + name: freezed_annotation + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 + url: "https://pub.dev" + source: hosted + version: "2.4.4" frontend_server_client: dependency: transitive description: @@ -760,6 +784,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.1" + ollama_dart: + dependency: "direct main" + description: + name: ollama_dart + sha256: "4e40bc499b6fe46ba54a004d2da601c40bd73d66e3f18cf7b03225ccf3d481a6" + url: "https://pub.dev" + source: hosted + version: "0.2.2+1" package_config: dependency: transitive description: diff --git a/Frontend/pubspec.yaml b/Frontend/pubspec.yaml index 1e2a532a..71f0d8ea 100644 --- a/Frontend/pubspec.yaml +++ b/Frontend/pubspec.yaml @@ -69,6 +69,7 @@ dependencies: fl_downloader: ^2.0.2 local_auth: ^2.3.0 math_expressions: ^2.6.0 + ollama_dart: ^0.2.2+1 dev_dependencies: flutter_test: From fdf3da0b2e2c5caca4445020ca02615c9eea4e31 Mon Sep 17 00:00:00 2001 From: yaso Date: Wed, 22 Jan 2025 11:23:06 +0200 Subject: [PATCH 03/10] Update env to cater for ai endpoint dev --- Frontend/lib/mih_env/env.dart | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Frontend/lib/mih_env/env.dart b/Frontend/lib/mih_env/env.dart index 49b4161b..6c386f7e 100644 --- a/Frontend/lib/mih_env/env.dart +++ b/Frontend/lib/mih_env/env.dart @@ -3,6 +3,7 @@ enum Enviroment { dev, prod } // abstract class AppEnviroment { static late String baseApiUrl; + static late String baseAiUrl; static late String baseFileUrl; static late String whatsappAccessToken; static late String fingerPrintPluginKey; @@ -13,9 +14,14 @@ abstract class AppEnviroment { switch (env) { case Enviroment.dev: { - baseApiUrl = "http://10.0.2.2:8080"; //Android - // baseApiUrl = "http://localhost:8080"; //Web - baseFileUrl = "http://10.0.2.2:9000"; //"http://localhost:9000"; + //================= Android Dev Urls ================= + baseApiUrl = "http://10.0.2.2:8080"; + baseFileUrl = "http://10.0.2.2:9000"; + baseAiUrl = "http://10.0.2.2:11434"; + //================= Web Dev Urls ================= + // baseApiUrl = "http://localhost:8080"; + // baseFileUrl = "http://localhost:9000"; + // baseAiUrl = "http://localhost:11434"; whatsappAccessToken = "EAAPINXuNFdYBOzBjTcvZA2iPXEHbHRF9uNXyP3ihkPRUcBqKNru5g9NKRRKkFaiaITEzO3BMo6CjdUmlDH4qYTW2mzDrZB4Q21ZCEZBgECZCu27vfaOXJZCYQLNxwoXkrZBRYv8ZAP37f69r3z9JxLQxdxn9gwqA3oNZAlBBRapJQzxOr6pZBTdI3bbjbu17ZBIwRcF4JCqPDCNLEZCI3bmHwEd2i2niNMYZD"; //fingerPrintPluginKey = 'h5X7a5j14iUZCobI1ZeX'; From 480144b91c74ab2bf07186b79b7005ba54e6b303 Mon Sep 17 00:00:00 2001 From: yaso Date: Wed, 22 Jan 2025 11:23:14 +0200 Subject: [PATCH 04/10] add tile --- .../lib/mih_packages/mih_home/mih_home.dart | 93 ++++++++++--------- 1 file changed, 47 insertions(+), 46 deletions(-) diff --git a/Frontend/lib/mih_packages/mih_home/mih_home.dart b/Frontend/lib/mih_packages/mih_home/mih_home.dart index bb63aeb2..8cd2b6a4 100644 --- a/Frontend/lib/mih_packages/mih_home/mih_home.dart +++ b/Frontend/lib/mih_packages/mih_home/mih_home.dart @@ -223,29 +223,29 @@ class _MIHHomeState extends State { s: getSec(), )); } - // tileList.add(MIHTile( - // videoID: "NUDdoWrbXNc", - // onTap: () { - // Navigator.of(context).pushNamed('/patient-profile', - // arguments: PatientViewArguments( - // widget.signedInUser, null, null, null, "personal")); - // }, - // tileName: "Patient Profile", - // tileIcon: Center( - // child: FaIcon( - // FontAwesomeIcons.bookMedical, - // color: getSec(), - // size: 200, - // ), - // ), - // // Icon( - // // Icons.medication, - // // color: getSec(), - // // size: 200, - // // ), - // p: getPrim(), - // s: getSec(), - // )); + tileList.add(MIHTile( + videoID: "", + onTap: () { + Navigator.of(context).pushNamed( + '/mzansi-ai', + ); + }, + tileName: "Mzansi AI", + tileIcon: Center( + child: FaIcon( + FontAwesomeIcons.robot, + color: getSec(), + size: 180, + ), + ), + // Icon( + // Icons.medication, + // color: getSec(), + // size: 200, + // ), + p: getPrim(), + s: getSec(), + )); tileList.add(MIHTile( onTap: () { Navigator.of(context).pushNamed( @@ -269,29 +269,6 @@ class _MIHHomeState extends State { p: getPrim(), s: getSec(), )); - tileList.add(MIHTile( - onTap: () { - Navigator.of(context).pushNamed( - '/access-review', - arguments: widget.signedInUser, - ); - }, - tileName: "Access", - tileIcon: Center( - child: FaIcon( - FontAwesomeIcons.userCheck, - color: getSec(), - size: 170, - ), - ), - // Icon( - // Icons.check_box_outlined, - // color: getSec(), - // size: 200, - // ), - p: getPrim(), - s: getSec(), - )); tileList.add(MIHTile( videoID: "", @@ -318,6 +295,30 @@ class _MIHHomeState extends State { s: getSec(), )); + tileList.add(MIHTile( + onTap: () { + Navigator.of(context).pushNamed( + '/access-review', + arguments: widget.signedInUser, + ); + }, + tileName: "Access", + tileIcon: Center( + child: FaIcon( + FontAwesomeIcons.userCheck, + color: getSec(), + size: 170, + ), + ), + // Icon( + // Icons.check_box_outlined, + // color: getSec(), + // size: 200, + // ), + p: getPrim(), + s: getSec(), + )); + tileList.add(MIHTile( videoID: "hbKhlmY_56U", onTap: () { From d2f2d4a070e0b3a349ec6faa40e2412183a1eaf9 Mon Sep 17 00:00:00 2001 From: yaso Date: Wed, 22 Jan 2025 11:23:32 +0200 Subject: [PATCH 05/10] add git ignore file --- Mzansi_AI/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 Mzansi_AI/.gitignore diff --git a/Mzansi_AI/.gitignore b/Mzansi_AI/.gitignore new file mode 100644 index 00000000..dec7861b --- /dev/null +++ b/Mzansi_AI/.gitignore @@ -0,0 +1 @@ +ollama/ollama \ No newline at end of file From f85be93207d7b489c2328488d165fc24708963c6 Mon Sep 17 00:00:00 2001 From: yaso Date: Wed, 22 Jan 2025 11:23:46 +0200 Subject: [PATCH 06/10] add route to ai --- Frontend/lib/mih_router/routeGenerator.dart | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Frontend/lib/mih_router/routeGenerator.dart b/Frontend/lib/mih_router/routeGenerator.dart index fc4e45ae..60dbc85c 100644 --- a/Frontend/lib/mih_router/routeGenerator.dart +++ b/Frontend/lib/mih_router/routeGenerator.dart @@ -1,6 +1,7 @@ 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'; +import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_ai/mzansi_ai.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_wallet/mih_barcode_scanner.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_wallet/mzansi_wallet.dart'; import 'package:flutter/material.dart'; @@ -290,6 +291,15 @@ class RouteGenerator { builder: (_) => const MIHCalculator(), ); + //=============================================================== + + //Calculator + case '/mzansi-ai': + return MaterialPageRoute( + settings: settings, + builder: (_) => const MzansiAi(), + ); + default: return _errorRoute(); } From abdac7ecb3260335c2ba3bef9b25e978c5270c75 Mon Sep 17 00:00:00 2001 From: yaso Date: Wed, 22 Jan 2025 11:24:05 +0200 Subject: [PATCH 07/10] add screen and tools --- .../lib/mih_packages/mzansi_ai/ai_chat.dart | 75 ++++++++ .../lib/mih_packages/mzansi_ai/mzansi_ai.dart | 174 ++++++++++++++++++ 2 files changed, 249 insertions(+) create mode 100644 Frontend/lib/mih_packages/mzansi_ai/ai_chat.dart create mode 100644 Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart diff --git a/Frontend/lib/mih_packages/mzansi_ai/ai_chat.dart b/Frontend/lib/mih_packages/mzansi_ai/ai_chat.dart new file mode 100644 index 00000000..5a81fac8 --- /dev/null +++ b/Frontend/lib/mih_packages/mzansi_ai/ai_chat.dart @@ -0,0 +1,75 @@ +import 'package:Mzansi_Innovation_Hub/main.dart'; +import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_text_input.dart'; +import 'package:flutter/material.dart'; + +class AiChat extends StatefulWidget { + const AiChat({super.key}); + + @override + State createState() => _AiChatState(); +} + +class _AiChatState extends State { + final TextEditingController _chatMessageController = TextEditingController(); + Widget getChatBody(double height) { + return Container( + // height: height, + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "Mzansi AI Chat", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + color: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + ), + ), + ], + ), + Divider( + color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + ), + const SizedBox(height: 10), + Container( + height: height - 300, + color: Colors.black, + ), + const SizedBox(height: 10), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: SizedBox( + height: 50, + child: MIHTextField( + controller: _chatMessageController, + hintText: "Ask Mzansi AI", + editable: true, + required: true, + ), + ), + ), + IconButton( + onPressed: () { + print("Sent Message"); + }, + icon: Icon(Icons.send), + ), + ], + ), + ], + ), + ); + } + + @override + Widget build(BuildContext context) { + double height = MediaQuery.of(context).size.height; + return getChatBody(height); + } +} diff --git a/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart b/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart new file mode 100644 index 00000000..265c09a0 --- /dev/null +++ b/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart @@ -0,0 +1,174 @@ +import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_action.dart'; +import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_body.dart'; +import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_header.dart'; +import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_layout_builder.dart'; +import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart'; +import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_ai/ai_chat.dart'; +import 'package:flutter/material.dart'; + +class MzansiAi extends StatefulWidget { + const MzansiAi({super.key}); + + @override + State createState() => _MzansiAiState(); +} + +class _MzansiAiState extends State { + int _selectedIndex = 0; + + MIHAction getActionButton() { + return MIHAction( + icon: const Icon(Icons.arrow_back), + iconSize: 35, + onTap: () { + Navigator.of(context).pushNamedAndRemoveUntil( + '/', + arguments: AuthArguments(true, false), + (route) => false, + ); + }, + ); + } + + MIHHeader getHeader() { + return const MIHHeader( + headerAlignment: MainAxisAlignment.center, + headerItems: [ + Text( + "", + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 25, + ), + ), + ], + ); + } + + MIHHeader getSecAction() { + return MIHHeader( + headerAlignment: MainAxisAlignment.end, + headerItems: [ + //============ Patient Details ================ + Visibility( + visible: _selectedIndex != 0, + child: IconButton( + onPressed: () { + setState(() { + _selectedIndex = 0; + }); + }, + icon: const Icon( + Icons.chat_bubble, + size: 35, + ), + ), + ), + Visibility( + visible: _selectedIndex == 0, + child: IconButton.filled( + iconSize: 35, + onPressed: () { + setState(() { + _selectedIndex = 0; + }); + }, + icon: const Icon( + Icons.chat_bubble, + ), + ), + ), + //============ Patient Notes ================ + // Visibility( + // visible: _selectedIndex != 1, + // child: IconButton( + // onPressed: () { + // setState(() { + // _selectedIndex = 1; + // }); + // }, + // icon: const Icon( + // Icons.article_outlined, + // size: 35, + // ), + // ), + // ), + // Visibility( + // visible: _selectedIndex == 1, + // child: IconButton.filled( + // onPressed: () { + // setState(() { + // _selectedIndex = 1; + // }); + // }, + // icon: const Icon( + // Icons.article_outlined, + // size: 35, + // ), + // ), + // ), + // //============ Patient Files ================ + // Visibility( + // visible: _selectedIndex != 2, + // child: IconButton( + // onPressed: () { + // setState(() { + // _selectedIndex = 2; + // }); + // }, + // icon: const Icon( + // Icons.file_present, + // size: 35, + // ), + // ), + // ), + // Visibility( + // visible: _selectedIndex == 2, + // child: IconButton.filled( + // onPressed: () { + // setState(() { + // _selectedIndex = 2; + // }); + // }, + // icon: const Icon( + // Icons.file_present, + // size: 35, + // ), + // ), + // ), + ], + ); + } + + MIHBody getBody() { + return MIHBody( + borderOn: true, + bodyItems: [showSelection(_selectedIndex)], + ); + } + + Widget showSelection(int index) { + if (index == 0) { + return const AiChat(); + } else if (index == 1) { + return const Placeholder(); + } else { + return const Placeholder(); + } + } + + @override + Widget build(BuildContext context) { + return MIHLayoutBuilder( + actionButton: getActionButton(), + secondaryActionButton: getSecAction(), + header: getHeader(), + body: getBody(), + actionDrawer: null, + secondaryActionDrawer: null, + bottomNavBar: null, + pullDownToRefresh: false, + onPullDown: () async {}, + ); + } +} From 77dff996fb0f9839e85802fb20c69918ee40fb90 Mon Sep 17 00:00:00 2001 From: yaso Date: Wed, 22 Jan 2025 11:40:59 +0200 Subject: [PATCH 08/10] .ignore --- Mzansi_AI/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mzansi_AI/.gitignore b/Mzansi_AI/.gitignore index dec7861b..57115811 100644 --- a/Mzansi_AI/.gitignore +++ b/Mzansi_AI/.gitignore @@ -1 +1 @@ -ollama/ollama \ No newline at end of file +ollama/ollama From d0fb44717c3c9fdeff9b848ceebc81ad344ce0a0 Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 23 Jan 2025 14:31:35 +0200 Subject: [PATCH 09/10] remove Mzansi AI Package --- .../lib/mih_packages/mzansi_ai/ai_chat.dart | 75 -------- .../lib/mih_packages/mzansi_ai/mzansi_ai.dart | 174 ------------------ 2 files changed, 249 deletions(-) delete mode 100644 Frontend/lib/mih_packages/mzansi_ai/ai_chat.dart delete mode 100644 Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart diff --git a/Frontend/lib/mih_packages/mzansi_ai/ai_chat.dart b/Frontend/lib/mih_packages/mzansi_ai/ai_chat.dart deleted file mode 100644 index 5a81fac8..00000000 --- a/Frontend/lib/mih_packages/mzansi_ai/ai_chat.dart +++ /dev/null @@ -1,75 +0,0 @@ -import 'package:Mzansi_Innovation_Hub/main.dart'; -import 'package:Mzansi_Innovation_Hub/mih_components/mih_inputs_and_buttons/mih_text_input.dart'; -import 'package:flutter/material.dart'; - -class AiChat extends StatefulWidget { - const AiChat({super.key}); - - @override - State createState() => _AiChatState(); -} - -class _AiChatState extends State { - final TextEditingController _chatMessageController = TextEditingController(); - Widget getChatBody(double height) { - return Container( - // height: height, - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - "Mzansi AI Chat", - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 25, - fontWeight: FontWeight.bold, - color: - MzanziInnovationHub.of(context)!.theme.secondaryColor(), - ), - ), - ], - ), - Divider( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - ), - const SizedBox(height: 10), - Container( - height: height - 300, - color: Colors.black, - ), - const SizedBox(height: 10), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: SizedBox( - height: 50, - child: MIHTextField( - controller: _chatMessageController, - hintText: "Ask Mzansi AI", - editable: true, - required: true, - ), - ), - ), - IconButton( - onPressed: () { - print("Sent Message"); - }, - icon: Icon(Icons.send), - ), - ], - ), - ], - ), - ); - } - - @override - Widget build(BuildContext context) { - double height = MediaQuery.of(context).size.height; - return getChatBody(height); - } -} diff --git a/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart b/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart deleted file mode 100644 index 265c09a0..00000000 --- a/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart +++ /dev/null @@ -1,174 +0,0 @@ -import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_action.dart'; -import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_body.dart'; -import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_header.dart'; -import 'package:Mzansi_Innovation_Hub/mih_components/mih_layout/mih_layout_builder.dart'; -import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart'; -import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_ai/ai_chat.dart'; -import 'package:flutter/material.dart'; - -class MzansiAi extends StatefulWidget { - const MzansiAi({super.key}); - - @override - State createState() => _MzansiAiState(); -} - -class _MzansiAiState extends State { - int _selectedIndex = 0; - - MIHAction getActionButton() { - return MIHAction( - icon: const Icon(Icons.arrow_back), - iconSize: 35, - onTap: () { - Navigator.of(context).pushNamedAndRemoveUntil( - '/', - arguments: AuthArguments(true, false), - (route) => false, - ); - }, - ); - } - - MIHHeader getHeader() { - return const MIHHeader( - headerAlignment: MainAxisAlignment.center, - headerItems: [ - Text( - "", - style: TextStyle( - fontWeight: FontWeight.bold, - fontSize: 25, - ), - ), - ], - ); - } - - MIHHeader getSecAction() { - return MIHHeader( - headerAlignment: MainAxisAlignment.end, - headerItems: [ - //============ Patient Details ================ - Visibility( - visible: _selectedIndex != 0, - child: IconButton( - onPressed: () { - setState(() { - _selectedIndex = 0; - }); - }, - icon: const Icon( - Icons.chat_bubble, - size: 35, - ), - ), - ), - Visibility( - visible: _selectedIndex == 0, - child: IconButton.filled( - iconSize: 35, - onPressed: () { - setState(() { - _selectedIndex = 0; - }); - }, - icon: const Icon( - Icons.chat_bubble, - ), - ), - ), - //============ Patient Notes ================ - // Visibility( - // visible: _selectedIndex != 1, - // child: IconButton( - // onPressed: () { - // setState(() { - // _selectedIndex = 1; - // }); - // }, - // icon: const Icon( - // Icons.article_outlined, - // size: 35, - // ), - // ), - // ), - // Visibility( - // visible: _selectedIndex == 1, - // child: IconButton.filled( - // onPressed: () { - // setState(() { - // _selectedIndex = 1; - // }); - // }, - // icon: const Icon( - // Icons.article_outlined, - // size: 35, - // ), - // ), - // ), - // //============ Patient Files ================ - // Visibility( - // visible: _selectedIndex != 2, - // child: IconButton( - // onPressed: () { - // setState(() { - // _selectedIndex = 2; - // }); - // }, - // icon: const Icon( - // Icons.file_present, - // size: 35, - // ), - // ), - // ), - // Visibility( - // visible: _selectedIndex == 2, - // child: IconButton.filled( - // onPressed: () { - // setState(() { - // _selectedIndex = 2; - // }); - // }, - // icon: const Icon( - // Icons.file_present, - // size: 35, - // ), - // ), - // ), - ], - ); - } - - MIHBody getBody() { - return MIHBody( - borderOn: true, - bodyItems: [showSelection(_selectedIndex)], - ); - } - - Widget showSelection(int index) { - if (index == 0) { - return const AiChat(); - } else if (index == 1) { - return const Placeholder(); - } else { - return const Placeholder(); - } - } - - @override - Widget build(BuildContext context) { - return MIHLayoutBuilder( - actionButton: getActionButton(), - secondaryActionButton: getSecAction(), - header: getHeader(), - body: getBody(), - actionDrawer: null, - secondaryActionDrawer: null, - bottomNavBar: null, - pullDownToRefresh: false, - onPullDown: () async {}, - ); - } -} From ac355e68e461c7105dc0b1d5ce5d88594dfac8aa Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 23 Jan 2025 14:31:41 +0200 Subject: [PATCH 10/10] remove route --- Frontend/lib/mih_router/routeGenerator.dart | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Frontend/lib/mih_router/routeGenerator.dart b/Frontend/lib/mih_router/routeGenerator.dart index 60dbc85c..aea4b537 100644 --- a/Frontend/lib/mih_router/routeGenerator.dart +++ b/Frontend/lib/mih_router/routeGenerator.dart @@ -1,7 +1,6 @@ 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'; -import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_ai/mzansi_ai.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_wallet/mih_barcode_scanner.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/mzansi_wallet/mzansi_wallet.dart'; import 'package:flutter/material.dart'; @@ -294,11 +293,11 @@ class RouteGenerator { //=============================================================== //Calculator - case '/mzansi-ai': - return MaterialPageRoute( - settings: settings, - builder: (_) => const MzansiAi(), - ); + // case '/mzansi-ai': + // return MaterialPageRoute( + // settings: settings, + // builder: (_) => const MzansiAi(), + // ); default: return _errorRoute();