diff --git a/lib/features/beneficiaries/screens/add_beneficiary_screen.dart b/lib/features/beneficiaries/screens/add_beneficiary_screen.dart index 1f1385b..428d5aa 100644 --- a/lib/features/beneficiaries/screens/add_beneficiary_screen.dart +++ b/lib/features/beneficiaries/screens/add_beneficiary_screen.dart @@ -71,26 +71,43 @@ final _ifscFieldKey = GlobalKey(); super.dispose(); } - void _validateIFSC() async { - var beneficiaryService = getIt(); - final ifsc = ifscController.text.trim().toUpperCase(); - if (ifsc.isEmpty) return; + void _validateIFSC() async { + var beneficiaryService = getIt(); + final ifsc = ifscController.text.trim().toUpperCase(); + if (ifsc.isEmpty) return; - final result = await beneficiaryService.validateIFSC(ifsc); + try { + final result = await beneficiaryService.validateIFSC(ifsc); + + if (mounted) { + if (result.bankName == null || result.bankName.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(AppLocalizations.of(context).invalidIfsc)), + ); + bankNameController.clear(); + branchNameController.clear(); + } else { + bankNameController.text = result.bankName; + branchNameController.text = result.branchName; + } + } + } catch (e) { + if (mounted) { + final errorMessage = e.toString().toUpperCase(); + String snackbarMessage = AppLocalizations.of(context).somethingWentWrong; + + if (errorMessage.contains('INVALID') && errorMessage.contains('IFSC')) { + snackbarMessage = AppLocalizations.of(context).invalidIfsc; + } - if (mounted) { - if (result.bankName == '') { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(AppLocalizations.of(context).invalidIfsc)), + SnackBar(content: Text(snackbarMessage)), ); bankNameController.clear(); branchNameController.clear(); - } else { - bankNameController.text = result.bankName; - branchNameController.text = result.branchName; } } - } + } void _validateBeneficiary() async { FocusScope.of(context).unfocus(); @@ -354,7 +371,7 @@ final _ifscFieldKey = GlobalKey(); }, ), const SizedBox(height: 24), - // 🔹 Bank Name (Disabled) + // Bank Name (Disabled) TextFormField( controller: bankNameController, enabled: false, // changed from readOnly to disabled diff --git a/lib/features/quick_pay/screens/quick_pay_outside_bank_screen.dart b/lib/features/quick_pay/screens/quick_pay_outside_bank_screen.dart index 648a5d2..6e4c5b0 100644 --- a/lib/features/quick_pay/screens/quick_pay_outside_bank_screen.dart +++ b/lib/features/quick_pay/screens/quick_pay_outside_bank_screen.dart @@ -66,21 +66,38 @@ class _QuickPayOutsideBankScreen extends State { final ifsc = ifscController.text.trim().toUpperCase(); if (ifsc.isEmpty) return; - final result = await service.validateIFSC(ifsc); + try { + final result = await service.validateIFSC(ifsc); + + if (mounted) { + if (result.bankName == null || result.bankName.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(AppLocalizations.of(context).invalidIfsc)), + ); + bankNameController.clear(); + branchNameController.clear(); + } else { + bankNameController.text = result.bankName; + branchNameController.text = result.branchName; + } + } + } catch (e) { + if (mounted) { + final errorMessage = e.toString().toUpperCase(); + String snackbarMessage = AppLocalizations.of(context).somethingWentWrong; + + if (errorMessage.contains('INVALID') && errorMessage.contains('IFSC')) { + snackbarMessage = AppLocalizations.of(context).invalidIfsc; + } - if (mounted) { - if (result.bankName == '') { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(AppLocalizations.of(context).invalidIfsc)), + SnackBar(content: Text(snackbarMessage)), ); bankNameController.clear(); branchNameController.clear(); - } else { - bankNameController.text = result.bankName; - branchNameController.text = result.branchName; } } - } + } void _validateBeneficiary() async { FocusScope.of(context).unfocus();