improve ghost text logic

This commit is contained in:
Fabian Freund
2026-02-27 20:39:06 +01:00
parent 4709bb563f
commit 51906ef61f
@@ -23,7 +23,6 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.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/bangs/data/models/bang_data.dart';
import 'package:weblibre/features/geckoview/features/search/domain/providers/engine_suggestions.dart'; import 'package:weblibre/features/geckoview/features/search/domain/providers/engine_suggestions.dart';
import 'package:weblibre/features/user/domain/providers.dart'; import 'package:weblibre/features/user/domain/providers.dart';
@@ -79,14 +78,15 @@ class SearchField extends HookConsumerWidget {
if (showSuggestions) { if (showSuggestions) {
useOnListenableChange(textEditingController, () async { useOnListenableChange(textEditingController, () async {
if (textEditingController.text.isNotEmpty) { if (textEditingController.text.isEmpty) {
if (suggestion.value.isNotEmpty && suggestion.value = null;
lastText.value.length > 1 && } else if (textEditingController.text != lastText.value) {
textEditingController.text == final isDeleting =
lastText.value.substring(0, lastText.value.length - 1)) { textEditingController.text.length < lastText.value.length;
if (isDeleting) {
suggestion.value = null; suggestion.value = null;
textEditingController.text = lastText.value; } else {
} else if (textEditingController.text != lastText.value) {
final result = await ref final result = await ref
.read(engineSuggestionsProvider.notifier) .read(engineSuggestionsProvider.notifier)
.getAutocompleteSuggestion(textEditingController.text); .getAutocompleteSuggestion(textEditingController.text);