get focus on clear field

This commit is contained in:
Fabian Freund
2025-05-25 22:18:40 +02:00
parent fb7ea38d57
commit 12ddd1ee33
5 changed files with 16 additions and 7 deletions
@@ -107,6 +107,7 @@ class _TabSheetHeader extends HookConsumerWidget {
IconButton(
onPressed: () {
searchTextController.clear();
searchTextFocus.requestFocus();
searchMode.value = false;
},
icon: const Icon(Icons.clear),
@@ -16,6 +16,7 @@ class FindInPageWidget extends HookConsumerWidget {
selectedTabStateProvider.select((state) => state?.findResultState),
);
final focusNode = useFocusNode();
final textController = useTextEditingController(
text: searchResult?.lastSearchText ?? findInPageState.lastSearchText,
keys: [searchResult?.lastSearchText, findInPageState.lastSearchText],
@@ -31,6 +32,7 @@ class FindInPageWidget extends HookConsumerWidget {
const SizedBox(width: 8),
Expanded(
child: TextField(
focusNode: focusNode,
controller: textController,
autofocus: true,
autocorrect: false,
@@ -81,6 +83,7 @@ class FindInPageWidget extends HookConsumerWidget {
onPressed: () async {
await ref.read(findInPageControllerProvider.notifier).hide();
textController.clear();
focusNode.requestFocus();
},
),
],
@@ -42,6 +42,8 @@ class SearchField extends HookConsumerWidget {
() => textEditingController.text.isNotEmpty,
);
final safeFocusNode = focusNode ?? useFocusNode();
final suggestion = useState<String?>(null);
final lastText = useRef<String>(textEditingController.text);
@@ -71,7 +73,7 @@ class SearchField extends HookConsumerWidget {
controller: textEditingController,
suggestion: suggestion.value,
enableIMEPersonalizedLearning: !incognitoEnabled,
focusNode: focusNode,
focusNode: safeFocusNode,
autofocus: autofocus,
decoration: InputDecoration(
border: InputBorder.none,
@@ -101,12 +103,9 @@ class SearchField extends HookConsumerWidget {
},
),
),
onTapOutside:
(focusNode != null)
? (event) {
focusNode!.unfocus();
}
: null,
onTapOutside: (event) {
safeFocusNode.unfocus();
},
onSubmitted: onSubmitted,
);
}