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

@@ -8,7 +8,6 @@ import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart'; import 'package:mzansi_innovation_hub/mih_objects/business.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_banner_ad.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_banner_ad.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_business_profile_preview.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_personal_profile_preview.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_personal_profile_preview.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_loading_circle.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_loading_circle.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
@@ -393,16 +392,16 @@ class _PackageToolOneState extends State<PackageToolOne> {
child: Center(child: Text("Location unavailable")), child: Center(child: Text("Location unavailable")),
); );
} else { } else {
final myLocation = asyncSnapshot.data // final myLocation = asyncSnapshot.data
.toString() // .toString()
.replaceAll("Latitude: ", "") // .replaceAll("Latitude: ", "")
.replaceAll("Longitude: ", ""); // .replaceAll("Longitude: ", "");
print("My Location is this: $myLocation"); // print("My Location is this: $myLocation");
return widget.business != null // return widget.business != null
? MihBusinessProfilePreview( // ? MihBusinessProfilePreview(
business: widget.business!, // business: widget.business!,
) // )
: Text("NoBusiness Data"); return Text("NoBusiness Data");
} }
}), }),
// const SizedBox(height: 10), // const SizedBox(height: 10),

View File

@@ -0,0 +1,127 @@
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_circle_avatar.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.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:provider/provider.dart';
class MihBusinessProfilePreview extends StatefulWidget {
final Business business;
const MihBusinessProfilePreview({
super.key,
required this.business,
});
@override
State<MihBusinessProfilePreview> createState() =>
_MihBusinessProfilePreviewState();
}
class _MihBusinessProfilePreviewState extends State<MihBusinessProfilePreview> {
late Future<String> futureImageUrl;
PlatformFile? file;
String calculateDistance(MzansiDirectoryProvider directoryProvider) {
try {
double distanceInKm = MIHLocationAPI().getDistanceInMeaters(
directoryProvider.userLocation, widget.business.gps_location) /
1000;
return "${distanceInKm.toStringAsFixed(2)} km";
} catch (error) {
print(error);
return "*.** km";
}
}
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
double profilePictureWidth = 60;
return Consumer<MzansiDirectoryProvider>(
builder: (BuildContext context, MzansiDirectoryProvider directoryProvider,
Widget? child) {
return Row(
children: [
FutureBuilder(
future: MihFileApi.getMinioFileUrl(widget.business.logo_path),
builder: (context, asyncSnapshot) {
if (asyncSnapshot.connectionState == ConnectionState.done &&
asyncSnapshot.hasData) {
if (asyncSnapshot.requireData != "") {
return MihCircleAvatar(
imageFile: NetworkImage(asyncSnapshot.requireData),
width: profilePictureWidth,
editable: false,
fileNameController: TextEditingController(),
userSelectedfile: file,
frameColor: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
backgroundColor: MihColors.getPrimaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
onChange: () {},
);
} else {
return Icon(
MihIcons.iDontKnow,
size: profilePictureWidth,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
);
}
} else {
return Icon(
MihIcons.mihRing,
size: profilePictureWidth,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
);
}
}),
const SizedBox(width: 15),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
widget.business.Name,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 18,
),
),
Text(
widget.business.type,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 15,
),
),
Text(
directoryProvider.userPosition != null
? calculateDistance(directoryProvider)
: "0.00 km",
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 10,
),
),
],
)
],
);
},
);
}
}

View File

