possibility to inject child tabs

This commit is contained in:
Fabian Freund
2025-06-24 14:47:52 +02:00
parent c6ab61e86d
commit 6dd75411a6
17 changed files with 210 additions and 59 deletions
@@ -23,10 +23,8 @@ GeckoSelectionActionService selectionActionService(Ref ref) {
service.setActions([
SearchAction((text) async {
final router = await ref.read(routerProvider.future);
final isCurrentPrivate =
ref.read(selectedTabStateProvider)?.isPrivate ?? false;
final route = SearchRoute(
tabType: isCurrentPrivate ? TabType.private : TabType.regular,
tabType: ref.read(selectedTabTypeProvider) ?? TabType.regular,
searchText: text,
);
@@ -7,7 +7,7 @@ part of 'providers.dart';
// **************************************************************************
String _$selectionActionServiceHash() =>
r'456bab83920ae78969bece514d5524e2445e06b6';
r'a3682b3f97d9798aadbca3be882d5be74085b762';
/// See also [selectionActionService].
@ProviderFor(selectionActionService)
@@ -6,6 +6,7 @@ import 'package:riverpod/riverpod.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:rxdart/rxdart.dart';
import 'package:weblibre/core/logger.dart';
import 'package:weblibre/core/routing/routes.dart';
import 'package:weblibre/features/geckoview/domain/entities/states/find_result.dart';
import 'package:weblibre/features/geckoview/domain/entities/states/history.dart';
import 'package:weblibre/features/geckoview/domain/entities/states/readerable.dart';
@@ -204,3 +205,14 @@ TabState? selectedTabState(Ref ref) {
final tabId = ref.watch(selectedTabProvider);
return ref.watch(tabStateProvider(tabId));
}
@Riverpod()
TabType? selectedTabType(Ref ref) {
final isPrivate = ref.watch(
selectedTabStateProvider.select((value) => value?.isPrivate),
);
return isPrivate.mapNotNull(
(isCurrentPrivate) => isCurrentPrivate ? TabType.private : TabType.regular,
);
}
@@ -158,6 +158,23 @@ final selectedTabStateProvider = AutoDisposeProvider<TabState?>.internal(
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
typedef SelectedTabStateRef = AutoDisposeProviderRef<TabState?>;
String _$selectedTabTypeHash() => r'53093fc6db8becde7500163661e087fb0a2eb955';
/// See also [selectedTabType].
@ProviderFor(selectedTabType)
final selectedTabTypeProvider = AutoDisposeProvider<TabType?>.internal(
selectedTabType,
name: r'selectedTabTypeProvider',
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
? null
: _$selectedTabTypeHash,
dependencies: null,
allTransitiveDependencies: null,
);
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
typedef SelectedTabTypeRef = AutoDisposeProviderRef<TabType?>;
String _$tabStatesHash() => r'e4d2f2b4ddd65beac8a1fd0d22bad1e0a26b41bd';
/// See also [TabStates].