From d318b17b18162bb1818b13943e61c5031bd3575a Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Mon, 17 Nov 2025 11:05:59 +0200 Subject: [PATCH] QOL: Mzansi AI get data on package open --- .../lib/mih_packages/mzansi_ai/mzansi_ai.dart | 75 ++++++++++++------- 1 file changed, 50 insertions(+), 25 deletions(-) diff --git a/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart b/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart index cea2fd78..3628d003 100644 --- a/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart +++ b/Frontend/lib/mih_packages/mzansi_ai/mzansi_ai.dart @@ -2,9 +2,12 @@ import 'package:go_router/go_router.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_ai_provider.dart'; import 'package:flutter/material.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_ai/package_tools/mih_ai_chat.dart'; +import 'package:mzansi_innovation_hub/mih_services/mih_data_helper_services.dart'; import 'package:provider/provider.dart'; class MzansiAi extends StatefulWidget { @@ -17,6 +20,53 @@ class MzansiAi extends StatefulWidget { } class _MzansiAiState extends State { + bool _isLoadingInitialData = true; + + Future _loadInitialData() async { + setState(() { + _isLoadingInitialData = true; + }); + MzansiProfileProvider mzansiProfileProvider = + context.read(); + await MihDataHelperServices().loadUserDataOnly( + mzansiProfileProvider, + ); + setState(() { + _isLoadingInitialData = false; + }); + } + + @override + void initState() { + super.initState(); + _loadInitialData(); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (BuildContext context, MzansiAiProvider value, Widget? child) { + if (_isLoadingInitialData) { + return Scaffold( + body: Center( + child: Mihloadingcircle(), + ), + ); + } + return MihPackage( + appActionButton: getAction(), + appTools: getTools(), + appBody: getToolBody(), + appToolTitles: getToolTitle(), + selectedbodyIndex: context.watch().toolIndex, + onIndexChange: (newValue) { + context.read().setToolIndex(newValue); + }, + ); + }, + ); + } + MihPackageAction getAction() { return MihPackageAction( icon: const Icon(Icons.arrow_back), @@ -36,10 +86,6 @@ class _MzansiAiState extends State { temp[const Icon(Icons.chat)] = () { context.read().setToolIndex(0); }; - // temp[const Icon(Icons.chat)] = () { - // context.read().setToolIndex(1); - // }; - return MihPackageTools( tools: temp, selcetedIndex: context.watch().toolIndex, @@ -48,7 +94,6 @@ class _MzansiAiState extends State { List getToolBody() { List toolBodies = [ - // AiChat(), MihAiChat(), ]; return toolBodies; @@ -57,27 +102,7 @@ class _MzansiAiState extends State { List getToolTitle() { List toolTitles = [ "Ask Mzansi", - // "New Chat", ]; return toolTitles; } - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - return MihPackage( - appActionButton: getAction(), - appTools: getTools(), - appBody: getToolBody(), - appToolTitles: getToolTitle(), - selectedbodyIndex: context.watch().toolIndex, - onIndexChange: (newValue) { - context.read().setToolIndex(newValue); - }, - ); - } }