mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-09 14:47:23 +00:00
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:
@ -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,
|
||||||
|
Reference in New Issue
Block a user