fix state management

This commit is contained in:
2025-07-23 10:16:00 +02:00
parent 7f072534a7
commit 7dceccc170
12 changed files with 100 additions and 22 deletions

View File

@@ -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<Business> 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)!

View File

@@ -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<MzansiDirectory> createState() => _MzansiDirectoryState();
@@ -32,7 +37,10 @@ class _MzansiDirectoryState extends State<MzansiDirectory> {
List<Widget> getToolBody() {
List<Widget> toolBodies = [
MihSearchMzansi(),
MihSearchMzansi(
startUpSearch: widget.arguments.startUpSearch,
personalSearch: widget.arguments.personalSearch,
),
// MihContacts(),
// MihFavouriteBusinesses(),
];

View File

@@ -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<MzansiDirectoryTile> {
onTap: () {
Navigator.of(context).pushNamed(
'/mzansi-directory',
// arguments: WalletArguments(widget.signedInUser, 0),
arguments: MzansiDirectoryArguments(
null, // startUpSearch
true, // personalSearch
),
);
},
appName: "Mzansi Directory",

View File

@@ -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<MihSearchMzansi> createState() => _MihSearchMzansiState();
@@ -24,7 +30,7 @@ class MihSearchMzansi extends StatefulWidget {
class _MihSearchMzansiState extends State<MihSearchMzansi> {
final TextEditingController mzansiSearchController = TextEditingController();
final FocusNode searchFocusNode = FocusNode();
bool userSearch = true;
late bool userSearch;
Future<List<AppUser>?> futureUserSearchResults = Future.value();
Future<List<Business>?> futureBusinessSearchResults = Future.value();
late Future<Position?> futurePosition =
@@ -41,6 +47,17 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
@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<MihSearchMzansi> {
BuildBusinessSearchResultsList(
businessList: snapshot.requireData!,
myLocation: myLocation,
startUpSearch: mzansiSearchController.text,
),
],
);