add new search to MIH Home
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user