diff --git a/Frontend/lib/mih_components/mih_objects/arguments.dart b/Frontend/lib/mih_components/mih_objects/arguments.dart index 5d85ec92..3f1cba68 100644 --- a/Frontend/lib/mih_components/mih_objects/arguments.dart +++ b/Frontend/lib/mih_components/mih_objects/arguments.dart @@ -31,6 +31,16 @@ class BusinessArguments { ); } +class BusinessViewArguments { + final Business business; + final String? startUpSearch; + + BusinessViewArguments( + this.business, + this.startUpSearch, + ); +} + class HomeArguments { final AppUser signedInUser; final BusinessUser? businessUser; @@ -218,6 +228,16 @@ class MzansiAiArguments { ); } +class MzansiDirectoryArguments { + final String? startUpSearch; + final bool personalSearch; + + MzansiDirectoryArguments( + this.startUpSearch, + this.personalSearch, + ); +} + class TestArguments { final AppUser user; final Business? business; diff --git a/Frontend/lib/mih_config/mih_routeGenerator.dart b/Frontend/lib/mih_config/mih_routeGenerator.dart index 130a1c98..8e05353d 100644 --- a/Frontend/lib/mih_config/mih_routeGenerator.dart +++ b/Frontend/lib/mih_config/mih_routeGenerator.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_print_prevew.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/Example/package_test.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_notification_message.dart'; import 'package:mzansi_innovation_hub/mih_packages/about_mih/about_mih.dart'; @@ -122,13 +121,13 @@ class RouteGenerator { // } // break; // Use break and fall through to _errorRoute if argument type is wrong case AppRoutes.mzansiDirectory: - // if (args is AuthArguments) { - return MaterialPageRoute( - settings: settings, - builder: (_) => MzansiDirectory(), - ); - // } - // break; + if (args is MzansiDirectoryArguments) { + return MaterialPageRoute( + settings: settings, + builder: (_) => MzansiDirectory(arguments: args), + ); + } + break; case AppRoutes.notifications: if (args is NotificationArguments) { return MaterialPageRoute( @@ -188,10 +187,10 @@ class RouteGenerator { break; case AppRoutes.businessProfileView: - if (args is Business) { + if (args is BusinessViewArguments) { return MaterialPageRoute( settings: settings, - builder: (_) => MzansiBusinessProfileView(business: args), + builder: (_) => MzansiBusinessProfileView(arguments: args), ); } break; diff --git a/Frontend/lib/mih_packages/mzansi_directory/builders/build_business_search_resultsList.dart b/Frontend/lib/mih_packages/mzansi_directory/builders/build_business_search_resultsList.dart index 02b918c3..5d8d533a 100644 --- a/Frontend/lib/mih_packages/mzansi_directory/builders/build_business_search_resultsList.dart +++ b/Frontend/lib/mih_packages/mzansi_directory/builders/build_business_search_resultsList.dart @@ -1,15 +1,18 @@ 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/business.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_business_profile_preview.dart'; class BuildBusinessSearchResultsList extends StatefulWidget { final List businessList; final String myLocation; + final String? startUpSearch; const BuildBusinessSearchResultsList({ super.key, required this.businessList, required this.myLocation, + required this.startUpSearch, }); @override @@ -37,7 +40,10 @@ class _BuildBusinessSearchResultsListState onTap: () { Navigator.of(context).pushNamed( '/business-profile/view', - arguments: widget.businessList[index], + arguments: BusinessViewArguments( + widget.businessList[index], + widget.startUpSearch, + ), ); }, splashColor: MzansiInnovationHub.of(context)! diff --git a/Frontend/lib/mih_packages/mzansi_directory/mzansi_directory.dart b/Frontend/lib/mih_packages/mzansi_directory/mzansi_directory.dart index 0706314b..3ddc5e55 100644 --- a/Frontend/lib/mih_packages/mzansi_directory/mzansi_directory.dart +++ b/Frontend/lib/mih_packages/mzansi_directory/mzansi_directory.dart @@ -1,11 +1,16 @@ import 'package:flutter/material.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.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_tools.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart'; class MzansiDirectory extends StatefulWidget { - const MzansiDirectory({super.key}); + final MzansiDirectoryArguments arguments; + const MzansiDirectory({ + super.key, + required this.arguments, + }); @override State createState() => _MzansiDirectoryState(); @@ -32,7 +37,10 @@ class _MzansiDirectoryState extends State { List getToolBody() { List toolBodies = [ - MihSearchMzansi(), + MihSearchMzansi( + startUpSearch: widget.arguments.startUpSearch, + personalSearch: widget.arguments.personalSearch, + ), // MihContacts(), // MihFavouriteBusinesses(), ]; diff --git a/Frontend/lib/mih_packages/mzansi_directory/package_tiles/mzansi_directory_tile.dart b/Frontend/lib/mih_packages/mzansi_directory/package_tiles/mzansi_directory_tile.dart index 601ef5d9..d74b46ab 100644 --- a/Frontend/lib/mih_packages/mzansi_directory/package_tiles/mzansi_directory_tile.dart +++ b/Frontend/lib/mih_packages/mzansi_directory/package_tiles/mzansi_directory_tile.dart @@ -1,5 +1,6 @@ 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_package_components/mih_icons.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart'; @@ -21,7 +22,10 @@ class _MzansiDirectoryTileState extends State { onTap: () { Navigator.of(context).pushNamed( '/mzansi-directory', - // arguments: WalletArguments(widget.signedInUser, 0), + arguments: MzansiDirectoryArguments( + null, // startUpSearch + true, // personalSearch + ), ); }, appName: "Mzansi Directory", diff --git a/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart b/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart index 846c9b43..dcb4e55f 100644 --- a/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart +++ b/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart @@ -15,7 +15,13 @@ import 'package:mzansi_innovation_hub/mih_services/mih_location_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_user_services.dart'; class MihSearchMzansi extends StatefulWidget { - const MihSearchMzansi({super.key}); + final String? startUpSearch; + final bool personalSearch; + const MihSearchMzansi({ + super.key, + required this.startUpSearch, + required this.personalSearch, + }); @override State createState() => _MihSearchMzansiState(); @@ -24,7 +30,7 @@ class MihSearchMzansi extends StatefulWidget { class _MihSearchMzansiState extends State { final TextEditingController mzansiSearchController = TextEditingController(); final FocusNode searchFocusNode = FocusNode(); - bool userSearch = true; + late bool userSearch; Future?> futureUserSearchResults = Future.value(); Future?> futureBusinessSearchResults = Future.value(); late Future futurePosition = @@ -41,6 +47,17 @@ class _MihSearchMzansiState extends State { @override void initState() { super.initState(); + setState(() { + userSearch = widget.personalSearch; + mzansiSearchController.text = widget.startUpSearch ?? ""; + if (userSearch) { + futureUserSearchResults = + MihUserServices().searchUsers(mzansiSearchController.text, context); + } else { + futureBusinessSearchResults = MihBusinessDetailsServices() + .searchBusinesses(mzansiSearchController.text, context); + } + }); } @override @@ -246,6 +263,7 @@ class _MihSearchMzansiState extends State { BuildBusinessSearchResultsList( businessList: snapshot.requireData!, myLocation: myLocation, + startUpSearch: mzansiSearchController.text, ), ], ); diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart index 94fe27b5..c0137b42 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart @@ -12,6 +12,7 @@ import 'package:url_launcher/url_launcher.dart'; class MihBusinessCard extends StatefulWidget { final Business business; + final String? startUpSearch; // final String businessid; // final String businessName; // final String cellNumber; @@ -23,6 +24,7 @@ class MihBusinessCard extends StatefulWidget { const MihBusinessCard({ super.key, required this.business, + required this.startUpSearch, // required this.businessid, // required this.businessName, // required this.cellNumber, @@ -518,6 +520,7 @@ class _MihBusinessCardState extends State { businessReview: asyncSnapshot.data, screenWidth: width, readOnly: false, + startUpSearch: widget.startUpSearch, ); } else { return MihPackageAlert( diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_review_business_window.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_review_business_window.dart index 2254f42a..285b1215 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_review_business_window.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_review_business_window.dart @@ -2,6 +2,7 @@ import 'package:custom_rating_bar/custom_rating_bar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_speed_dial/flutter_speed_dial.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/business.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_review.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart'; @@ -21,12 +22,14 @@ class MihReviewBusinessWindow extends StatefulWidget { final BusinessReview? businessReview; final double screenWidth; final bool readOnly; + final String? startUpSearch; const MihReviewBusinessWindow({ super.key, required this.business, required this.businessReview, required this.screenWidth, required this.readOnly, + required this.startUpSearch, }); @override @@ -172,7 +175,16 @@ class _MihReviewBusinessWindowState extends State { .then((statusCode) { Navigator.of(context).pop(); //Remove loading dialog if (statusCode == 200) { - Navigator.of(context).pop(); + Navigator.of(context).pop(); //pop window + Navigator.of(context).pop(); //pop business profile + Navigator.of(context).pop(); //pop directory + Navigator.of(context).pushNamed( + '/mzansi-directory', + arguments: MzansiDirectoryArguments( + widget.startUpSearch, // startUpSearch + false, // personalSearch + ), + ); MihAlertServices().successAlert( "Successfully Updated Review!", "Your review has successfully been updated and will now appear under the business.", diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/mzansi_business_profile_view.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/mzansi_business_profile_view.dart index 164863cb..fdba7344 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/mzansi_business_profile_view.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/mzansi_business_profile_view.dart @@ -1,4 +1,4 @@ -import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.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_tools.dart'; @@ -7,10 +7,10 @@ import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profi import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_reviews.dart'; class MzansiBusinessProfileView extends StatefulWidget { - final Business business; + final BusinessViewArguments arguments; const MzansiBusinessProfileView({ super.key, - required this.business, + required this.arguments, }); @override @@ -68,8 +68,11 @@ class _MzansiBusinessProfileViewState extends State { List getToolBody() { List toolBodies = [ - MihBusinessDetailsView(business: widget.business), - MihBusinessReviews(business: widget.business), + MihBusinessDetailsView( + business: widget.arguments.business, + startUpSearch: widget.arguments.startUpSearch, + ), + MihBusinessReviews(business: widget.arguments.business), ]; return toolBodies; } diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart index acd79c0a..1a7c6c1c 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart @@ -690,6 +690,7 @@ class _MihBusinessDetailsState extends State { // : 0, // website: widget.arguments.business!.website, business: widget.arguments.business!, + startUpSearch: null, width: width, ), ), diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details_view.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details_view.dart index fb182804..9c34764a 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details_view.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details_view.dart @@ -11,9 +11,11 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_ class MihBusinessDetailsView extends StatefulWidget { final Business business; + final String? startUpSearch; const MihBusinessDetailsView({ super.key, required this.business, + required this.startUpSearch, }); @override @@ -163,6 +165,7 @@ class _MihBusinessDetailsViewState extends State { width: 700, child: MihBusinessCard( business: widget.business, + startUpSearch: widget.startUpSearch, // businessid: widget.business.business_id, // businessName: widget.business.Name, // cellNumber: widget.business.contact_no, diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_reviews.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_reviews.dart index fd4b3ad2..dbf8c871 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_reviews.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_reviews.dart @@ -39,6 +39,7 @@ class _MihBusinessReviewsState extends State { businessReview: businessReview, screenWidth: width, readOnly: true, + startUpSearch: null, ); }, );