site search in same tab
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user