support private tabs

This commit is contained in:
Fabian Freund
2025-04-25 20:41:08 +02:00
parent 9064a961ac
commit f95331c654
15 changed files with 212 additions and 74 deletions
@@ -41,7 +41,7 @@ class BangListScreen extends HookConsumerWidget {
.read(selectedBangTriggerProvider().notifier)
.setTrigger(bang.trigger);
const SearchRoute().go(context);
const SearchRoute(tabType: TabType.regular).go(context);
},
);
},
@@ -6,6 +6,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:lensai/features/bangs/data/models/bang_data.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/providers/tab_state.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/search/domain/providers/search_suggestions.dart';
@@ -45,12 +46,21 @@ class SiteSearch extends HookConsumerWidget {
Future<void> submitSearch(String query) async {
if (activeBang != null && (formKey.currentState?.validate() == true)) {
final searchUri = await ref
.read(bangSearchProvider.notifier)
.triggerBangSearch(activeBang, query);
final isPrivate =
ref.read(selectedTabStateProvider)?.isPrivate ?? false;
final searchUri = activeBang.getTemplateUrl(query);
if (!isPrivate) {
await ref
.read(bangSearchProvider.notifier)
.triggerBangSearch(activeBang, query);
}
if (searchInNewTab) {
await ref.read(tabRepositoryProvider.notifier).addTab(url: searchUri);
await ref
.read(tabRepositoryProvider.notifier)
.addTab(url: searchUri, private: isPrivate);
} else {
await ref
.read(tabSessionProvider(tabId: null).notifier)