From 51906ef61feff2412d7d049142aa59761616a6f9 Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Fri, 27 Feb 2026 20:39:06 +0100 Subject: [PATCH] improve ghost text logic --- .../presentation/widgets/search_field.dart | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/lib/features/geckoview/features/search/presentation/widgets/search_field.dart b/app/lib/features/geckoview/features/search/presentation/widgets/search_field.dart index d7e24608..c422ff34 100644 --- a/app/lib/features/geckoview/features/search/presentation/widgets/search_field.dart +++ b/app/lib/features/geckoview/features/search/presentation/widgets/search_field.dart @@ -23,7 +23,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:nullability/nullability.dart'; import 'package:weblibre/features/bangs/data/models/bang_data.dart'; import 'package:weblibre/features/geckoview/features/search/domain/providers/engine_suggestions.dart'; import 'package:weblibre/features/user/domain/providers.dart'; @@ -79,14 +78,15 @@ class SearchField extends HookConsumerWidget { if (showSuggestions) { useOnListenableChange(textEditingController, () async { - if (textEditingController.text.isNotEmpty) { - if (suggestion.value.isNotEmpty && - lastText.value.length > 1 && - textEditingController.text == - lastText.value.substring(0, lastText.value.length - 1)) { + if (textEditingController.text.isEmpty) { + suggestion.value = null; + } else if (textEditingController.text != lastText.value) { + final isDeleting = + textEditingController.text.length < lastText.value.length; + + if (isDeleting) { suggestion.value = null; - textEditingController.text = lastText.value; - } else if (textEditingController.text != lastText.value) { + } else { final result = await ref .read(engineSuggestionsProvider.notifier) .getAutocompleteSuggestion(textEditingController.text);