@@ -1,4 +1,3 @@
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart'; import 'package:mzansi_innovation_hub/mih_objects/business.dart';
@@ -6,15 +5,16 @@ import 'package:mzansi_innovation_hub/mih_package_components/mih_circle_avatar.d
import 'package:mzansi_innovation_hub/mih_package_components/mih_icons.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.dart'; import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.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_location_services.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class MihBusinessProfilePreview extends StatefulWidget { class MihBusinessProfilePreview extends StatefulWidget {
final Business business; final Business business;
final ImageProvider<Object>? imageFile;
const MihBusinessProfilePreview({ const MihBusinessProfilePreview({
super.key, super.key,
required this.business, required this.business,
required this.imageFile,
}); });
@override @override
@@ -23,9 +23,6 @@ class MihBusinessProfilePreview extends StatefulWidget {
} }
class _MihBusinessProfilePreviewState extends State<MihBusinessProfilePreview> { class _MihBusinessProfilePreviewState extends State<MihBusinessProfilePreview> {
late Future<String> futureImageUrl;
PlatformFile? file;
String calculateDistance(MzansiDirectoryProvider directoryProvider) { String calculateDistance(MzansiDirectoryProvider directoryProvider) {
try { try {
double distanceInKm = MIHLocationAPI().getDistanceInMeaters( double distanceInKm = MIHLocationAPI().getDistanceInMeaters(
@@ -51,45 +48,23 @@ class _MihBusinessProfilePreviewState extends State<MihBusinessProfilePreview> {
Widget? child) { Widget? child) {
return Row( return Row(
children: [ children: [
FutureBuilder( widget.imageFile == null
future: MihFileApi.getMinioFileUrl(widget.business.logo_path), ? Icon(
builder: (context, asyncSnapshot) { MihIcons.iDontKnow,
if (asyncSnapshot.connectionState == ConnectionState.done && size: profilePictureWidth,
asyncSnapshot.hasData) { )
if (asyncSnapshot.requireData != "") { : MihCircleAvatar(
return MihCircleAvatar( imageFile: widget.imageFile,
imageFile: NetworkImage(asyncSnapshot.requireData), width: profilePictureWidth,
width: profilePictureWidth, editable: false,
editable: false, fileNameController: TextEditingController(),
fileNameController: TextEditingController(), userSelectedfile: null,
userSelectedfile: file, frameColor: MihColors.getSecondaryColor(
frameColor: MihColors.getSecondaryColor( MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
MzansiInnovationHub.of(context)!.theme.mode == backgroundColor: MihColors.getPrimaryColor(
"Dark"), MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
backgroundColor: MihColors.getPrimaryColor( onChange: () {},
MzansiInnovationHub.of(context)!.theme.mode == ),
"Dark"),
onChange: () {},
);
} else {
return Icon(
MihIcons.iDontKnow,
size: profilePictureWidth,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
);
}
} else {
return Icon(
MihIcons.mihRing,
size: profilePictureWidth,
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
);
}
}),
const SizedBox(width: 15), const SizedBox(width: 15),
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,

View File

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

View File

@@ -61,6 +61,8 @@ class _BuildFavouriteBusinessesListState
), ),
child: MihBusinessProfilePreview( child: MihBusinessProfilePreview(
business: widget.favouriteBusinesses[index]!, 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_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_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_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';
@@ -40,10 +41,10 @@ class _MzansiDirectoryState extends State<MzansiDirectory> {
mzansiProfileProvider, mzansiProfileProvider,
); );
await getFavouriteBusinesses(); await getFavouriteBusinesses();
initialiseGPSLocation();
setState(() { setState(() {
_isLoadingInitialData = false; _isLoadingInitialData = false;
}); });
initialiseGPSLocation();
} }
Future<void> initialiseGPSLocation() async { Future<void> initialiseGPSLocation() async {
@@ -63,14 +64,22 @@ class _MzansiDirectoryState extends State<MzansiDirectory> {
directoryProvider, directoryProvider,
); );
List<Business> favBus = []; List<Business> favBus = [];
Map<String, ImageProvider<Object>?> favBusImages = {};
String businessLogoUrl = "";
for (var bus in directoryProvider.bookmarkedBusinesses) { for (var bus in directoryProvider.bookmarkedBusinesses) {
await MihBusinessDetailsServices() await MihBusinessDetailsServices()
.getBusinessDetailsByBusinessId(bus.business_id) .getBusinessDetailsByBusinessId(bus.business_id)
.then((business) { .then((business) async {
favBus.add(business!); 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 @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_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_alert_services.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_file_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_user_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_user_services.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -40,7 +41,6 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
late Future<List<String>> availableBusinessTypes; late Future<List<String>> availableBusinessTypes;
bool filterOn = false; bool filterOn = false;
bool loadingSearchResults = false; bool loadingSearchResults = false;
Future<void> swapPressed(MzansiProfileProvider profileProvider, Future<void> swapPressed(MzansiProfileProvider profileProvider,
MzansiDirectoryProvider directoryProvider) async { MzansiDirectoryProvider directoryProvider) async {
directoryProvider.setPersonalSearch(!directoryProvider.personalSearch); directoryProvider.setPersonalSearch(!directoryProvider.personalSearch);
@@ -58,7 +58,8 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
} }
void clearAll(MzansiDirectoryProvider directoryProvider) { void clearAll(MzansiDirectoryProvider directoryProvider) {
directoryProvider.setSearchedBusinesses(searchedBusinesses: []); directoryProvider
.setSearchedBusinesses(searchedBusinesses: [], businessesImages: {});
directoryProvider.setSearchedUsers(searchedUsers: []); directoryProvider.setSearchedUsers(searchedUsers: []);
directoryProvider.setSearchTerm(searchTerm: ""); directoryProvider.setSearchTerm(searchTerm: "");
setState(() { setState(() {
@@ -91,8 +92,19 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
.searchBusinesses(directoryProvider.searchTerm, .searchBusinesses(directoryProvider.searchTerm,
directoryProvider.businessTypeFilter, context); 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( directoryProvider.setSearchedBusinesses(
searchedBusinesses: businessSearchResults); searchedBusinesses: businessSearchResults,
businessesImages: busImages,
);
} }
setState(() { setState(() {
loadingSearchResults = false; loadingSearchResults = false;
@@ -280,8 +292,6 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
Widget displayBusinessSearchResults( Widget displayBusinessSearchResults(
MzansiDirectoryProvider directoryProvider) { MzansiDirectoryProvider directoryProvider) {
KenLogger.success(
"Searched Businesses: ${directoryProvider.searchedBusinesses}");
if (directoryProvider.searchedBusinesses == null || loadingSearchResults) { if (directoryProvider.searchedBusinesses == null || loadingSearchResults) {
return Center( return Center(
child: const Mihloadingcircle(), child: const Mihloadingcircle(),

View File

@@ -10,6 +10,7 @@ import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.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_business_details_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_file_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';
@@ -37,14 +38,22 @@ class _MihAddBookmarkAlertState extends State<MihAddBookmarkAlert> {
directoryProvider, directoryProvider,
); );
List<Business> favBus = []; List<Business> favBus = [];
Map<String, ImageProvider<Object>?> favBusImages = {};
String businessLogoUrl = "";
for (var bus in directoryProvider.bookmarkedBusinesses) { for (var bus in directoryProvider.bookmarkedBusinesses) {
await MihBusinessDetailsServices() await MihBusinessDetailsServices()
.getBusinessDetailsByBusinessId(bus.business_id) .getBusinessDetailsByBusinessId(bus.business_id)
.then((business) { .then((business) async {
favBus.add(business!); 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,
);
} }
Future<void> addBookmark( Future<void> addBookmark(

View File

@@ -15,6 +15,7 @@ import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profi
import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart'; import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.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_business_details_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_file_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';
import 'package:redacted/redacted.dart'; import 'package:redacted/redacted.dart';
@@ -573,8 +574,17 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
businessSearchResults = await MihBusinessDetailsServices() businessSearchResults = await MihBusinessDetailsServices()
.searchBusinesses(directoryProvider.searchTerm, .searchBusinesses(directoryProvider.searchTerm,
directoryProvider.businessTypeFilter, context); directoryProvider.businessTypeFilter, context);
Map<String, ImageProvider<Object>?> busImages = {};
String businessLogoUrl = "";
for (var bus in businessSearchResults) {
businessLogoUrl = await MihFileApi.getMinioFileUrl(bus.logo_path);
busImages[bus.business_id] =
businessLogoUrl != "" ? NetworkImage(businessLogoUrl) : null;
}
directoryProvider.setSearchedBusinesses( directoryProvider.setSearchedBusinesses(
searchedBusinesses: businessSearchResults); searchedBusinesses: businessSearchResults,
businessesImages: busImages,
);
setState(() { setState(() {
_businessReviewFuture = getUserReview(); _businessReviewFuture = getUserReview();
}); });

View File

@@ -11,6 +11,7 @@ import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.da
import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart'; import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.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_business_details_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_file_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';
@@ -42,14 +43,22 @@ class _MihDeleteBookmarkAlertState extends State<MihDeleteBookmarkAlert> {
directoryProvider, directoryProvider,
); );
List<Business> favBus = []; List<Business> favBus = [];
Map<String, ImageProvider<Object>?> favBusImages = {};
String businessLogoUrl = "";
for (var bus in directoryProvider.bookmarkedBusinesses) { for (var bus in directoryProvider.bookmarkedBusinesses) {
await MihBusinessDetailsServices() await MihBusinessDetailsServices()
.getBusinessDetailsByBusinessId(bus.business_id) .getBusinessDetailsByBusinessId(bus.business_id)
.then((business) { .then((business) async {
favBus.add(business!); 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,
);
} }
Future<void> deleteBookmark(int idbookmarked_businesses) async { Future<void> deleteBookmark(int idbookmarked_businesses) async {

View File

@@ -11,7 +11,9 @@ class MzansiDirectoryProvider extends ChangeNotifier {
bool personalSearch; bool personalSearch;
List<BookmarkedBusiness> bookmarkedBusinesses = []; List<BookmarkedBusiness> bookmarkedBusinesses = [];
List<Business>? favouriteBusinessesList; List<Business>? favouriteBusinessesList;
Map<String, ImageProvider<Object>?>? favBusImages;
List<Business>? searchedBusinesses; List<Business>? searchedBusinesses;
Map<String, ImageProvider<Object>?>? busSearchImages;
Business? selectedBusiness; Business? selectedBusiness;
List<AppUser>? searchedUsers; List<AppUser>? searchedUsers;
AppUser? selectedUser; AppUser? selectedUser;
@@ -67,13 +69,21 @@ class MzansiDirectoryProvider extends ChangeNotifier {
notifyListeners(); notifyListeners();
} }
void setFavouriteBusinesses({required List<Business> businesses}) { void setFavouriteBusinesses({
required List<Business> businesses,
required Map<String, ImageProvider<Object>?> businessesImages,
}) {
favouriteBusinessesList = businesses; favouriteBusinessesList = businesses;
favBusImages = businessesImages;
notifyListeners(); notifyListeners();
} }
void setSearchedBusinesses({required List<Business> searchedBusinesses}) { void setSearchedBusinesses({
required List<Business> searchedBusinesses,
required Map<String, ImageProvider<Object>?> businessesImages,
}) {
this.searchedBusinesses = searchedBusinesses; this.searchedBusinesses = searchedBusinesses;
busSearchImages = businessesImages;
notifyListeners(); notifyListeners();
} }