diff --git a/examples/fwe/birdle/lib/main.dart b/examples/fwe/birdle/lib/main.dart index 062a1c6a716..626dcee1895 100644 --- a/examples/fwe/birdle/lib/main.dart +++ b/examples/fwe/birdle/lib/main.dart @@ -69,20 +69,38 @@ class _GamePageState extends State { // #enddocregion GamePage // #docregion GuessInput -class GuessInput extends StatelessWidget { - GuessInput({super.key, required this.onSubmitGuess}); +class GuessInput extends StatefulWidget { + const GuessInput({super.key, required this.onSubmitGuess}); final void Function(String) onSubmitGuess; + @override + State createState() => _GuessInputState(); +} + +class _GuessInputState extends State { final TextEditingController _textEditingController = TextEditingController(); + final FocusNode _focusNode = FocusNode(); void _onSubmit() { - onSubmitGuess(_textEditingController.text.trim()); - _textEditingController.clear(); + final text = _textEditingController.text.trim(); + + if (text.length == 5) { + widget.onSubmitGuess(text); + _textEditingController.clear(); + } + _focusNode.requestFocus(); } + @override + void dispose() { + _textEditingController.dispose(); + _focusNode.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { return Row(