QOL: Mzansi Directory get data on package open
This commit is contained in:
@@ -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 Consumer<MzansiDirectoryProvider>(
|
||||||
|
builder: (BuildContext context, MzansiDirectoryProvider directoryProvider,
|
||||||
|
Widget? child) {
|
||||||
|
if (_isLoadingInitialData) {
|
||||||
|
return Scaffold(
|
||||||
|
body: Center(
|
||||||
|
child: Mihloadingcircle(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
return MihPackage(
|
return MihPackage(
|
||||||
appActionButton: getAction(),
|
appActionButton: getAction(),
|
||||||
appTools: getTools(),
|
appTools: getTools(),
|
||||||
appBody: getToolBody(),
|
appBody: getToolBody(),
|
||||||
appToolTitles: getToolTitle(),
|
appToolTitles: getToolTitle(),
|
||||||
selectedbodyIndex: context.watch<MzansiDirectoryProvider>().toolIndex,
|
selectedbodyIndex: directoryProvider.toolIndex,
|
||||||
onIndexChange: (newValue) {
|
onIndexChange: (newValue) {
|
||||||
context.read<MzansiDirectoryProvider>().setToolIndex(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;
|
||||||
|
|||||||
Reference in New Issue
Block a user