QOL: Mzansi Directory get data on package open

This commit is contained in:
2025-11-17 10:53:52 +02:00
parent 790bf0e4f8
commit b49e93825e

View File

@@ -6,11 +6,13 @@ import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.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.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_action.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.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_directory_provider.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_directory_provider.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/package_tools/mih_favourite_businesses.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/package_tools/mih_favourite_businesses.dart';
import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_business_details_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_business_details_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_data_helper_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_location_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_location_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_directory_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_directory_services.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -25,9 +27,30 @@ class MzansiDirectory extends StatefulWidget {
} }
class _MzansiDirectoryState extends State<MzansiDirectory> { class _MzansiDirectoryState extends State<MzansiDirectory> {
bool _isLoadingInitialData = true;
late Future<Position?> futurePosition = late Future<Position?> futurePosition =
MIHLocationAPI().getGPSPosition(context); MIHLocationAPI().getGPSPosition(context);
Future<void> _loadInitialData() async {
setState(() {
_isLoadingInitialData = true;
});
MzansiProfileProvider mzansiProfileProvider =
context.read<MzansiProfileProvider>();
MzansiDirectoryProvider directoryProvider =
context.read<MzansiDirectoryProvider>();
await MihDataHelperServices().loadUserDataOnly(
mzansiProfileProvider,
);
MIHLocationAPI().getGPSPosition(context).then((position) {
directoryProvider.setUserPosition(position);
});
await getFavouriteBusinesses();
setState(() {
_isLoadingInitialData = false;
});
}
Future<void> initialiseGPSLocation() async { Future<void> initialiseGPSLocation() async {
MzansiDirectoryProvider directoryProvider = MzansiDirectoryProvider directoryProvider =
context.read<MzansiDirectoryProvider>(); context.read<MzansiDirectoryProvider>();
@@ -60,41 +83,39 @@ class _MzansiDirectoryState extends State<MzansiDirectory> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) async { _loadInitialData();
initialiseGPSLocation();
getFavouriteBusinesses();
});
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MihPackage( return Consumer<MzansiDirectoryProvider>(
appActionButton: getAction(), builder: (BuildContext context, MzansiDirectoryProvider directoryProvider,
appTools: getTools(), Widget? child) {
appBody: getToolBody(), if (_isLoadingInitialData) {
appToolTitles: getToolTitle(), return Scaffold(
selectedbodyIndex: context.watch<MzansiDirectoryProvider>().toolIndex, body: Center(
onIndexChange: (newValue) { child: Mihloadingcircle(),
context.read<MzansiDirectoryProvider>().setToolIndex(newValue); ),
);
}
return MihPackage(
appActionButton: getAction(),
appTools: getTools(),
appBody: getToolBody(),
appToolTitles: getToolTitle(),
selectedbodyIndex: directoryProvider.toolIndex,
onIndexChange: (newValue) {
directoryProvider.setToolIndex(newValue);
},
);
}, },
); );
} }
List<Widget> getToolBody() { List<Widget> getToolBody() {
List<Widget> toolBodies = []; List<Widget> toolBodies = [];
// String myLocation = "Getting Your GPS Location Ready";
// if (directoryProvider.userPosition != null) {
// myLocation = directoryProvider.userPosition
// .toString()
// .replaceAll("Latitude: ", "")
// .replaceAll("Longitude: ", "");
// }
toolBodies.addAll([ toolBodies.addAll([
MihSearchMzansi( MihSearchMzansi(),
// personalSearch: directoryProvider.personalSearch,
// startSearchText: "",
),
// MihContacts(),
MihFavouriteBusinesses(), MihFavouriteBusinesses(),
]); ]);
return toolBodies; return toolBodies;