From d2044d49b51fe570ca8c2d5e014091b6a0841e7b Mon Sep 17 00:00:00 2001 From: Nilanjan Chakrabarti Date: Tue, 16 Sep 2025 12:40:46 +0530 Subject: [PATCH] IFSC Field Testing #1 --- .../screens/add_beneficiary_screen.dart | 42 ++++++++++--------- .../quick_pay_outside_bank_screen.dart | 28 +++++++------ 2 files changed, 37 insertions(+), 33 deletions(-) diff --git a/lib/features/beneficiaries/screens/add_beneficiary_screen.dart b/lib/features/beneficiaries/screens/add_beneficiary_screen.dart index f8ab5d5..ac37ff8 100644 --- a/lib/features/beneficiaries/screens/add_beneficiary_screen.dart +++ b/lib/features/beneficiaries/screens/add_beneficiary_screen.dart @@ -312,14 +312,16 @@ final _ifscFieldKey = GlobalKey(); onFieldSubmitted: (_) { _validateIFSC(); }, - onChanged: (value) { - final trimmed = value.trim().toUpperCase(); - if (trimmed.length < 11) { - // clear bank/branch if backspace or changed - bankNameController.clear(); - branchNameController.clear(); - } - }, + onChanged: (value) { + setState(() { + final trimmed = value.trim().toUpperCase(); + if (trimmed.length < 11) { + // clear bank/branch if backspace or changed + bankNameController.clear(); + branchNameController.clear(); + } + }); + }, validator: (value) { final pattern = RegExp(r'^[A-Z]{4}0[A-Z0-9]{6}$'); if (value == null || value.trim().isEmpty) { @@ -393,19 +395,19 @@ final _ifscFieldKey = GlobalKey(); child: SizedBox( width: double.infinity, child: ElevatedButton( -onPressed: _isValidating - ? null - : () { - final isAccountValid = - _accountNumberFieldKey.currentState!.validate(); - final isConfirmAccountValid = - _confirmAccountNumberFieldKey.currentState!.validate(); - final isIfscValid = _ifscFieldKey.currentState!.validate(); +onPressed: _isValidating || ifscController.text.length != 11 +? null +: () { + final isAccountValid = + _accountNumberFieldKey.currentState!.validate(); + final isConfirmAccountValid = + _confirmAccountNumberFieldKey.currentState!.validate(); + final isIfscValid = _ifscFieldKey.currentState!.validate(); - if (isAccountValid && isConfirmAccountValid && isIfscValid) { - _validateBeneficiary(); - } - }, + if (isAccountValid && isConfirmAccountValid && isIfscValid) { + _validateBeneficiary(); + } + }, child: _isValidating ? const SizedBox( 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 63ec611..8d0dbbb 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 @@ -505,13 +505,15 @@ class _QuickPayOutsideBankScreen extends State { _validateIFSC(); }, onChanged: (value) { + setState(() { final trimmed = value.trim().toUpperCase(); if (trimmed.length < 11) { // clear bank/branch if backspace or changed bankNameController.clear(); branchNameController.clear(); } - }, + }); + }, validator: (value) { final pattern = RegExp(r'^[A-Z]{4}0[A-Z0-9]{6}$'); if (value == null || value.trim().isEmpty) { @@ -613,18 +615,18 @@ class _QuickPayOutsideBankScreen extends State { child: SizedBox( width: double.infinity, child: ElevatedButton( - onPressed: _isValidating - ? null - : () { - if (confirmAccountNumberController.text == - accountNumberController.text) { - _validateBeneficiary(); - } else { - setState(() { - _validationError = - AppLocalizations.of(context) - .accountMismatch; - }); + onPressed: _isValidating || ifscController.text.length != 11 + ? null + : () { + if (confirmAccountNumberController.text == + accountNumberController.text) { + _validateBeneficiary(); + } else { + setState(() { + _validationError = + AppLocalizations.of(context) + .accountMismatch; + }); } }, child: _isValidating