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,40 +204,22 @@ 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( controller: searchController,
flex: 4, hintText: "Ask Mzansi",
child: SizedBox( prefixIcon: Icons.search,
child: MIHSearchField( prefixAltIcon: MihIcons.mzansiAi,
controller: searchController, fillColor:
hintText: "Search MIH Packages", MzanziInnovationHub.of(context)!.theme.secondaryColor(),
required: false, hintColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
editable: true, onPrefixIconTap: () {
onTap: () { print("Search Text: ${searchController.text}");
setState(() {}); },
}, 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(

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,38 +247,22 @@ 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( controller: searchController,
flex: 4, hintText: "Ask Mzansi",
child: SizedBox( prefixIcon: Icons.search,
child: MIHSearchField( prefixAltIcon: MihIcons.mzansiAi,
controller: searchController, fillColor:
hintText: "Search MIH Packages", MzanziInnovationHub.of(context)!.theme.secondaryColor(),
required: false, hintColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
editable: true, onPrefixIconTap: () {
onTap: () {}, 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(