BUG: Image loading of businesses

This commit is contained in:
2025-11-27 12:40:34 +02:00
parent cc3f18f7e2
commit ee7d3881e6
11 changed files with 232 additions and 70 deletions

View File

@@ -60,6 +60,8 @@ class _BuildBusinessSearchResultsListState
),
child: MihBusinessProfilePreview(
business: widget.businessList[index],
imageFile: directoryProvider.busSearchImages![
widget.businessList[index].business_id],
),
),
),

View File

@@ -61,6 +61,8 @@ class _BuildFavouriteBusinessesListState
),
child: MihBusinessProfilePreview(
business: widget.favouriteBusinesses[index]!,
imageFile: directoryProvider.favBusImages![
widget.favouriteBusinesses[index]!.business_id],
),
),
),

View File

@@ -12,6 +12,7 @@ import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/package_tool
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_data_helper_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_file_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:provider/provider.dart';
@@ -40,10 +41,10 @@ class _MzansiDirectoryState extends State<MzansiDirectory> {
mzansiProfileProvider,
);
await getFavouriteBusinesses();
initialiseGPSLocation();
setState(() {
_isLoadingInitialData = false;
});
initialiseGPSLocation();
}
Future<void> initialiseGPSLocation() async {
@@ -63,14 +64,22 @@ class _MzansiDirectoryState extends State<MzansiDirectory> {
directoryProvider,
);
List<Business> favBus = [];
Map<String, ImageProvider<Object>?> favBusImages = {};
String businessLogoUrl = "";
for (var bus in directoryProvider.bookmarkedBusinesses) {
await MihBusinessDetailsServices()
.getBusinessDetailsByBusinessId(bus.business_id)
.then((business) {
.then((business) async {
favBus.add(business!);
businessLogoUrl = await MihFileApi.getMinioFileUrl(business.logo_path);
favBusImages[business.business_id] =
businessLogoUrl != "" ? NetworkImage(businessLogoUrl) : null;
});
}
directoryProvider.setFavouriteBusinesses(businesses: favBus);
directoryProvider.setFavouriteBusinesses(
businesses: favBus,
businessesImages: favBusImages,
);
}
@override

View File

@@ -17,6 +17,7 @@ import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/builders/bui
import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/builders/build_user_search_results_list.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_business_details_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_file_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_user_services.dart';
import 'package:provider/provider.dart';
@@ -40,7 +41,6 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
late Future<List<String>> availableBusinessTypes;
bool filterOn = false;
bool loadingSearchResults = false;
Future<void> swapPressed(MzansiProfileProvider profileProvider,
MzansiDirectoryProvider directoryProvider) async {
directoryProvider.setPersonalSearch(!directoryProvider.personalSearch);
@@ -58,7 +58,8 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
}
void clearAll(MzansiDirectoryProvider directoryProvider) {
directoryProvider.setSearchedBusinesses(searchedBusinesses: []);
directoryProvider
.setSearchedBusinesses(searchedBusinesses: [], businessesImages: {});
directoryProvider.setSearchedUsers(searchedUsers: []);
directoryProvider.setSearchTerm(searchTerm: "");
setState(() {
@@ -91,8 +92,19 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
.searchBusinesses(directoryProvider.searchTerm,
directoryProvider.businessTypeFilter, context);
}
Map<String, ImageProvider<Object>?> busImages = {};
String businessLogoUrl = "";
for (var bus in businessSearchResults) {
KenLogger.success("Business Logo Path: ${bus.logo_path}");
businessLogoUrl = await MihFileApi.getMinioFileUrl(bus.logo_path);
KenLogger.success("Business Logo Path: ${bus.logo_path}");
busImages[bus.business_id] =
businessLogoUrl != "" ? NetworkImage(businessLogoUrl) : null;
}
directoryProvider.setSearchedBusinesses(
searchedBusinesses: businessSearchResults);
searchedBusinesses: businessSearchResults,
businessesImages: busImages,
);
}
setState(() {
loadingSearchResults = false;
@@ -280,8 +292,6 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
Widget displayBusinessSearchResults(
MzansiDirectoryProvider directoryProvider) {
KenLogger.success(
"Searched Businesses: ${directoryProvider.searchedBusinesses}");
if (directoryProvider.searchedBusinesses == null || loadingSearchResults) {
return Center(
child: const Mihloadingcircle(),