use tabStateWithFallback
This commit is contained in:
@@ -263,6 +263,17 @@ TabState? tabState(Ref ref, String? tabId) {
|
|||||||
return ref.watch(tabStatesProvider.select((tabs) => tabs[tabId]));
|
return ref.watch(tabStatesProvider.select((tabs) => tabs[tabId]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Riverpod()
|
||||||
|
Future<TabState> tabStateWithFallback(Ref ref, String tabId) async {
|
||||||
|
final state = ref.watch(tabStateProvider(tabId));
|
||||||
|
|
||||||
|
if (state != null) {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
return await ref.read(tabStatesProvider.notifier).patchedState(tabId);
|
||||||
|
}
|
||||||
|
|
||||||
@Riverpod()
|
@Riverpod()
|
||||||
Future<bool> isTabTunneled(Ref ref, String? tabId) async {
|
Future<bool> isTabTunneled(Ref ref, String? tabId) async {
|
||||||
final tabState = ref.watch(tabStateProvider(tabId));
|
final tabState = ref.watch(tabStateProvider(tabId));
|
||||||
|
|||||||
@@ -139,6 +139,77 @@ final class TabStateFamily extends $Family
|
|||||||
String toString() => r'tabStateProvider';
|
String toString() => r'tabStateProvider';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ProviderFor(tabStateWithFallback)
|
||||||
|
const tabStateWithFallbackProvider = TabStateWithFallbackFamily._();
|
||||||
|
|
||||||
|
final class TabStateWithFallbackProvider
|
||||||
|
extends
|
||||||
|
$FunctionalProvider<AsyncValue<TabState>, TabState, FutureOr<TabState>>
|
||||||
|
with $FutureModifier<TabState>, $FutureProvider<TabState> {
|
||||||
|
const TabStateWithFallbackProvider._({
|
||||||
|
required TabStateWithFallbackFamily super.from,
|
||||||
|
required String super.argument,
|
||||||
|
}) : super(
|
||||||
|
retry: null,
|
||||||
|
name: r'tabStateWithFallbackProvider',
|
||||||
|
isAutoDispose: true,
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String debugGetCreateSourceHash() => _$tabStateWithFallbackHash();
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return r'tabStateWithFallbackProvider'
|
||||||
|
''
|
||||||
|
'($argument)';
|
||||||
|
}
|
||||||
|
|
||||||
|
@$internal
|
||||||
|
@override
|
||||||
|
$FutureProviderElement<TabState> $createElement($ProviderPointer pointer) =>
|
||||||
|
$FutureProviderElement(pointer);
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOr<TabState> create(Ref ref) {
|
||||||
|
final argument = this.argument as String;
|
||||||
|
return tabStateWithFallback(ref, argument);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) {
|
||||||
|
return other is TabStateWithFallbackProvider && other.argument == argument;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode {
|
||||||
|
return argument.hashCode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String _$tabStateWithFallbackHash() =>
|
||||||
|
r'061011ac79738dbe4e662a76fccbc8592cba21cf';
|
||||||
|
|
||||||
|
final class TabStateWithFallbackFamily extends $Family
|
||||||
|
with $FunctionalFamilyOverride<FutureOr<TabState>, String> {
|
||||||
|
const TabStateWithFallbackFamily._()
|
||||||
|
: super(
|
||||||
|
retry: null,
|
||||||
|
name: r'tabStateWithFallbackProvider',
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
isAutoDispose: true,
|
||||||
|
);
|
||||||
|
|
||||||
|
TabStateWithFallbackProvider call(String tabId) =>
|
||||||
|
TabStateWithFallbackProvider._(argument: tabId, from: this);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() => r'tabStateWithFallbackProvider';
|
||||||
|
}
|
||||||
|
|
||||||
@ProviderFor(isTabTunneled)
|
@ProviderFor(isTabTunneled)
|
||||||
const isTabTunneledProvider = IsTabTunneledFamily._();
|
const isTabTunneledProvider = IsTabTunneledFamily._();
|
||||||
|
|
||||||
@@ -188,7 +259,7 @@ final class IsTabTunneledProvider
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String _$isTabTunneledHash() => r'2e1a911c26345951cf259ca4547d236a71607667';
|
String _$isTabTunneledHash() => r'84035f8df248cd0586016c12c1820dd902717c1d';
|
||||||
|
|
||||||
final class IsTabTunneledFamily extends $Family
|
final class IsTabTunneledFamily extends $Family
|
||||||
with $FunctionalFamilyOverride<FutureOr<bool>, String?> {
|
with $FunctionalFamilyOverride<FutureOr<bool>, String?> {
|
||||||
|
|||||||
+8
-4
@@ -96,8 +96,10 @@ class GridTabPreview extends HookConsumerWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
final tabState =
|
final tabState = ref.watch(
|
||||||
ref.watch(tabStateProvider(tabId)) ?? TabState.$default(tabId);
|
tabStateWithFallbackProvider(tabId).select((asyncValue) => asyncValue.value),
|
||||||
|
) ??
|
||||||
|
TabState.$default(tabId);
|
||||||
|
|
||||||
final extendedDeleteMenuController = useMenuController();
|
final extendedDeleteMenuController = useMenuController();
|
||||||
|
|
||||||
@@ -254,8 +256,10 @@ class ListTabPreview extends HookConsumerWidget {
|
|||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
final colorScheme = Theme.of(context).colorScheme;
|
final colorScheme = Theme.of(context).colorScheme;
|
||||||
|
|
||||||
final tabState =
|
final tabState = ref.watch(
|
||||||
ref.watch(tabStateProvider(tabId)) ?? TabState.$default(tabId);
|
tabStateWithFallbackProvider(tabId).select((asyncValue) => asyncValue.value),
|
||||||
|
) ??
|
||||||
|
TabState.$default(tabId);
|
||||||
|
|
||||||
final extendedDeleteMenuController = useMenuController();
|
final extendedDeleteMenuController = useMenuController();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user