BUG: fav bus view fix
This commit is contained in:
@@ -27,8 +27,6 @@ class _BuildFavouriteBusinessesListState
|
|||||||
builder: (BuildContext context, MzansiDirectoryProvider directoryProvider,
|
builder: (BuildContext context, MzansiDirectoryProvider directoryProvider,
|
||||||
Widget? child) {
|
Widget? child) {
|
||||||
return ListView.separated(
|
return ListView.separated(
|
||||||
shrinkWrap: true,
|
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
|
||||||
itemCount: widget.favouriteBusinesses.length,
|
itemCount: widget.favouriteBusinesses.length,
|
||||||
separatorBuilder: (BuildContext context, index) {
|
separatorBuilder: (BuildContext context, index) {
|
||||||
return Divider(
|
return Divider(
|
||||||
|
|||||||
@@ -81,7 +81,55 @@ class _MzansiDirectoryState extends State<MzansiDirectory> {
|
|||||||
businessesImages: favBusImages,
|
businessesImages: favBusImages,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
// // --- REVISED FUNCTION FOR PARALLEL FETCHING ---
|
||||||
|
// Future<void> getFavouriteBusinesses() async {
|
||||||
|
// MzansiDirectoryProvider directoryProvider =
|
||||||
|
// context.read<MzansiDirectoryProvider>();
|
||||||
|
// MzansiProfileProvider profileProvider =
|
||||||
|
// context.read<MzansiProfileProvider>();
|
||||||
|
// // 1. Fetch the list of bookmarked business IDs
|
||||||
|
// await MihMzansiDirectoryServices().getAllUserBookmarkedBusiness(
|
||||||
|
// profileProvider.user!.app_id,
|
||||||
|
// directoryProvider,
|
||||||
|
// );
|
||||||
|
// // 2. Map bookmarked businesses to a list of Futures
|
||||||
|
// // Each Future will fetch the business details AND the logo URL concurrently
|
||||||
|
// final List<Future<(Business?, String?)>> detailAndUrlFutures =
|
||||||
|
// directoryProvider.bookmarkedBusinesses.map((bookmarkedBus) {
|
||||||
|
// return MihBusinessDetailsServices()
|
||||||
|
// .getBusinessDetailsByBusinessId(bookmarkedBus.business_id)
|
||||||
|
// .then((business) async {
|
||||||
|
// if (business == null) return (null, null);
|
||||||
|
// // Fetch logo URL for this business concurrently
|
||||||
|
// String businessLogoUrl =
|
||||||
|
// await MihFileApi.getMinioFileUrl(business.logo_path);
|
||||||
|
// return (business, businessLogoUrl);
|
||||||
|
// });
|
||||||
|
// }).toList();
|
||||||
|
// // 3. Wait for ALL futures to complete in parallel
|
||||||
|
// List<(Business?, String?)> results = await Future.wait(detailAndUrlFutures);
|
||||||
|
// // 4. Process the results
|
||||||
|
// List<Business> favBus = [];
|
||||||
|
// Map<String, ImageProvider<Object>?> favBusImages = {};
|
||||||
|
// for (var result in results) {
|
||||||
|
// final business = result.$1;
|
||||||
|
// final businessLogoUrl = result.$2;
|
||||||
|
// if (business != null) {
|
||||||
|
// favBus.add(business);
|
||||||
|
// favBusImages[business.business_id] =
|
||||||
|
// (businessLogoUrl != null && businessLogoUrl.isNotEmpty)
|
||||||
|
// ? NetworkImage(businessLogoUrl)
|
||||||
|
// : null;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// // 5. Update the provider once with all the data
|
||||||
|
// directoryProvider.setFavouriteBusinesses(
|
||||||
|
// businesses: favBus,
|
||||||
|
// businessesImages: favBusImages,
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // ---------------------------------------------
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import 'package:mzansi_innovation_hub/mih_objects/business.dart';
|
|||||||
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_package_components/mih_package_tool_body.dart';
|
import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_package_components/mih_search_bar.dart';
|
import 'package:mzansi_innovation_hub/mih_package_components/mih_search_bar.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_package_components/mih_single_child_scroll.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_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';
|
||||||
@@ -89,8 +88,7 @@ class _MihFavouriteBusinessesState extends State<MihFavouriteBusinesses> {
|
|||||||
child: Mihloadingcircle(),
|
child: Mihloadingcircle(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return MihSingleChildScroll(
|
return Column(
|
||||||
child: Column(
|
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.symmetric(horizontal: width / 20),
|
padding: EdgeInsets.symmetric(horizontal: width / 20),
|
||||||
@@ -107,7 +105,8 @@ class _MihFavouriteBusinessesState extends State<MihFavouriteBusinesses> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
ValueListenableBuilder<List<Business?>>(
|
Expanded(
|
||||||
|
child: ValueListenableBuilder<List<Business?>>(
|
||||||
valueListenable: searchBookmarkedBusinesses,
|
valueListenable: searchBookmarkedBusinesses,
|
||||||
builder: (context, filteredBusinesses, child) {
|
builder: (context, filteredBusinesses, child) {
|
||||||
if (filteredBusinesses.isEmpty &&
|
if (filteredBusinesses.isEmpty &&
|
||||||
@@ -200,8 +199,8 @@ class _MihFavouriteBusinessesState extends State<MihFavouriteBusinesses> {
|
|||||||
favouriteBusinesses: filteredBusinesses,
|
favouriteBusinesses: filteredBusinesses,
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
],
|
|
||||||
),
|
),
|
||||||
|
],
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user