addDigit method

void addDigit(
  1. String digit
)

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;
    }
  }
}