add new search to MIH Home

This commit is contained in:
2025-05-30 12:49:09 +02:00
parent 9bcbc230b9
commit 74605d34bf
2 changed files with 42 additions and 68 deletions

View File

@@ -1,7 +1,8 @@
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.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_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_search_bar.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart'; import 'package:mzansi_innovation_hub/mih_objects/business.dart';
@@ -43,6 +44,7 @@ class _MihBusinessHomeState extends State<MihBusinessHome>
double packageSize = 200; double packageSize = 200;
late final AnimationController _marqueeController; late final AnimationController _marqueeController;
late final ScrollController _scrollController; late final ScrollController _scrollController;
final FocusNode _searchFocusNode = FocusNode();
final String maintenanceMsg = final String maintenanceMsg =
"\tHeads up! We're doing maintenance on Thur, 15 May 2025 at 10 PM (CAT). MIH may be unavailable briefly."; "\tHeads up! We're doing maintenance on Thur, 15 May 2025 at 10 PM (CAT). MIH may be unavailable briefly.";
@@ -164,6 +166,9 @@ class _MihBusinessHomeState extends State<MihBusinessHome>
super.dispose(); super.dispose();
searchController.removeListener(searchPackage); searchController.removeListener(searchPackage);
searchController.dispose(); searchController.dispose();
_marqueeController.dispose();
_scrollController.dispose();
_searchFocusNode.dispose();
} }
@override @override
@@ -199,41 +204,23 @@ class _MihBusinessHomeState extends State<MihBusinessHome>
return MihSingleChildScroll( return MihSingleChildScroll(
child: Column( child: Column(
children: [ children: [
Row( const SizedBox(height: 10),
mainAxisAlignment: MainAxisAlignment.center, Padding(
mainAxisSize: MainAxisSize.max, padding: EdgeInsets.symmetric(horizontal: width / 20),
children: [ child: MihSearchBar(
Flexible(
flex: 4,
child: SizedBox(
child: MIHSearchField(
controller: searchController, controller: searchController,
hintText: "Search MIH Packages", hintText: "Ask Mzansi",
required: false, prefixIcon: Icons.search,
editable: true, prefixAltIcon: MihIcons.mzansiAi,
onTap: () { fillColor:
setState(() {}); MzanziInnovationHub.of(context)!.theme.secondaryColor(),
hintColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
onPrefixIconTap: () {
print("Search Text: ${searchController.text}");
}, },
searchFocusNode: _searchFocusNode,
), ),
), ),
),
Flexible(
flex: 1,
child: IconButton(
//padding: const EdgeInsets.all(0),
onPressed: () {
setState(() {
searchController.clear();
});
},
icon: const Icon(
Icons.filter_alt_off,
size: 30,
),
),
),
],
),
const SizedBox(height: 10), const SizedBox(height: 10),
ValueListenableBuilder( ValueListenableBuilder(
valueListenable: searchPackageName, valueListenable: searchPackageName,

View File

@@ -1,8 +1,9 @@
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.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_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.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';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_search_bar.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart'; import 'package:mzansi_innovation_hub/mih_objects/business.dart';
@@ -51,6 +52,7 @@ class _MihPersonalHomeState extends State<MihPersonalHome>
double packageSize = 200; double packageSize = 200;
late final AnimationController _marqueeController; late final AnimationController _marqueeController;
late final ScrollController _scrollController; late final ScrollController _scrollController;
final FocusNode _searchFocusNode = FocusNode();
final String maintenanceMsg = final String maintenanceMsg =
"\tHeads up! We're doing maintenance on Thur, 15 May 2025 at 10 PM (CAT). MIH may be unavailable briefly."; "\tHeads up! We're doing maintenance on Thur, 15 May 2025 at 10 PM (CAT). MIH may be unavailable briefly.";
@@ -206,6 +208,7 @@ class _MihPersonalHomeState extends State<MihPersonalHome>
super.dispose(); super.dispose();
searchController.removeListener(searchPackage); searchController.removeListener(searchPackage);
searchController.dispose(); searchController.dispose();
_searchFocusNode.dispose();
_marqueeController.dispose(); _marqueeController.dispose();
_scrollController.dispose(); _scrollController.dispose();
} }
@@ -244,39 +247,23 @@ class _MihPersonalHomeState extends State<MihPersonalHome>
return MihSingleChildScroll( return MihSingleChildScroll(
child: Column( child: Column(
children: [ children: [
Row( const SizedBox(height: 10),
mainAxisAlignment: MainAxisAlignment.center, Padding(
mainAxisSize: MainAxisSize.max, padding: EdgeInsets.symmetric(horizontal: width / 20),
children: [ child: MihSearchBar(
Flexible(
flex: 4,
child: SizedBox(
child: MIHSearchField(
controller: searchController, controller: searchController,
hintText: "Search MIH Packages", hintText: "Ask Mzansi",
required: false, prefixIcon: Icons.search,
editable: true, prefixAltIcon: MihIcons.mzansiAi,
onTap: () {}, fillColor:
), MzanziInnovationHub.of(context)!.theme.secondaryColor(),
), hintColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
), onPrefixIconTap: () {
Flexible( print("Search Text: ${searchController.text}");
flex: 1,
child: IconButton(
//padding: const EdgeInsets.all(0),
onPressed: () {
setState(() {
searchController.clear();
});
}, },
icon: const Icon( searchFocusNode: _searchFocusNode,
Icons.filter_alt_off,
size: 30,
), ),
), ),
),
],
),
const SizedBox(height: 10), const SizedBox(height: 10),
ValueListenableBuilder( ValueListenableBuilder(
valueListenable: searchPackageName, valueListenable: searchPackageName,