diff --git a/Frontend/lib/mih_config/mih_go_router.dart b/Frontend/lib/mih_config/mih_go_router.dart index ae242b82..c59ad602 100644 --- a/Frontend/lib/mih_config/mih_go_router.dart +++ b/Frontend/lib/mih_config/mih_go_router.dart @@ -276,8 +276,7 @@ class MihGoRouter { path: MihGoRouterPaths.mzansiWallet, builder: (BuildContext context, GoRouterState state) { KenLogger.success("MihGoRouter: mzansiWallet"); - final WalletArguments? args = state.extra as WalletArguments?; - if (args == null) { + if (context.watch().business == null) { WidgetsBinding.instance.addPostFrameCallback((_) { context.go(MihGoRouterPaths.mihHome); }); @@ -285,7 +284,6 @@ class MihGoRouter { } return MihWallet( key: UniqueKey(), - arguments: args, ); }, ), diff --git a/Frontend/lib/mih_packages/mih_home/package_tools/mih_personal_home.dart b/Frontend/lib/mih_packages/mih_home/package_tools/mih_personal_home.dart index 79120d66..55c42822 100644 --- a/Frontend/lib/mih_packages/mih_home/package_tools/mih_personal_home.dart +++ b/Frontend/lib/mih_packages/mih_home/package_tools/mih_personal_home.dart @@ -79,8 +79,6 @@ class _MihPersonalHomeState extends State List> temp = []; temp.add({ "Setup Profile": MzansiSetupProfileTile( - signedInUser: widget.signedInUser, - propicFile: widget.propicFile, packageSize: packageSize, ) }); @@ -92,8 +90,6 @@ class _MihPersonalHomeState extends State //=============== Mzansi Profile =============== temp.add({ "Mzansi Profile": MzansiProfileTile( - signedInUser: widget.signedInUser, - propicFile: widget.propicFile, packageSize: packageSize, ) }); diff --git a/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart b/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart index 730b1f0e..3707b877 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_profile_tile.dart @@ -2,20 +2,14 @@ import 'package:go_router/go_router.dart'; import 'package:mzansi_innovation_hub/main.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_icons.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart'; import 'package:flutter/material.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; class MzansiProfileTile extends StatefulWidget { - final AppUser signedInUser; - final ImageProvider? propicFile; final double packageSize; const MzansiProfileTile({ super.key, - required this.signedInUser, - required this.propicFile, required this.packageSize, }); @@ -31,10 +25,6 @@ class _MzansiProfileTileState extends State { onTap: () { context.goNamed( 'mzansiProfileManage', - extra: AppProfileUpdateArguments( - widget.signedInUser, - widget.propicFile, - ), ); }, appName: "Mzansi Profile", diff --git a/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_setup_profile_tile.dart b/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_setup_profile_tile.dart index 37fff79c..abfdf4bf 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_setup_profile_tile.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tiles/mzansi_setup_profile_tile.dart @@ -2,20 +2,14 @@ import 'package:go_router/go_router.dart'; import 'package:mzansi_innovation_hub/main.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_icons.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart'; import 'package:flutter/material.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; class MzansiSetupProfileTile extends StatefulWidget { - final AppUser signedInUser; - final ImageProvider? propicFile; final double packageSize; const MzansiSetupProfileTile({ super.key, - required this.signedInUser, - required this.propicFile, required this.packageSize, }); @@ -30,10 +24,6 @@ class _MzansiSetupProfileTileState extends State { onTap: () { context.goNamed( 'mzansiProfileManage', - extra: AppProfileUpdateArguments( - widget.signedInUser, - widget.propicFile, - ), ); }, appName: "Set Up Profile", diff --git a/Frontend/lib/mih_packages/mzansi_wallet/builder/build_loyalty_card_list.dart b/Frontend/lib/mih_packages/mzansi_wallet/builder/build_loyalty_card_list.dart index 90ea7719..f44e7afb 100644 --- a/Frontend/lib/mih_packages/mzansi_wallet/builder/build_loyalty_card_list.dart +++ b/Frontend/lib/mih_packages/mzansi_wallet/builder/build_loyalty_card_list.dart @@ -7,6 +7,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart'; @@ -18,7 +19,6 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_ 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_text_form_field.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_delete_message.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/loyalty_card.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/components/mih_card_display.dart'; import 'package:flutter/material.dart'; @@ -27,7 +27,6 @@ import 'package:provider/provider.dart'; import 'package:screen_brightness/screen_brightness.dart'; class BuildLoyaltyCardList extends StatefulWidget { - final AppUser signedInUser; final List cardList; final int navIndex; final bool favouritesMode; @@ -35,7 +34,6 @@ class BuildLoyaltyCardList extends StatefulWidget { const BuildLoyaltyCardList({ super.key, - required this.signedInUser, required this.cardList, required this.navIndex, required this.favouritesMode, @@ -60,7 +58,8 @@ class _BuildLoyaltyCardListState extends State { ); } - void editCardWindow(BuildContext ctxt, int index, double width) { + void editCardWindow(MzansiProfileProvider mzansiProfileProvider, + BuildContext ctxt, int index, double width) { showDialog( context: context, barrierDismissible: false, @@ -145,7 +144,7 @@ class _BuildLoyaltyCardListState extends State { if (_formKey.currentState!.validate()) { int statusCode = await MIHMzansiWalletApis .updateLoyaltyCardAPICall( - widget.signedInUser, + mzansiProfileProvider.user!, widget.cardList[index].idloyalty_cards, widget.cardList[index].shop_name, widget.cardList[index].favourite, @@ -211,7 +210,8 @@ class _BuildLoyaltyCardListState extends State { ); } - void deleteCardWindow(BuildContext ctxt, int index) { + void deleteCardWindow(MzansiProfileProvider mzansiProfileProvider, + BuildContext ctxt, int index) { showDialog( context: context, barrierDismissible: false, @@ -221,7 +221,7 @@ class _BuildLoyaltyCardListState extends State { onTap: () async { int statusCode = await MIHMzansiWalletApis.deleteLoyaltyCardAPICall( - widget.signedInUser, + mzansiProfileProvider.user!, widget.cardList[index].idloyalty_cards, context, ); @@ -237,7 +237,8 @@ class _BuildLoyaltyCardListState extends State { ); } - void addToFavCardWindow(BuildContext ctxt, int index) { + void addToFavCardWindow(MzansiProfileProvider mzansiProfileProvider, + BuildContext ctxt, int index) { showDialog( context: context, barrierDismissible: false, @@ -269,7 +270,7 @@ class _BuildLoyaltyCardListState extends State { onPressed: () async { int statusCode = await MIHMzansiWalletApis.updateLoyaltyCardAPICall( - widget.signedInUser, + mzansiProfileProvider.user!, widget.cardList[index].idloyalty_cards, widget.cardList[index].shop_name, "Yes", @@ -282,7 +283,9 @@ class _BuildLoyaltyCardListState extends State { context.pop(); context.pop(); await MIHMzansiWalletApis.getFavouriteLoyaltyCards( - widget.signedInUser.app_id, context); + mzansiProfileProvider.user!.app_id, + context, + ); context.read().setToolIndex(1); } else { internetConnectionPopUp(); @@ -319,7 +322,8 @@ class _BuildLoyaltyCardListState extends State { ); } - void removeFromFavCardWindow(BuildContext ctxt, int index) { + void removeFromFavCardWindow(MzansiProfileProvider mzansiProfileProvider, + BuildContext ctxt, int index) { showDialog( context: context, barrierDismissible: false, @@ -351,7 +355,7 @@ class _BuildLoyaltyCardListState extends State { onPressed: () async { int statusCode = await MIHMzansiWalletApis.updateLoyaltyCardAPICall( - widget.signedInUser, + mzansiProfileProvider.user!, widget.cardList[index].idloyalty_cards, widget.cardList[index].shop_name, "", @@ -364,7 +368,9 @@ class _BuildLoyaltyCardListState extends State { context.pop(); context.pop(); await MIHMzansiWalletApis.getFavouriteLoyaltyCards( - widget.signedInUser.app_id, context); + mzansiProfileProvider.user!.app_id, + context, + ); context.read().setToolIndex(0); } else { internetConnectionPopUp(); @@ -390,7 +396,8 @@ class _BuildLoyaltyCardListState extends State { ); } - void viewCardWindow(int index, double width) { + void viewCardWindow( + MzansiProfileProvider mzansiProfileProvider, int index, double width) { //print(widget.cardList[index].card_number); String formattedCardNumber = ""; for (int i = 0; i <= widget.cardList[index].card_number.length - 1; i++) { @@ -432,9 +439,17 @@ class _BuildLoyaltyCardListState extends State { MzansiInnovationHub.of(context)!.theme.mode == "Dark"), onTap: () { if (widget.cardList[index].favourite == "") { - addToFavCardWindow(context, index); + addToFavCardWindow( + mzansiProfileProvider, + context, + index, + ); } else { - removeFromFavCardWindow(context, index); + removeFromFavCardWindow( + mzansiProfileProvider, + context, + index, + ); } }, ), @@ -459,7 +474,12 @@ class _BuildLoyaltyCardListState extends State { _cardNumberController.text = widget.cardList[index].card_number; _nicknameController.text = widget.cardList[index].nickname; }); - editCardWindow(context, index, width); + editCardWindow( + mzansiProfileProvider, + context, + index, + width, + ); }, ), SpeedDialChild( @@ -479,7 +499,11 @@ class _BuildLoyaltyCardListState extends State { backgroundColor: MihColors.getGreenColor( MzansiInnovationHub.of(context)!.theme.mode == "Dark"), onTap: () { - deleteCardWindow(context, index); + deleteCardWindow( + mzansiProfileProvider, + context, + index, + ); }, ), ], @@ -681,29 +705,38 @@ class _BuildLoyaltyCardListState extends State { // final double width = size.width; //final double height = size.height; if (widget.cardList.isNotEmpty) { - return GridView.builder( - physics: const NeverScrollableScrollPhysics(), - shrinkWrap: true, - padding: EdgeInsets.only( - left: getHorizontalPaddingSize(size), - right: getHorizontalPaddingSize(size), - ), - itemCount: widget.cardList.length, - gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent( - mainAxisSpacing: 0, - crossAxisSpacing: 5, - maxCrossAxisExtent: 200, - ), - itemBuilder: (context, index) { - return GestureDetector( - child: MihCardDisplay( - shopName: widget.cardList[index].shop_name, - nickname: widget.cardList[index].nickname, - height: 100, + return Consumer( + builder: (BuildContext context, + MzansiProfileProvider mzansiProfileProvider, Widget? child) { + return GridView.builder( + physics: const NeverScrollableScrollPhysics(), + shrinkWrap: true, + padding: EdgeInsets.only( + left: getHorizontalPaddingSize(size), + right: getHorizontalPaddingSize(size), ), - onTap: () { - setScreenBrightness(1.0); - viewCardWindow(index, size.width); + itemCount: widget.cardList.length, + gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent( + mainAxisSpacing: 0, + crossAxisSpacing: 5, + maxCrossAxisExtent: 200, + ), + itemBuilder: (context, index) { + return GestureDetector( + child: MihCardDisplay( + shopName: widget.cardList[index].shop_name, + nickname: widget.cardList[index].nickname, + height: 100, + ), + onTap: () { + setScreenBrightness(1.0); + viewCardWindow( + mzansiProfileProvider, + index, + size.width, + ); + }, + ); }, ); }, diff --git a/Frontend/lib/mih_packages/mzansi_wallet/components/mih_add_card_window.dart b/Frontend/lib/mih_packages/mzansi_wallet/components/mih_add_card_window.dart index 9d990cf2..b1e69c35 100644 --- a/Frontend/lib/mih_packages/mzansi_wallet/components/mih_add_card_window.dart +++ b/Frontend/lib/mih_packages/mzansi_wallet/components/mih_add_card_window.dart @@ -2,8 +2,6 @@ import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:ken_logger/ken_logger.dart'; import 'package:mzansi_innovation_hub/main.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.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_dropdwn_field.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_form.dart'; @@ -11,18 +9,17 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_ 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_text_form_field.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/components/mih_card_display.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_wallet_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart'; +import 'package:provider/provider.dart'; class MihAddCardWindow extends StatefulWidget { - final AppUser signedInUser; - const MihAddCardWindow({ super.key, - required this.signedInUser, }); @override @@ -77,7 +74,6 @@ class _MihAddCardWindowState extends State { context.pop(); context.goNamed( 'mzansiWallet', - extra: WalletArguments(widget.signedInUser, 0), ); }, buttonColor: MihColors.getGreenColor( @@ -145,207 +141,217 @@ class _MihAddCardWindowState extends State { padding: MzansiInnovationHub.of(context)!.theme.screenType == "desktop" ? EdgeInsets.symmetric(horizontal: width * 0.05) : EdgeInsets.symmetric(horizontal: width * 0), - child: Column( - children: [ - MihForm( - formKey: _formKey, - formFields: [ - MihDropdownField( - controller: _shopController, - hintText: "Shop Name", - editable: true, - enableSearch: true, - validator: (value) { - return MihValidationServices().isEmpty(value); - }, - requiredText: true, - dropdownOptions: const [ - "+More", - "Apple Tree", - "+More", - "Apple Tree", - "Auchan", - "Best Before", - "Big Save", - "Boxer", - "BP", - "Builders Warehouse", - "Checkers", - "Choppies", - "Clicks", - "Continente", - "Cotton:On", - "Carrefour", - "Dis-Chem", - "Edgars", - "Engen", - "Eskom", - "Exclusive Books", - "Fresh Stop", - "Fresmart", - "Infinity", - "Jet", - "Justrite", - "Kero", - "Leroy Merlin", - "Makro", - "Naivas", - "OK Foods", - "Panarottis", - "Pick n Pay", - "PnA", - "PQ Clothing", - "Rage", - "Sefalana", - "Sasol", - "Shell", - "Shoprite", - "Signature Cosmetics & Fragrances", - "Spar", - "Spur", - "TFG Group", - "Total Energies", - "Toys R Us", - "Woermann Brock", - "Woolworths" - ], - ), - ValueListenableBuilder( - valueListenable: _shopName, - builder: (BuildContext context, String value, Widget? child) { - return Visibility( - visible: value != "", - child: Column( - children: [ - const SizedBox(height: 10), - MihCardDisplay( - shopName: _shopName.value, - nickname: "", - height: 200), - ], - ), - ); - }, - ), - const SizedBox(height: 10), - MihTextFormField( - fillColor: MihColors.getSecondaryColor( - MzansiInnovationHub.of(context)!.theme.mode == "Dark"), - inputColor: MihColors.getPrimaryColor( - MzansiInnovationHub.of(context)!.theme.mode == "Dark"), - controller: _nicknameController, - multiLineInput: false, - requiredText: false, - hintText: "Card Title", - ), - const SizedBox(height: 10), - Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.end, - mainAxisSize: MainAxisSize.max, - children: [ - Flexible( - child: MihTextFormField( - fillColor: MihColors.getSecondaryColor( - MzansiInnovationHub.of(context)!.theme.mode == - "Dark"), - inputColor: MihColors.getPrimaryColor( - MzansiInnovationHub.of(context)!.theme.mode == - "Dark"), - controller: _cardNumberController, - multiLineInput: false, - requiredText: true, - hintText: "Card Number", - numberMode: true, - validator: (value) { - return MihValidationServices().isEmpty(value); - }, - ), + child: Consumer( + builder: (BuildContext context, + MzansiProfileProvider mzansiProfileProvider, Widget? child) { + return Column( + children: [ + MihForm( + formKey: _formKey, + formFields: [ + MihDropdownField( + controller: _shopController, + hintText: "Shop Name", + editable: true, + enableSearch: true, + validator: (value) { + return MihValidationServices().isEmpty(value); + }, + requiredText: true, + dropdownOptions: const [ + "+More", + "Apple Tree", + "+More", + "Apple Tree", + "Auchan", + "Best Before", + "Big Save", + "Boxer", + "BP", + "Builders Warehouse", + "Checkers", + "Choppies", + "Clicks", + "Continente", + "Cotton:On", + "Carrefour", + "Dis-Chem", + "Edgars", + "Engen", + "Eskom", + "Exclusive Books", + "Fresh Stop", + "Fresmart", + "Infinity", + "Jet", + "Justrite", + "Kero", + "Leroy Merlin", + "Makro", + "Naivas", + "OK Foods", + "Panarottis", + "Pick n Pay", + "PnA", + "PQ Clothing", + "Rage", + "Sefalana", + "Sasol", + "Shell", + "Shoprite", + "Signature Cosmetics & Fragrances", + "Spar", + "Spur", + "TFG Group", + "Total Energies", + "Toys R Us", + "Woermann Brock", + "Woolworths" + ], ), - const SizedBox(width: 20), - MihButton( - onPressed: () { - context.pushNamed( - "barcodeScanner", - extra: _cardNumberController, // Use local controller + ValueListenableBuilder( + valueListenable: _shopName, + builder: + (BuildContext context, String value, Widget? child) { + return Visibility( + visible: value != "", + child: Column( + children: [ + const SizedBox(height: 10), + MihCardDisplay( + shopName: _shopName.value, + nickname: "", + height: 200), + ], + ), ); }, - buttonColor: MihColors.getSecondaryColor( + ), + const SizedBox(height: 10), + MihTextFormField( + fillColor: MihColors.getSecondaryColor( MzansiInnovationHub.of(context)!.theme.mode == "Dark"), - width: 100, - child: Text( - "Scan", - style: TextStyle( - color: MihColors.getPrimaryColor( + inputColor: MihColors.getPrimaryColor( + MzansiInnovationHub.of(context)!.theme.mode == + "Dark"), + controller: _nicknameController, + multiLineInput: false, + requiredText: false, + hintText: "Card Title", + ), + const SizedBox(height: 10), + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.end, + mainAxisSize: MainAxisSize.max, + children: [ + Flexible( + child: MihTextFormField( + fillColor: MihColors.getSecondaryColor( + MzansiInnovationHub.of(context)!.theme.mode == + "Dark"), + inputColor: MihColors.getPrimaryColor( + MzansiInnovationHub.of(context)!.theme.mode == + "Dark"), + controller: _cardNumberController, + multiLineInput: false, + requiredText: true, + hintText: "Card Number", + numberMode: true, + validator: (value) { + return MihValidationServices().isEmpty(value); + }, + ), + ), + const SizedBox(width: 20), + MihButton( + onPressed: () { + context.pushNamed( + "barcodeScanner", + extra: + _cardNumberController, // Use local controller + ); + }, + buttonColor: MihColors.getSecondaryColor( MzansiInnovationHub.of(context)!.theme.mode == "Dark"), - fontSize: 20, - fontWeight: FontWeight.bold, + width: 100, + child: Text( + "Scan", + style: TextStyle( + color: MihColors.getPrimaryColor( + MzansiInnovationHub.of(context)!.theme.mode == + "Dark"), + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + const SizedBox(height: 15), + Center( + child: MihButton( + onPressed: () async { + if (_formKey.currentState!.validate()) { + if (_shopController.text == "") { + showDialog( + context: context, + builder: (context) { + return const MIHErrorMessage( + errorType: "Input Error"); + }, + ); + } else { + int statusCode = await MIHMzansiWalletApis + .addLoyaltyCardAPICall( + mzansiProfileProvider.user!, + mzansiProfileProvider.user!.app_id, + _shopController.text, + _cardNumberController.text, + "", + 0, + _nicknameController.text, + context, + ); + if (statusCode == 201) { + context.pop(); + KenLogger.error("Card Added Successfully"); + successPopUp( + "Successfully Added Card", + "The loyalty card has been added to your favourites.", + 0, + ); + } else { + internetConnectionPopUp(); + } + } + } else { + MihAlertServices().formNotFilledCompletely(context); + } + }, + buttonColor: MihColors.getGreenColor( + MzansiInnovationHub.of(context)!.theme.mode == + "Dark"), + width: 300, + child: Text( + "Add", + style: TextStyle( + color: MihColors.getPrimaryColor( + MzansiInnovationHub.of(context)!.theme.mode == + "Dark"), + fontSize: 20, + fontWeight: FontWeight.bold, + ), ), ), ), ], ), - const SizedBox(height: 15), - Center( - child: MihButton( - onPressed: () async { - if (_formKey.currentState!.validate()) { - if (_shopController.text == "") { - showDialog( - context: context, - builder: (context) { - return const MIHErrorMessage( - errorType: "Input Error"); - }, - ); - } else { - int statusCode = - await MIHMzansiWalletApis.addLoyaltyCardAPICall( - widget.signedInUser, - widget.signedInUser.app_id, - _shopController.text, - _cardNumberController.text, - "", - 0, - _nicknameController.text, - context, - ); - if (statusCode == 201) { - context.pop(); - KenLogger.error("Card Added Successfully"); - successPopUp( - "Successfully Added Card", - "The loyalty card has been added to your favourites.", - 0, - ); - } else { - internetConnectionPopUp(); - } - } - } else { - MihAlertServices().formNotFilledCompletely(context); - } - }, - buttonColor: MihColors.getGreenColor( - MzansiInnovationHub.of(context)!.theme.mode == "Dark"), - width: 300, - child: Text( - "Add", - style: TextStyle( - color: MihColors.getPrimaryColor( - MzansiInnovationHub.of(context)!.theme.mode == - "Dark"), - fontSize: 20, - fontWeight: FontWeight.bold, - ), - ), - ), - ), ], - ), - ], + ); + }, ), ), ); diff --git a/Frontend/lib/mih_packages/mzansi_wallet/mih_wallet.dart b/Frontend/lib/mih_packages/mzansi_wallet/mih_wallet.dart index c29bbe4c..bfc58d34 100644 --- a/Frontend/lib/mih_packages/mzansi_wallet/mih_wallet.dart +++ b/Frontend/lib/mih_packages/mzansi_wallet/mih_wallet.dart @@ -2,9 +2,9 @@ import 'package:go_router/go_router.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_components/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_providers/mih_banner_ad_provider.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart'; import 'package:flutter/material.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/package_tools/mih_card_favourites.dart'; @@ -13,10 +13,8 @@ import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_wallet_services.da import 'package:provider/provider.dart'; class MihWallet extends StatefulWidget { - final WalletArguments arguments; const MihWallet({ super.key, - required this.arguments, }); @override @@ -26,29 +24,25 @@ class MihWallet extends StatefulWidget { class _MihWalletState extends State { bool isLoading = true; - void setPackageIndex() { - if (widget.arguments.index >= 0 && widget.arguments.index <= 3) { - context.read().setToolIndex(widget.arguments.index); - } - } - - Future setLoyaltyCards() async { + Future setLoyaltyCards( + MzansiProfileProvider mzansiProfileProvider) async { await MIHMzansiWalletApis.getLoyaltyCards( - widget.arguments.signedInUser.app_id, context); + mzansiProfileProvider.user!.app_id, context); } - Future setFavouritesCards() async { + Future setFavouritesCards( + MzansiProfileProvider mzansiProfileProvider) async { await MIHMzansiWalletApis.getFavouriteLoyaltyCards( - widget.arguments.signedInUser.app_id, context); + mzansiProfileProvider.user!.app_id, context); } @override void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) async { - setPackageIndex(); - await setLoyaltyCards(); - await setFavouritesCards(); + var mzansiProfileProvider = context.read(); + await setLoyaltyCards(mzansiProfileProvider); + await setFavouritesCards(mzansiProfileProvider); context.read().loadBannerAd(); setState(() { isLoading = false; @@ -104,12 +98,8 @@ class _MihWalletState extends State { List getToolBody() { List toolBodies = [ - MihCards( - signedInUser: widget.arguments.signedInUser, - ), - MihCardFavourites( - signedInUser: widget.arguments.signedInUser, - ), + MihCards(), + MihCardFavourites(), ]; if (isLoading) { return [ diff --git a/Frontend/lib/mih_packages/mzansi_wallet/package_tools/mih_card_favourites.dart b/Frontend/lib/mih_packages/mzansi_wallet/package_tools/mih_card_favourites.dart index 1d1a19c2..5df6695c 100644 --- a/Frontend/lib/mih_packages/mzansi_wallet/package_tools/mih_card_favourites.dart +++ b/Frontend/lib/mih_packages/mzansi_wallet/package_tools/mih_card_favourites.dart @@ -2,16 +2,13 @@ import 'package:flutter/material.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_wallet_provider.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/loyalty_card.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/builder/build_loyalty_card_list.dart'; import 'package:provider/provider.dart'; class MihCardFavourites extends StatefulWidget { - final AppUser signedInUser; const MihCardFavourites({ super.key, - required this.signedInUser, }); @override @@ -50,7 +47,6 @@ class _MihCardFavouritesState extends State { children: [ BuildLoyaltyCardList( cardList: listOfCards, - signedInUser: widget.signedInUser, navIndex: 0, favouritesMode: true, searchText: TextEditingController(), diff --git a/Frontend/lib/mih_packages/mzansi_wallet/package_tools/mih_cards.dart b/Frontend/lib/mih_packages/mzansi_wallet/package_tools/mih_cards.dart index 32658638..089a382d 100644 --- a/Frontend/lib/mih_packages/mzansi_wallet/package_tools/mih_cards.dart +++ b/Frontend/lib/mih_packages/mzansi_wallet/package_tools/mih_cards.dart @@ -11,7 +11,6 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_ 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_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_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/loyalty_card.dart'; import 'package:mzansi_innovation_hub/mih_packages/mzansi_wallet/builder/build_loyalty_card_list.dart'; import 'package:flutter/material.dart'; @@ -19,10 +18,8 @@ import 'package:mobile_scanner/mobile_scanner.dart'; import 'package:provider/provider.dart'; class MihCards extends StatefulWidget { - final AppUser signedInUser; const MihCards({ super.key, - required this.signedInUser, }); @override @@ -127,9 +124,7 @@ class _MihCardsState extends State { showDialog( context: context, barrierDismissible: false, - builder: (context) => MihAddCardWindow( - signedInUser: widget.signedInUser, - ), + builder: (context) => MihAddCardWindow(), ); } @@ -198,7 +193,6 @@ class _MihCardsState extends State { builder: (context, filteredCards, child) { return BuildLoyaltyCardList( cardList: filteredCards, //listOfCards, - signedInUser: widget.signedInUser, navIndex: 0, favouritesMode: false, searchText: cardSearchController, diff --git a/docker-compose.yml b/docker-compose.yml index ccdadd2e..f42cb4e8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -171,14 +171,14 @@ services: networks: - MIH-network # === Added section for NVIDIA GPU acceleration === - runtime: nvidia - deploy: - resources: - reservations: - devices: - - driver: nvidia - count: all # or specify a number of GPUs - capabilities: [ gpu ] + # runtime: nvidia + # deploy: + # resources: + # reservations: + # devices: + # - driver: nvidia + # count: all # or specify a number of GPUs + # capabilities: [ gpu ] #============== Firebaase ==================================================================== # firebase: # container_name: MIH-firebase-emulator