settings to choose default tab types

This commit is contained in:
Fabian Freund
2025-08-12 11:53:36 +02:00
parent f3731aa5f6
commit f70cc7acfa
22 changed files with 291 additions and 25 deletions
@@ -22,6 +22,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:weblibre/core/routing/routes.dart';
import 'package:weblibre/features/bangs/data/models/bang_data.dart';
import 'package:weblibre/features/geckoview/domain/repositories/tab.dart';
import 'package:weblibre/features/user/domain/repositories/general_settings.dart';
import 'package:weblibre/presentation/widgets/url_icon.dart';
class BangDetails extends HookConsumerWidget {
@@ -86,10 +87,15 @@ class BangDetails extends HookConsumerWidget {
),
onPressed: () async {
final url = Uri.parse(bangData.getTemplateUrl('').origin);
final isPrivate =
ref
.read(generalSettingsRepositoryProvider)
.defaultCreateTabType ==
TabType.private;
await ref
.read(tabRepositoryProvider.notifier)
.addTab(url: url);
.addTab(url: url, private: isPrivate);
if (context.mounted) {
BrowserRoute().go(context);
@@ -21,6 +21,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:nullability/nullability.dart';
import 'package:weblibre/core/routing/routes.dart';
import 'package:weblibre/extensions/uri.dart';
import 'package:weblibre/features/bangs/data/models/bang_data.dart';
import 'package:weblibre/features/bangs/domain/providers/bangs.dart';
@@ -33,6 +34,7 @@ import 'package:weblibre/features/geckoview/features/browser/domain/providers.da
import 'package:weblibre/features/geckoview/features/search/domain/providers/search_suggestions.dart';
import 'package:weblibre/features/geckoview/features/search/presentation/widgets/search_field.dart';
import 'package:weblibre/features/geckoview/features/search/presentation/widgets/search_modules/fixed_search_suggestions.dart';
import 'package:weblibre/features/user/domain/repositories/general_settings.dart';
import 'package:weblibre/presentation/hooks/listenable_callback.dart';
import 'package:weblibre/presentation/widgets/selectable_chips.dart';
import 'package:weblibre/presentation/widgets/url_icon.dart';
@@ -82,7 +84,11 @@ class SiteSearch extends HookConsumerWidget {
ref.read(bottomSheetControllerProvider.notifier).dismiss();
} else if (bang != null) {
final isPrivate =
ref.read(selectedTabStateProvider)?.isPrivate ?? false;
ref.read(selectedTabStateProvider)?.isPrivate ??
ref
.read(generalSettingsRepositoryProvider)
.defaultCreateTabType ==
TabType.private;
final searchUri = bang.getTemplateUrl(value);