diff --git a/Frontend/lib/mih_config/mih_theme.dart b/Frontend/lib/mih_config/mih_theme.dart index 5d34e36b..dd7ea4c1 100644 --- a/Frontend/lib/mih_config/mih_theme.dart +++ b/Frontend/lib/mih_config/mih_theme.dart @@ -3,11 +3,6 @@ import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import "package:universal_html/html.dart" as html; class MihTheme { - // late int _mainColor; - // late int _secondColor; - //late int _errColor; - //late int _succColor; - // late int _mesColor; late String mode; late String screenType; late AssetImage loading; @@ -15,34 +10,14 @@ class MihTheme { late TargetPlatform platform; bool kIsWeb = const bool.fromEnvironment('dart.library.js_util'); String latestVersion = "1.2.5"; - // Options:- - // f3f9d2 = Cream - // f0f0c9 = cream2 - // caffd0 = light green - // B0F2B4 = light grean 2 * - // 85bda6 = light green 3 - // 70f8ba = green - // F7F3EA = white - // a63446 = red - //747474 - MihTheme() { mode = "Dark"; - //_errColor = 0xffD87E8B; - //_succColor = 0xffB0F2B4; - //_mesColor = 0xffc8c8c8d9; } ThemeData getData(bool bool) { return ThemeData( fontFamily: 'Segoe UI', scaffoldBackgroundColor: MihColors.getPrimaryColor(mode == "Dark"), - // pageTransitionsTheme: PageTransitionsTheme( - // builders: Map.fromIterable( - // TargetPlatform.values, - // value: (dynamic _) => const FadeUpwardsPageTransitionsBuilder(), - // ), - // ), colorScheme: ColorScheme( brightness: getBritness(), primary: MihColors.getSecondaryColor(mode == "Dark"), @@ -77,7 +52,6 @@ class MihTheme { drawerTheme: DrawerThemeData( backgroundColor: MihColors.getPrimaryColor(mode == "Dark"), ), - // Text selection / cursor color textSelectionTheme: TextSelectionThemeData( cursorColor: MihColors.getPrimaryColor(mode == "Dark"), selectionColor: @@ -113,48 +87,10 @@ class MihTheme { padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), triggerMode: TooltipTriggerMode.longPress, ), - // // Input decoration (text fields) theme - // inputDecorationTheme: InputDecorationTheme( - // filled: true, - // fillColor: mode == "Dark" - // ? MihColors.getPrimaryColor(true).withOpacity(0.06) - // : MihColors.getPrimaryColor(false).withOpacity(0.03), - // contentPadding: - // const EdgeInsets.symmetric(horizontal: 12, vertical: 10), - // border: OutlineInputBorder( - // borderRadius: BorderRadius.circular(8), - // borderSide: - // BorderSide(color: MihColors.getSecondaryColor(mode == "Dark")), - // ), - // enabledBorder: OutlineInputBorder( - // borderRadius: BorderRadius.circular(8), - // borderSide: BorderSide( - // color: - // MihColors.getSecondaryColor(mode == "Dark").withOpacity(0.6)), - // ), - // focusedBorder: OutlineInputBorder( - // borderRadius: BorderRadius.circular(8), - // borderSide: BorderSide( - // color: MihColors.getSecondaryColor(mode == "Dark"), width: 2), - // ), - // hintStyle: TextStyle( - // color: - // MihColors.getSecondaryColor(mode == "Dark").withOpacity(0.7)), - // labelStyle: - // TextStyle(color: MihColors.getSecondaryColor(mode == "Dark")), - // errorStyle: TextStyle(color: MihColors.getRedColor(mode == "Dark")), - // ), ); } String getPlatform() { - // if (isPwa()) { - // if (platform == TargetPlatform.android) { - // return "Android"; - // } else if (platform == TargetPlatform.iOS) { - // return "iOS"; - // } - // } else if (kIsWeb) { return "Web"; } else if (!kIsWeb) { @@ -199,100 +135,6 @@ class MihTheme { } } - // Color messageTextColor() { - // if (mode == "Dark") { - // _mesColor = 0XFFc8c8c8; - // } else { - // _mesColor = 0XFF747474; - // } - // return Color(_mesColor); - // } - - // Color errorColor() { - // if (mode == "Dark") { - // return const Color(0xffD87E8B); - // } else { - // return const Color(0xffbb3d4f); - // } - // //return Color(_errColor); - // } - - // Color highlightColor() { - // if (mode == "Dark") { - // return const Color(0XFF9bc7fa); - // } else { - // return const Color(0XFF354866); - // } - // } - - // Color successColor() { - // if (mode == "Dark") { - // return const Color(0xffB0F2B4); - // } else { - // return const Color(0xff56a95b); - // } - // } - - // AssetImage loadingImage() { - // if (mode == "Dark") { - // loading = const AssetImage( - // 'lib/mih_package_components/assets/images/loading_light.gif', - // ); - // } else { - // loading = const AssetImage( - // 'lib/mih_package_components/assets/images/loading_dark.gif', - // ); - // } - // return loading; - // } - - // AssetImage altLoadingImage() { - // if (mode == "Dark") { - // loading = const AssetImage( - // 'lib/mih_package_components/assets/images/loading_dark.gif', - // ); - // } else { - // loading = const AssetImage( - // 'lib/mih_package_components/assets/images/loading_light.gif', - // ); - // } - // return loading; - // } - - // String loadingImageLocation() { - // if (mode == "Dark") { - // loadingAssetText = - // 'lib/mih_package_components/assets/images/loading_light.gif'; - // } else { - // loadingAssetText = - // 'lib/mih_package_components/assets/images/loading_dark.gif'; - // } - // return loadingAssetText; - // } - - // String altLoadingImageLocation() { - // if (mode == "Dark") { - // loadingAssetText = - // 'lib/mih_package_components/assets/images/loading_dark.gif'; - // } else { - // loadingAssetText = - // 'lib/mih_package_components/assets/images/loading_light.gif'; - // } - // return loadingAssetText; - // } - - // AssetImage aiLogoImage() { - // if (mode == "Dark") { - // return const AssetImage( - // 'lib/mih_package_components/assets/images/mzansi_ai-dark.png', - // ); - // } else { - // return const AssetImage( - // 'lib/mih_package_components/assets/images/mzansi_ai-light.png', - // ); - // } - // } - void setScreenType(double width) { if (width <= 800) { screenType = "mobile"; @@ -300,22 +142,4 @@ class MihTheme { screenType = "desktop"; } } - - // Color MihColors.getPrimaryColor(mode == "Dark") { - // if (mode == "Dark") { - // _mainColor = 0XFF3A4454; - // } else { - // _mainColor = 0XFFbedcfe; - // } - // return Color(_mainColor); - // } - -// Color MihColors.getSecondaryColor(mode == "Dark") { -// if (mode == "Dark") { -// _secondColor = 0XFFbedcfe; -// } else { -// _secondColor = 0XFF3A4454; -// } -// return Color(_secondColor); -// } } diff --git a/Frontend/lib/mih_package_components/Example/package_test.dart b/Frontend/lib/mih_package_components/Example/package_test.dart index a85355ec..ab866b71 100644 --- a/Frontend/lib/mih_package_components/Example/package_test.dart +++ b/Frontend/lib/mih_package_components/Example/package_test.dart @@ -31,9 +31,11 @@ class _PackageTestState extends State { }); MzansiProfileProvider mzansiProfileProvider = context.read(); - await MihDataHelperServices().loadUserDataWithBusinessesData( - mzansiProfileProvider, - ); + if (mzansiProfileProvider.user == null) { + await MihDataHelperServices().loadUserDataWithBusinessesData( + mzansiProfileProvider, + ); + } setState(() { _isLoadingInitialData = false; }); diff --git a/Frontend/lib/mih_packages/access_review/mih_access.dart b/Frontend/lib/mih_packages/access_review/mih_access.dart index a140ad15..329ac58b 100644 --- a/Frontend/lib/mih_packages/access_review/mih_access.dart +++ b/Frontend/lib/mih_packages/access_review/mih_access.dart @@ -29,9 +29,11 @@ class _MihAccessState extends State { }); MzansiProfileProvider mzansiProfileProvider = context.read(); - await MihDataHelperServices().loadUserDataOnly( - mzansiProfileProvider, - ); + if (mzansiProfileProvider.user == null) { + await MihDataHelperServices().loadUserDataOnly( + mzansiProfileProvider, + ); + } setState(() { _isLoadingInitialData = false; }); diff --git a/Frontend/lib/mih_packages/calendar/mzansi_calendar.dart b/Frontend/lib/mih_packages/calendar/mzansi_calendar.dart index da2ccf19..66199e12 100644 --- a/Frontend/lib/mih_packages/calendar/mzansi_calendar.dart +++ b/Frontend/lib/mih_packages/calendar/mzansi_calendar.dart @@ -29,9 +29,11 @@ class _MzansiCalendarState extends State { }); MzansiProfileProvider mzansiProfileProvider = context.read(); - await MihDataHelperServices().loadUserDataOnly( - mzansiProfileProvider, - ); + if (mzansiProfileProvider.user == null) { + await MihDataHelperServices().loadUserDataOnly( + mzansiProfileProvider, + ); + } setState(() { _isLoadingInitialData = false; }); diff --git a/Frontend/lib/mih_packages/mih_home/mih_home.dart b/Frontend/lib/mih_packages/mih_home/mih_home.dart index fe689b57..65759265 100644 --- a/Frontend/lib/mih_packages/mih_home/mih_home.dart +++ b/Frontend/lib/mih_packages/mih_home/mih_home.dart @@ -43,9 +43,12 @@ class _MihHomeState extends State { }); MzansiProfileProvider mzansiProfileProvider = context.read(); - await MihDataHelperServices().loadUserDataWithBusinessesData( - mzansiProfileProvider, - ); + + if (mzansiProfileProvider.user == null) { + await MihDataHelperServices().loadUserDataWithBusinessesData( + mzansiProfileProvider, + ); + } if (mounted) { setState(() { _isLoadingInitialData = false; diff --git a/Frontend/lib/mih_packages/mine_sweeper/mih_mine_sweeper.dart b/Frontend/lib/mih_packages/mine_sweeper/mih_mine_sweeper.dart index 9a87d736..c259798c 100644 --- a/Frontend/lib/mih_packages/mine_sweeper/mih_mine_sweeper.dart +++ b/Frontend/lib/mih_packages/mine_sweeper/mih_mine_sweeper.dart @@ -36,9 +36,11 @@ class _MihMineSweeperState extends State { MzansiProfileProvider mzansiProfileProvider = context.read(); MihBannerAdProvider bannerAdProvider = context.read(); - await MihDataHelperServices().loadUserDataOnly( - mzansiProfileProvider, - ); + if (mzansiProfileProvider.user == null) { + await MihDataHelperServices().loadUserDataOnly( + mzansiProfileProvider, + ); + } bannerAdProvider.loadBannerAd(); setState(() { _isLoadingInitialData = false; diff --git a/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart b/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart index d6bb2f17..9d7de91d 100644 --- a/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart +++ b/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart @@ -29,9 +29,11 @@ class _MzansiAiState extends State { }); MzansiProfileProvider mzansiProfileProvider = context.read(); - await MihDataHelperServices().loadUserDataOnly( - mzansiProfileProvider, - ); + if (mzansiProfileProvider.user == null) { + await MihDataHelperServices().loadUserDataOnly( + mzansiProfileProvider, + ); + } setState(() { _isLoadingInitialData = false; }); diff --git a/Frontend/lib/mih_packages/mzansi_ai/package_tools/mih_ai_chat.dart b/Frontend/lib/mih_packages/mzansi_ai/package_tools/mih_ai_chat.dart index 065307ab..e68f9750 100644 --- a/Frontend/lib/mih_packages/mzansi_ai/package_tools/mih_ai_chat.dart +++ b/Frontend/lib/mih_packages/mzansi_ai/package_tools/mih_ai_chat.dart @@ -1,3 +1,5 @@ +import 'dart:convert'; + import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_ai_toolkit/flutter_ai_toolkit.dart'; @@ -121,6 +123,26 @@ class _MihAiChatState extends State with WidgetsBindingObserver { } } + void saveHistory(MzansiAiProvider aiProvider) { + final history = aiProvider.ollamaProvider.history.toList(); + String jsonHistory = '{"conversation_id":"1234-asdf-5678-qwert",\n'; + // jsonHistory += '"app_id":"${}"\n'; + jsonHistory += '"messages":[\n'; + KenLogger.success("History Length: ${history.length}"); + for (int i = 0; i != history.length; i++) { + final map = history[i].toJson(); + final json = JsonEncoder.withIndent(' ').convert(map); + jsonHistory += json; + if (i != history.length - 1) { + KenLogger.success("i: $i"); + jsonHistory += ","; + } + jsonHistory += "\n"; + } + jsonHistory += ']}'; + debugPrint("History: $jsonHistory"); + } + void stopTTS(MzansiAiProvider aiProvider) { _flutterTts.stop(); aiProvider.setTTSstate(false); @@ -240,6 +262,26 @@ class _MihAiChatState extends State with WidgetsBindingObserver { "What are the features of MIH?" ], ), + Positioned( + top: 10, + left: 10, + child: MihButton( + width: 200, + height: 30, + onPressed: () { + saveHistory(aiProvider); + }, + buttonColor: MihColors.getGreenColor( + MzansiInnovationHub.of(context)!.theme.mode == "Dark"), + child: Text( + "View History as json", + style: TextStyle( + color: MihColors.getPrimaryColor( + MzansiInnovationHub.of(context)!.theme.mode == "Dark"), + ), + ), + ), + ), if (hasHistory && lastMessage != null) Positioned( bottom: 80, diff --git a/Frontend/lib/mih_packages/mzansi_directory/mzansi_directory.dart b/Frontend/lib/mih_packages/mzansi_directory/mzansi_directory.dart index ee860342..207eb19b 100644 --- a/Frontend/lib/mih_packages/mzansi_directory/mzansi_directory.dart +++ b/Frontend/lib/mih_packages/mzansi_directory/mzansi_directory.dart @@ -35,9 +35,11 @@ class _MzansiDirectoryState extends State { }); MzansiProfileProvider mzansiProfileProvider = context.read(); - await MihDataHelperServices().loadUserDataOnly( - mzansiProfileProvider, - ); + if (mzansiProfileProvider.user == null) { + await MihDataHelperServices().loadUserDataOnly( + mzansiProfileProvider, + ); + } setState(() { _isLoadingInitialData = false; }); diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/busines_profile.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/busines_profile.dart index fe5400b9..36510f89 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/busines_profile.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/busines_profile.dart @@ -37,9 +37,11 @@ class _BusinesProfileState extends State { }); MzansiProfileProvider mzansiProfileProvider = context.read(); - await MihDataHelperServices().loadUserDataWithBusinessesData( - mzansiProfileProvider, - ); + if (mzansiProfileProvider.user == null) { + await MihDataHelperServices().loadUserDataWithBusinessesData( + mzansiProfileProvider, + ); + } await MihBusinessEmployeeServices() .fetchEmployees(mzansiProfileProvider, context); setState(() { 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 bd809452..f51b7947 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 @@ -30,9 +30,11 @@ class _MzansiProfileState extends State { }); MzansiProfileProvider mzansiProfileProvider = context.read(); - await MihDataHelperServices().loadUserDataWithBusinessesData( - mzansiProfileProvider, - ); + if (mzansiProfileProvider.user == null) { + await MihDataHelperServices().loadUserDataWithBusinessesData( + mzansiProfileProvider, + ); + } setState(() { _isLoadingInitialData = false; }); diff --git a/Frontend/lib/mih_packages/mzansi_wallet/mih_wallet.dart b/Frontend/lib/mih_packages/mzansi_wallet/mih_wallet.dart index 3b983bce..88eebbdb 100644 --- a/Frontend/lib/mih_packages/mzansi_wallet/mih_wallet.dart +++ b/Frontend/lib/mih_packages/mzansi_wallet/mih_wallet.dart @@ -33,9 +33,11 @@ class _MihWalletState extends State { MzansiProfileProvider mzansiProfileProvider = context.read(); MzansiWalletProvider walletProvider = context.read(); - await MihDataHelperServices().loadUserDataOnly( - mzansiProfileProvider, - ); + if (mzansiProfileProvider.user == null) { + await MihDataHelperServices().loadUserDataOnly( + mzansiProfileProvider, + ); + } await setLoyaltyCards(mzansiProfileProvider, walletProvider); await setFavouritesCards(mzansiProfileProvider, walletProvider); setState(() { diff --git a/Frontend/lib/mih_packages/patient_manager/pat_manager/pat_manager.dart b/Frontend/lib/mih_packages/patient_manager/pat_manager/pat_manager.dart index e1045b8d..a09720bb 100644 --- a/Frontend/lib/mih_packages/patient_manager/pat_manager/pat_manager.dart +++ b/Frontend/lib/mih_packages/patient_manager/pat_manager/pat_manager.dart @@ -40,9 +40,11 @@ class _PatManagerState extends State { context.read(); MihCalendarProvider mihCalendarProvider = context.read(); - await MihDataHelperServices().loadUserDataWithBusinessesData( - mzansiProfileProvider, - ); + if (mzansiProfileProvider.user == null) { + await MihDataHelperServices().loadUserDataWithBusinessesData( + mzansiProfileProvider, + ); + } patientManagerProvider.setPersonalMode(false); if (mzansiProfileProvider.business != null) { await MihMzansiCalendarApis.getBusinessAppointments( diff --git a/Frontend/lib/mih_packages/patient_manager/pat_profile/patient_profile.dart b/Frontend/lib/mih_packages/patient_manager/pat_profile/patient_profile.dart index 8ed4e292..2bcf7265 100644 --- a/Frontend/lib/mih_packages/patient_manager/pat_profile/patient_profile.dart +++ b/Frontend/lib/mih_packages/patient_manager/pat_profile/patient_profile.dart @@ -42,10 +42,11 @@ class _PatientProfileState extends State { context.read(); PatientManagerProvider patientManagerProvider = context.read(); - await MihDataHelperServices().loadUserDataOnly( - mzansiProfileProvider, - ); - + if (mzansiProfileProvider.user == null) { + await MihDataHelperServices().loadUserDataOnly( + mzansiProfileProvider, + ); + } if (patientManagerProvider.selectedPatient == null) { await MihPatientServices().getPatientDetails( mzansiProfileProvider.user!.app_id, patientManagerProvider);