This commit is contained in:
2026-03-11 10:46:37 +05:30
parent b9574eb96a
commit 41a222ea11
2 changed files with 19 additions and 20 deletions

View File

@@ -1,4 +1,3 @@
// ignore_for_file: always_specify_types, depend_on_referenced_packages, dead_code, dead_null_aware_expression, unused_local_variable, unused_import, sort_constructors_first, prefer_final_fields, prefer_const_constructors, deprecated_member_use, implicit_call_tearoffs, implementation_imports
import 'package:design_system/design_system.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -30,27 +29,24 @@ class OtpInputField extends StatefulWidget {
}
class _OtpInputFieldState extends State<OtpInputField> {
final List<TextEditingController> _controllers = List.generate(
final List<TextEditingController> _controllers = List<TextEditingController>.generate(
6,
(_) => TextEditingController(),
(int _) => TextEditingController(),
);
final List<FocusNode> _focusNodes = List.generate(6, (_) => FocusNode());
final List<FocusNode> _focusNodes = List<FocusNode>.generate(6, (int _) => FocusNode());
/// Hidden field for E2E: Maestro inputText sends full OTP in one call;
/// the 6 visible boxes have maxLength:1 and would truncate.
late final TextEditingController _hiddenController;
late final FocusNode _hiddenFocusNode;
@override
void initState() {
super.initState();
_hiddenController = TextEditingController();
_hiddenFocusNode = FocusNode();
}
@override
void dispose() {
_hiddenController.dispose();
_hiddenFocusNode.dispose();
for (final TextEditingController controller in _controllers) {
controller.dispose();
@@ -111,7 +107,7 @@ class _OtpInputFieldState extends State<OtpInputField> {
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: List.generate(6, (int index) {
children: List<Widget>.generate(6, (int index) {
final TextField field = TextField(
controller: _controllers[index],
focusNode: _focusNodes[index],
@@ -157,7 +153,6 @@ class _OtpInputFieldState extends State<OtpInputField> {
child: Opacity(
opacity: 0.01,
child: TextField(
controller: _hiddenController,
focusNode: _hiddenFocusNode,
keyboardType: TextInputType.number,
inputFormatters: <TextInputFormatter>[