IFSC Field Testing #2

This commit is contained in:
2025-09-16 12:59:31 +05:30
parent d2044d49b5
commit ba1ef0ed24
2 changed files with 28 additions and 6 deletions

View File

@@ -34,6 +34,7 @@ final _ifscFieldKey = GlobalKey<FormFieldState>();
final TextEditingController branchNameController = TextEditingController();
final TextEditingController ifscController = TextEditingController();
final TextEditingController phoneController = TextEditingController();
final _ifscFocusNode = FocusNode();
final service = getIt<BeneficiaryService>();
bool _isValidating = false;
@@ -45,6 +46,11 @@ final _ifscFieldKey = GlobalKey<FormFieldState>();
@override
void initState() {
super.initState();
_ifscFocusNode.addListener(() {
if (!_ifscFocusNode.hasFocus && ifscController.text.trim().length == 11) {
_validateIFSC();
}
});
WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() {
accountType = 'Savings';
@@ -52,6 +58,19 @@ final _ifscFieldKey = GlobalKey<FormFieldState>();
});
}
@override
void dispose() {
accountNumberController.dispose();
confirmAccountNumberController.dispose();
nameController.dispose();
bankNameController.dispose();
branchNameController.dispose();
ifscController.dispose();
phoneController.dispose();
_ifscFocusNode.dispose();
super.dispose();
}
void _validateIFSC() async {
var beneficiaryService = getIt<BeneficiaryService>();
final ifsc = ifscController.text.trim().toUpperCase();
@@ -296,6 +315,7 @@ final _ifscFieldKey = GlobalKey<FormFieldState>();
),
const SizedBox(height: 24),
TextFormField(
focusNode: _ifscFocusNode,
key: _ifscFieldKey,
controller: ifscController,
maxLength: 11,
@@ -309,9 +329,6 @@ final _ifscFieldKey = GlobalKey<FormFieldState>();
),
textCapitalization: TextCapitalization.characters,
textInputAction: TextInputAction.next,
onFieldSubmitted: (_) {
_validateIFSC();
},
onChanged: (value) {
setState(() {
final trimmed = value.trim().toUpperCase();

View File

@@ -39,6 +39,7 @@ class _QuickPayOutsideBankScreen extends State<QuickPayOutsideBankScreen> {
final phoneController = TextEditingController();
final amountController = TextEditingController();
final remarksController = TextEditingController();
final _ifscFocusNode = FocusNode();
final service = getIt<BeneficiaryService>();
late String accountType;
@@ -49,6 +50,11 @@ class _QuickPayOutsideBankScreen extends State<QuickPayOutsideBankScreen> {
@override
void initState() {
super.initState();
_ifscFocusNode.addListener(() {
if (!_ifscFocusNode.hasFocus && ifscController.text.trim().length == 11) {
_validateIFSC();
}
});
WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() {
accountType = 'Savings';
@@ -139,6 +145,7 @@ class _QuickPayOutsideBankScreen extends State<QuickPayOutsideBankScreen> {
amountController.dispose();
remarksController.dispose();
super.dispose();
_ifscFocusNode.dispose();
}
void _onProceedToPay() {
@@ -479,6 +486,7 @@ class _QuickPayOutsideBankScreen extends State<QuickPayOutsideBankScreen> {
children: [
Expanded(
child: TextFormField(
focusNode: _ifscFocusNode,
maxLength: 11,
inputFormatters: [
LengthLimitingTextInputFormatter(11),
@@ -501,9 +509,6 @@ class _QuickPayOutsideBankScreen extends State<QuickPayOutsideBankScreen> {
),
controller: ifscController,
textInputAction: TextInputAction.next,
onFieldSubmitted: (_) {
_validateIFSC();
},
onChanged: (value) {
setState(() {
final trimmed = value.trim().toUpperCase();