QOL: Mzansi Wallet get data on package open

This commit is contained in:
2025-11-17 10:46:09 +02:00
parent 96daf77b45
commit a0bd74b703

View File

@@ -8,6 +8,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/package_tools/mih_card_favourites.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/package_tools/mih_card_favourites.dart';
import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/package_tools/mih_cards.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/package_tools/mih_cards.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_data_helper_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_wallet_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_wallet_services.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -21,7 +22,24 @@ class MihWallet extends StatefulWidget {
} }
class _MihWalletState extends State<MihWallet> { class _MihWalletState extends State<MihWallet> {
bool isLoading = true; bool _isLoadingInitialData = true;
Future<void> _loadInitialData() async {
setState(() {
_isLoadingInitialData = true;
});
MzansiProfileProvider mzansiProfileProvider =
context.read<MzansiProfileProvider>();
MzansiWalletProvider walletProvider = context.read<MzansiWalletProvider>();
await MihDataHelperServices().loadUserDataOnly(
mzansiProfileProvider,
);
await setLoyaltyCards(mzansiProfileProvider, walletProvider);
await setFavouritesCards(mzansiProfileProvider, walletProvider);
setState(() {
_isLoadingInitialData = false;
});
}
Future<void> setLoyaltyCards( Future<void> setLoyaltyCards(
MzansiProfileProvider mzansiProfileProvider, MzansiProfileProvider mzansiProfileProvider,
@@ -42,33 +60,31 @@ class _MihWalletState extends State<MihWallet> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) async { _loadInitialData();
MzansiProfileProvider mzansiProfileProvider =
context.read<MzansiProfileProvider>();
MzansiWalletProvider walletProvider =
context.read<MzansiWalletProvider>();
await setLoyaltyCards(mzansiProfileProvider, walletProvider);
await setFavouritesCards(mzansiProfileProvider, walletProvider);
setState(() {
isLoading = false;
});
});
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MihPackage( return Consumer<MzansiWalletProvider>(
appActionButton: getAction(), builder: (BuildContext context, MzansiWalletProvider walletProvider,
appTools: getTools(), Widget? child) {
appBody: getToolBody(), if (_isLoadingInitialData) {
appToolTitles: getToolTitle(), return Scaffold(
selectedbodyIndex: context.watch<MzansiWalletProvider>().toolIndex, body: Center(
onIndexChange: (newIndex) { child: Mihloadingcircle(),
context.read<MzansiWalletProvider>().setToolIndex(newIndex); ),
// setState(() { );
// _selcetedIndex = newValue; }
// }); return MihPackage(
// print("Index: $_selcetedIndex"); appActionButton: getAction(),
appTools: getTools(),
appBody: getToolBody(),
appToolTitles: getToolTitle(),
selectedbodyIndex: walletProvider.toolIndex,
onIndexChange: (newIndex) {
walletProvider.setToolIndex(newIndex);
},
);
}, },
); );
} }
@@ -105,13 +121,6 @@ class _MihWalletState extends State<MihWallet> {
MihCards(), MihCards(),
MihCardFavourites(), MihCardFavourites(),
]; ];
if (isLoading) {
return [
const Center(
child: Mihloadingcircle(),
)
];
}
return toolBodies; return toolBodies;
} }