Enhance SubSpacesInput: Introduce FocusNode for improved text field focus management. This change allows the input field to regain focus after adding a subspace, enhancing user experience and maintaining clean state management practices.

This commit is contained in:
Faris Armoush
2025-07-06 09:04:13 +03:00
parent 757a96ed9f
commit 95cded4bf5

View File

@ -22,16 +22,18 @@ class SubSpacesInput extends StatefulWidget {
class _SubSpacesInputState extends State<SubSpacesInput> { class _SubSpacesInputState extends State<SubSpacesInput> {
late final TextEditingController _subspaceNameController; late final TextEditingController _subspaceNameController;
late final FocusNode _focusNode;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
_subspaceNameController = TextEditingController(); _subspaceNameController = TextEditingController();
_focusNode = FocusNode();
} }
@override @override
void dispose() { void dispose() {
_subspaceNameController.dispose(); _subspaceNameController.dispose();
_focusNode.dispose();
super.dispose(); super.dispose();
} }
@ -78,6 +80,7 @@ class _SubSpacesInputState extends State<SubSpacesInput> {
SizedBox( SizedBox(
width: 200, width: 200,
child: TextField( child: TextField(
focusNode: _focusNode,
controller: _subspaceNameController, controller: _subspaceNameController,
decoration: InputDecoration( decoration: InputDecoration(
border: InputBorder.none, border: InputBorder.none,
@ -91,6 +94,7 @@ class _SubSpacesInputState extends State<SubSpacesInput> {
if (trimmedValue.isNotEmpty) { if (trimmedValue.isNotEmpty) {
widget.onSubspaceAdded(trimmedValue); widget.onSubspaceAdded(trimmedValue);
_subspaceNameController.clear(); _subspaceNameController.clear();
_focusNode.requestFocus();
} }
}, },
style: context.textTheme.bodyMedium, style: context.textTheme.bodyMedium,