enhanced search by gemini
This commit is contained in:
@@ -1,20 +1,16 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mzansi_innovation_hub/main.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/bookmarked_business.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_business_profile_preview.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_services/mih_business_details_services.dart';
|
||||
|
||||
class BuildFavouriteBusinessesList extends StatefulWidget {
|
||||
final List<BookmarkedBusiness> favouriteBusinesses;
|
||||
final List<Business?> favouriteBusinesses;
|
||||
final String? myLocation;
|
||||
final String? searchQuery;
|
||||
const BuildFavouriteBusinessesList({
|
||||
super.key,
|
||||
required this.favouriteBusinesses,
|
||||
required this.myLocation,
|
||||
required this.searchQuery,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -24,28 +20,6 @@ class BuildFavouriteBusinessesList extends StatefulWidget {
|
||||
|
||||
class _BuildFavouriteBusinessesListState
|
||||
extends State<BuildFavouriteBusinessesList> {
|
||||
List<Business?> businesses = [];
|
||||
|
||||
List<Business?> getListOfBusinesses() {
|
||||
List<Business?> businesses = [];
|
||||
for (var item in widget.favouriteBusinesses) {
|
||||
MihBusinessDetailsServices()
|
||||
.getBusinessDetailsByBusinessId(item.business_id)
|
||||
.then((business) {
|
||||
if (business != null) {
|
||||
businesses.add(business);
|
||||
}
|
||||
});
|
||||
}
|
||||
return businesses;
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
businesses = getListOfBusinesses();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ListView.separated(
|
||||
@@ -58,63 +32,37 @@ class _BuildFavouriteBusinessesListState
|
||||
);
|
||||
},
|
||||
itemBuilder: (context, index) {
|
||||
Future<Business?> businessDetails =
|
||||
MihBusinessDetailsServices().getBusinessDetailsByBusinessId(
|
||||
widget.favouriteBusinesses[index].business_id,
|
||||
);
|
||||
return FutureBuilder<Business?>(
|
||||
future: businessDetails,
|
||||
builder: (context, snapshot) {
|
||||
if (snapshot.connectionState == ConnectionState.waiting) {
|
||||
return Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 25.0),
|
||||
child: CircularProgressIndicator(),
|
||||
),
|
||||
],
|
||||
);
|
||||
} else if (snapshot.hasError) {
|
||||
return Center(
|
||||
child: Text(
|
||||
'Error: ${snapshot.error}',
|
||||
style: TextStyle(color: Colors.red),
|
||||
final Business? business = widget.favouriteBusinesses[index];
|
||||
|
||||
if (business == null) {
|
||||
return const SizedBox(); // Or a placeholder if a business couldn't be loaded
|
||||
}
|
||||
|
||||
return Material(
|
||||
color: MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.of(context).pushNamed(
|
||||
'/business-profile/view',
|
||||
arguments: BusinessViewArguments(
|
||||
business,
|
||||
business.Name,
|
||||
),
|
||||
);
|
||||
} else if (snapshot.hasData && snapshot.data != null) {
|
||||
Business business = snapshot.data!;
|
||||
return Material(
|
||||
color: MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.of(context).pushNamed(
|
||||
'/business-profile/view',
|
||||
arguments: BusinessViewArguments(
|
||||
business,
|
||||
business.Name,
|
||||
),
|
||||
);
|
||||
},
|
||||
splashColor: MzansiInnovationHub.of(context)!
|
||||
.theme
|
||||
.secondaryColor()
|
||||
.withOpacity(0.2),
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
child: Padding(
|
||||
padding: EdgeInsetsGeometry.symmetric(
|
||||
// vertical: 5,
|
||||
horizontal: 25,
|
||||
),
|
||||
child: MihBusinessProfilePreview(
|
||||
business: business, myLocation: widget.myLocation),
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
print(snapshot.data);
|
||||
return SizedBox();
|
||||
}
|
||||
},
|
||||
},
|
||||
splashColor: MzansiInnovationHub.of(context)!
|
||||
.theme
|
||||
.secondaryColor()
|
||||
.withOpacity(0.2),
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 25,
|
||||
),
|
||||
child: MihBusinessProfilePreview(
|
||||
business: business, myLocation: widget.myLocation),
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user