fix state management
This commit is contained in:
@@ -31,6 +31,16 @@ class BusinessArguments {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class BusinessViewArguments {
|
||||||
|
final Business business;
|
||||||
|
final String? startUpSearch;
|
||||||
|
|
||||||
|
BusinessViewArguments(
|
||||||
|
this.business,
|
||||||
|
this.startUpSearch,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
class HomeArguments {
|
class HomeArguments {
|
||||||
final AppUser signedInUser;
|
final AppUser signedInUser;
|
||||||
final BusinessUser? businessUser;
|
final BusinessUser? businessUser;
|
||||||
@@ -218,6 +228,16 @@ class MzansiAiArguments {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class MzansiDirectoryArguments {
|
||||||
|
final String? startUpSearch;
|
||||||
|
final bool personalSearch;
|
||||||
|
|
||||||
|
MzansiDirectoryArguments(
|
||||||
|
this.startUpSearch,
|
||||||
|
this.personalSearch,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
class TestArguments {
|
class TestArguments {
|
||||||
final AppUser user;
|
final AppUser user;
|
||||||
final Business? business;
|
final Business? business;
|
||||||
|
|||||||
@@ -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_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/app_user.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.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_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_components/mih_pop_up_messages/mih_notification_message.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/about_mih/about_mih.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
|
// break; // Use break and fall through to _errorRoute if argument type is wrong
|
||||||
case AppRoutes.mzansiDirectory:
|
case AppRoutes.mzansiDirectory:
|
||||||
// if (args is AuthArguments) {
|
if (args is MzansiDirectoryArguments) {
|
||||||
return MaterialPageRoute(
|
return MaterialPageRoute(
|
||||||
settings: settings,
|
settings: settings,
|
||||||
builder: (_) => MzansiDirectory(),
|
builder: (_) => MzansiDirectory(arguments: args),
|
||||||
);
|
);
|
||||||
// }
|
}
|
||||||
// break;
|
break;
|
||||||
case AppRoutes.notifications:
|
case AppRoutes.notifications:
|
||||||
if (args is NotificationArguments) {
|
if (args is NotificationArguments) {
|
||||||
return MaterialPageRoute(
|
return MaterialPageRoute(
|
||||||
@@ -188,10 +187,10 @@ class RouteGenerator {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case AppRoutes.businessProfileView:
|
case AppRoutes.businessProfileView:
|
||||||
if (args is Business) {
|
if (args is BusinessViewArguments) {
|
||||||
return MaterialPageRoute(
|
return MaterialPageRoute(
|
||||||
settings: settings,
|
settings: settings,
|
||||||
builder: (_) => MzansiBusinessProfileView(business: args),
|
builder: (_) => MzansiBusinessProfileView(arguments: args),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -1,15 +1,18 @@
|
|||||||
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_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.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_business_profile_preview.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_business_profile_preview.dart';
|
||||||
|
|
||||||
class BuildBusinessSearchResultsList extends StatefulWidget {
|
class BuildBusinessSearchResultsList extends StatefulWidget {
|
||||||
final List<Business> businessList;
|
final List<Business> businessList;
|
||||||
final String myLocation;
|
final String myLocation;
|
||||||
|
final String? startUpSearch;
|
||||||
const BuildBusinessSearchResultsList({
|
const BuildBusinessSearchResultsList({
|
||||||
super.key,
|
super.key,
|
||||||
required this.businessList,
|
required this.businessList,
|
||||||
required this.myLocation,
|
required this.myLocation,
|
||||||
|
required this.startUpSearch,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -37,7 +40,10 @@ class _BuildBusinessSearchResultsListState
|
|||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/business-profile/view',
|
'/business-profile/view',
|
||||||
arguments: widget.businessList[index],
|
arguments: BusinessViewArguments(
|
||||||
|
widget.businessList[index],
|
||||||
|
widget.startUpSearch,
|
||||||
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
splashColor: MzansiInnovationHub.of(context)!
|
splashColor: MzansiInnovationHub.of(context)!
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
import 'package:flutter/material.dart';
|
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.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_action.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.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';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart';
|
||||||
|
|
||||||
class MzansiDirectory extends StatefulWidget {
|
class MzansiDirectory extends StatefulWidget {
|
||||||
const MzansiDirectory({super.key});
|
final MzansiDirectoryArguments arguments;
|
||||||
|
const MzansiDirectory({
|
||||||
|
super.key,
|
||||||
|
required this.arguments,
|
||||||
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<MzansiDirectory> createState() => _MzansiDirectoryState();
|
State<MzansiDirectory> createState() => _MzansiDirectoryState();
|
||||||
@@ -32,7 +37,10 @@ class _MzansiDirectoryState extends State<MzansiDirectory> {
|
|||||||
|
|
||||||
List<Widget> getToolBody() {
|
List<Widget> getToolBody() {
|
||||||
List<Widget> toolBodies = [
|
List<Widget> toolBodies = [
|
||||||
MihSearchMzansi(),
|
MihSearchMzansi(
|
||||||
|
startUpSearch: widget.arguments.startUpSearch,
|
||||||
|
personalSearch: widget.arguments.personalSearch,
|
||||||
|
),
|
||||||
// MihContacts(),
|
// MihContacts(),
|
||||||
// MihFavouriteBusinesses(),
|
// MihFavouriteBusinesses(),
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
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_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_icons.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart';
|
||||||
|
|
||||||
@@ -21,7 +22,10 @@ class _MzansiDirectoryTileState extends State<MzansiDirectoryTile> {
|
|||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
Navigator.of(context).pushNamed(
|
||||||
'/mzansi-directory',
|
'/mzansi-directory',
|
||||||
// arguments: WalletArguments(widget.signedInUser, 0),
|
arguments: MzansiDirectoryArguments(
|
||||||
|
null, // startUpSearch
|
||||||
|
true, // personalSearch
|
||||||
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
appName: "Mzansi Directory",
|
appName: "Mzansi Directory",
|
||||||
|
|||||||
@@ -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';
|
import 'package:mzansi_innovation_hub/mih_services/mih_user_services.dart';
|
||||||
|
|
||||||
class MihSearchMzansi extends StatefulWidget {
|
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
|
@override
|
||||||
State<MihSearchMzansi> createState() => _MihSearchMzansiState();
|
State<MihSearchMzansi> createState() => _MihSearchMzansiState();
|
||||||
@@ -24,7 +30,7 @@ class MihSearchMzansi extends StatefulWidget {
|
|||||||
class _MihSearchMzansiState extends State<MihSearchMzansi> {
|
class _MihSearchMzansiState extends State<MihSearchMzansi> {
|
||||||
final TextEditingController mzansiSearchController = TextEditingController();
|
final TextEditingController mzansiSearchController = TextEditingController();
|
||||||
final FocusNode searchFocusNode = FocusNode();
|
final FocusNode searchFocusNode = FocusNode();
|
||||||
bool userSearch = true;
|
late bool userSearch;
|
||||||
Future<List<AppUser>?> futureUserSearchResults = Future.value();
|
Future<List<AppUser>?> futureUserSearchResults = Future.value();
|
||||||
Future<List<Business>?> futureBusinessSearchResults = Future.value();
|
Future<List<Business>?> futureBusinessSearchResults = Future.value();
|
||||||
late Future<Position?> futurePosition =
|
late Future<Position?> futurePosition =
|
||||||
@@ -41,6 +47,17 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.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
|
@override
|
||||||
@@ -246,6 +263,7 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
|
|||||||
BuildBusinessSearchResultsList(
|
BuildBusinessSearchResultsList(
|
||||||
businessList: snapshot.requireData!,
|
businessList: snapshot.requireData!,
|
||||||
myLocation: myLocation,
|
myLocation: myLocation,
|
||||||
|
startUpSearch: mzansiSearchController.text,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import 'package:url_launcher/url_launcher.dart';
|
|||||||
|
|
||||||
class MihBusinessCard extends StatefulWidget {
|
class MihBusinessCard extends StatefulWidget {
|
||||||
final Business business;
|
final Business business;
|
||||||
|
final String? startUpSearch;
|
||||||
// final String businessid;
|
// final String businessid;
|
||||||
// final String businessName;
|
// final String businessName;
|
||||||
// final String cellNumber;
|
// final String cellNumber;
|
||||||
@@ -23,6 +24,7 @@ class MihBusinessCard extends StatefulWidget {
|
|||||||
const MihBusinessCard({
|
const MihBusinessCard({
|
||||||
super.key,
|
super.key,
|
||||||
required this.business,
|
required this.business,
|
||||||
|
required this.startUpSearch,
|
||||||
// required this.businessid,
|
// required this.businessid,
|
||||||
// required this.businessName,
|
// required this.businessName,
|
||||||
// required this.cellNumber,
|
// required this.cellNumber,
|
||||||
@@ -518,6 +520,7 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
|
|||||||
businessReview: asyncSnapshot.data,
|
businessReview: asyncSnapshot.data,
|
||||||
screenWidth: width,
|
screenWidth: width,
|
||||||
readOnly: false,
|
readOnly: false,
|
||||||
|
startUpSearch: widget.startUpSearch,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return MihPackageAlert(
|
return MihPackageAlert(
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import 'package:custom_rating_bar/custom_rating_bar.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
|
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
|
||||||
import 'package:mzansi_innovation_hub/main.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.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_review.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';
|
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 BusinessReview? businessReview;
|
||||||
final double screenWidth;
|
final double screenWidth;
|
||||||
final bool readOnly;
|
final bool readOnly;
|
||||||
|
final String? startUpSearch;
|
||||||
const MihReviewBusinessWindow({
|
const MihReviewBusinessWindow({
|
||||||
super.key,
|
super.key,
|
||||||
required this.business,
|
required this.business,
|
||||||
required this.businessReview,
|
required this.businessReview,
|
||||||
required this.screenWidth,
|
required this.screenWidth,
|
||||||
required this.readOnly,
|
required this.readOnly,
|
||||||
|
required this.startUpSearch,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -172,7 +175,16 @@ class _MihReviewBusinessWindowState extends State<MihReviewBusinessWindow> {
|
|||||||
.then((statusCode) {
|
.then((statusCode) {
|
||||||
Navigator.of(context).pop(); //Remove loading dialog
|
Navigator.of(context).pop(); //Remove loading dialog
|
||||||
if (statusCode == 200) {
|
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(
|
MihAlertServices().successAlert(
|
||||||
"Successfully Updated Review!",
|
"Successfully Updated Review!",
|
||||||
"Your review has successfully been updated and will now appear under the business.",
|
"Your review has successfully been updated and will now appear under the business.",
|
||||||
|
|||||||
@@ -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.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_action.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.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';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_reviews.dart';
|
||||||
|
|
||||||
class MzansiBusinessProfileView extends StatefulWidget {
|
class MzansiBusinessProfileView extends StatefulWidget {
|
||||||
final Business business;
|
final BusinessViewArguments arguments;
|
||||||
const MzansiBusinessProfileView({
|
const MzansiBusinessProfileView({
|
||||||
super.key,
|
super.key,
|
||||||
required this.business,
|
required this.arguments,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -68,8 +68,11 @@ class _MzansiBusinessProfileViewState extends State<MzansiBusinessProfileView> {
|
|||||||
|
|
||||||
List<Widget> getToolBody() {
|
List<Widget> getToolBody() {
|
||||||
List<Widget> toolBodies = [
|
List<Widget> toolBodies = [
|
||||||
MihBusinessDetailsView(business: widget.business),
|
MihBusinessDetailsView(
|
||||||
MihBusinessReviews(business: widget.business),
|
business: widget.arguments.business,
|
||||||
|
startUpSearch: widget.arguments.startUpSearch,
|
||||||
|
),
|
||||||
|
MihBusinessReviews(business: widget.arguments.business),
|
||||||
];
|
];
|
||||||
return toolBodies;
|
return toolBodies;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -690,6 +690,7 @@ class _MihBusinessDetailsState extends State<MihBusinessDetails> {
|
|||||||
// : 0,
|
// : 0,
|
||||||
// website: widget.arguments.business!.website,
|
// website: widget.arguments.business!.website,
|
||||||
business: widget.arguments.business!,
|
business: widget.arguments.business!,
|
||||||
|
startUpSearch: null,
|
||||||
width: width,
|
width: width,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -11,9 +11,11 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
|||||||
|
|
||||||
class MihBusinessDetailsView extends StatefulWidget {
|
class MihBusinessDetailsView extends StatefulWidget {
|
||||||
final Business business;
|
final Business business;
|
||||||
|
final String? startUpSearch;
|
||||||
const MihBusinessDetailsView({
|
const MihBusinessDetailsView({
|
||||||
super.key,
|
super.key,
|
||||||
required this.business,
|
required this.business,
|
||||||
|
required this.startUpSearch,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -163,6 +165,7 @@ class _MihBusinessDetailsViewState extends State<MihBusinessDetailsView> {
|
|||||||
width: 700,
|
width: 700,
|
||||||
child: MihBusinessCard(
|
child: MihBusinessCard(
|
||||||
business: widget.business,
|
business: widget.business,
|
||||||
|
startUpSearch: widget.startUpSearch,
|
||||||
// businessid: widget.business.business_id,
|
// businessid: widget.business.business_id,
|
||||||
// businessName: widget.business.Name,
|
// businessName: widget.business.Name,
|
||||||
// cellNumber: widget.business.contact_no,
|
// cellNumber: widget.business.contact_no,
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ class _MihBusinessReviewsState extends State<MihBusinessReviews> {
|
|||||||
businessReview: businessReview,
|
businessReview: businessReview,
|
||||||
screenWidth: width,
|
screenWidth: width,
|
||||||
readOnly: true,
|
readOnly: true,
|
||||||
|
startUpSearch: null,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user