add new search to Mzansi Wallet

This commit is contained in:
2025-05-30 12:58:09 +02:00
parent 74605d34bf
commit ab147f48a8

View File

@@ -3,13 +3,13 @@ import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_apis/mih_mzansi_wallet_apis.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_mzansi_wallet_apis.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_number_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_number_input.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_text_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_text_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_button.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_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_floating_menu.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_floating_menu.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_search_bar.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
@@ -35,6 +35,7 @@ class _MihCardsState extends State<MihCards> {
final TextEditingController _nicknameController = TextEditingController(); final TextEditingController _nicknameController = TextEditingController();
final TextEditingController cardNumberController = TextEditingController(); final TextEditingController cardNumberController = TextEditingController();
final TextEditingController cardSearchController = TextEditingController(); final TextEditingController cardSearchController = TextEditingController();
final FocusNode searchFocusNode = FocusNode();
late Future<List<MIHLoyaltyCard>> cardList; late Future<List<MIHLoyaltyCard>> cardList;
List<MIHLoyaltyCard> listOfCards = []; List<MIHLoyaltyCard> listOfCards = [];
//bool showSelectedCardType = false; //bool showSelectedCardType = false;
@@ -253,6 +254,7 @@ class _MihCardsState extends State<MihCards> {
cardSearchController.dispose(); cardSearchController.dispose();
searchShopName.dispose(); searchShopName.dispose();
_nicknameController.dispose(); _nicknameController.dispose();
searchFocusNode.dispose();
shopName.dispose(); shopName.dispose();
super.dispose(); super.dispose();
} }
@@ -267,46 +269,37 @@ class _MihCardsState extends State<MihCards> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final Size size = MediaQuery.sizeOf(context);
final double width = size.width;
return MihPackageToolBody( return MihPackageToolBody(
borderOn: false, borderOn: false,
bodyItem: getBody(), bodyItem: getBody(width),
); );
} }
Widget getBody() { Widget getBody(double width) {
return Stack( return Stack(
children: [ children: [
MihSingleChildScroll( MihSingleChildScroll(
child: Column( child: Column(
children: [ children: [
Row( Padding(
mainAxisAlignment: MainAxisAlignment.center, padding: EdgeInsets.symmetric(horizontal: width / 20),
children: [ child: MihSearchBar(
Flexible(
flex: 4,
child: SizedBox(
height: 50,
child: MIHSearchField(
controller: cardSearchController, controller: cardSearchController,
hintText: "Shop Name", hintText: "Search Cards",
required: false, // prefixIcon: Icons.search,
editable: true, prefixIcon: Icons.search,
onTap: () {}, fillColor:
), MzanziInnovationHub.of(context)!.theme.secondaryColor(),
), hintColor:
), MzanziInnovationHub.of(context)!.theme.primaryColor(),
Flexible( onPrefixIconTap: () {
flex: 1, print("Search Icon Pressed: ${cardSearchController.text}");
child: IconButton(
onPressed: () {
FocusScope.of(context).unfocus();
cardSearchController.clear();
}, },
icon: const Icon(Icons.filter_alt_off), searchFocusNode: searchFocusNode,
), ),
), ),
],
),
const SizedBox(height: 10), const SizedBox(height: 10),
FutureBuilder( FutureBuilder(
future: cardList, future: cardList,