diff --git a/app/lib/features/geckoview/features/find_in_page/presentation/controllers/find_in_page.dart b/app/lib/features/geckoview/features/find_in_page/presentation/controllers/find_in_page.dart index 2d14dcfc..f11a81df 100644 --- a/app/lib/features/geckoview/features/find_in_page/presentation/controllers/find_in_page.dart +++ b/app/lib/features/geckoview/features/find_in_page/presentation/controllers/find_in_page.dart @@ -28,13 +28,20 @@ class FindInPageController extends _$FindInPageController { return service.findAll(text); } - Future findNext({bool forward = true}) { + Future findNext({required String fallbackText, bool forward = true}) { final tabId = ref.read(selectedTabProvider); final service = ref.read(findInPageRepositoryProvider(tabId).notifier); + final hasMatches = + ref.read(selectedTabStateProvider)?.findResultState.hasMatches == true; + state = state.copyWith.visible(true); - return service.findNext(forward); + if (hasMatches) { + return service.findNext(forward); + } else { + return service.findAll(fallbackText); + } } Future clearMatches() { diff --git a/app/lib/features/geckoview/features/find_in_page/presentation/controllers/find_in_page.g.dart b/app/lib/features/geckoview/features/find_in_page/presentation/controllers/find_in_page.g.dart index a6fd6f71..5a6ff99c 100644 --- a/app/lib/features/geckoview/features/find_in_page/presentation/controllers/find_in_page.g.dart +++ b/app/lib/features/geckoview/features/find_in_page/presentation/controllers/find_in_page.g.dart @@ -7,7 +7,7 @@ part of 'find_in_page.dart'; // ************************************************************************** String _$findInPageControllerHash() => - r'ab421be931406325bf6b22dd9f545117ea426665'; + r'fd335be9345b405856cf2aa68312d4d1535d8c5e'; /// See also [FindInPageController]. @ProviderFor(FindInPageController) diff --git a/app/lib/features/geckoview/features/find_in_page/presentation/widgets/find_in_page.dart b/app/lib/features/geckoview/features/find_in_page/presentation/widgets/find_in_page.dart index d78f2239..739f9ac0 100644 --- a/app/lib/features/geckoview/features/find_in_page/presentation/widgets/find_in_page.dart +++ b/app/lib/features/geckoview/features/find_in_page/presentation/widgets/find_in_page.dart @@ -61,21 +61,20 @@ class FindInPageWidget extends HookConsumerWidget { IconButton( icon: const Icon(Icons.arrow_upward), onPressed: () async { - if (searchResult?.hasMatches ?? false) { - await ref - .read(findInPageControllerProvider.notifier) - .findNext(forward: false); - } + await ref + .read(findInPageControllerProvider.notifier) + .findNext( + forward: false, + fallbackText: textController.text, + ); }, ), IconButton( icon: const Icon(Icons.arrow_downward), onPressed: () async { - if (searchResult?.hasMatches ?? false) { - await ref - .read(findInPageControllerProvider.notifier) - .findNext(); - } + await ref + .read(findInPageControllerProvider.notifier) + .findNext(fallbackText: textController.text); }, ), IconButton(