site search in same tab

This commit is contained in:
Fabian Freund
2025-02-21 11:55:53 +01:00
parent a512e5c808
commit 1b2e386541
2 changed files with 11 additions and 1 deletions
@@ -5,6 +5,7 @@ import 'package:go_router/go_router.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:lensai/features/bangs/data/models/bang_data.dart'; import 'package:lensai/features/bangs/data/models/bang_data.dart';
import 'package:lensai/features/bangs/domain/providers/search.dart'; import 'package:lensai/features/bangs/domain/providers/search.dart';
import 'package:lensai/features/geckoview/domain/providers/tab_session.dart';
import 'package:lensai/features/geckoview/domain/repositories/tab.dart'; import 'package:lensai/features/geckoview/domain/repositories/tab.dart';
import 'package:lensai/features/geckoview/features/browser/domain/providers.dart'; import 'package:lensai/features/geckoview/features/browser/domain/providers.dart';
import 'package:lensai/features/geckoview/features/search/domain/providers/search_suggestions.dart'; import 'package:lensai/features/geckoview/features/search/domain/providers/search_suggestions.dart';
@@ -17,11 +18,13 @@ import 'package:lensai/presentation/widgets/selectable_chips.dart';
class SiteSearch extends HookConsumerWidget { class SiteSearch extends HookConsumerWidget {
final String domain; final String domain;
final List<BangData> availableBangs; final List<BangData> availableBangs;
final bool searchInNewTab;
const SiteSearch({ const SiteSearch({
required this.domain, required this.domain,
required this.availableBangs, required this.availableBangs,
super.key, super.key,
this.searchInNewTab = true,
}); });
@override @override
@@ -46,7 +49,13 @@ class SiteSearch extends HookConsumerWidget {
.read(bangSearchProvider.notifier) .read(bangSearchProvider.notifier)
.triggerBangSearch(activeBang, query); .triggerBangSearch(activeBang, query);
await ref.read(tabRepositoryProvider.notifier).addTab(url: searchUri); if (searchInNewTab) {
await ref.read(tabRepositoryProvider.notifier).addTab(url: searchUri);
} else {
await ref
.read(tabSessionProvider(tabId: null).notifier)
.loadUrl(url: searchUri);
}
if (context.mounted) { if (context.mounted) {
context.pop(); context.pop();
@@ -89,6 +89,7 @@ class WebPageDialog extends HookConsumerWidget {
return SiteSearch( return SiteSearch(
domain: url.host, domain: url.host,
availableBangs: availableBangs, availableBangs: availableBangs,
searchInNewTab: false,
); );
}, },
error: error: