addDigit method
Implementation
void addDigit(String digit) {
if (digit.isEmpty || digit.length != 1) return;
for (int i = 0; i < controllers.length; i++) {
if (controllers[i].text.isEmpty) {
controllers[i].text = digit;
if (i < controllers.length - 1) {
focusNodes[i + 1].requestFocus();
} else {
allFilled = controllers.every((c) => c.text.isNotEmpty);
if (allFilled) {
final full = controllers.map((c) => c.text).join();
FocusScope.of(context).unfocus();
widget.onComplete(full);
}
}
if (mounted) setState(() {});
break;
}
}
}