update selected container

This commit is contained in:
Fabian Freund
2025-03-11 23:27:05 +01:00
parent 7d2700a481
commit 1d0889c060
2 changed files with 19 additions and 1 deletions
@@ -1,8 +1,10 @@
import 'package:flutter_mozilla_components/flutter_mozilla_components.dart'; import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
import 'package:lensai/features/geckoview/domain/providers/selected_tab.dart';
import 'package:lensai/features/geckoview/features/tabs/data/models/container_data.dart'; import 'package:lensai/features/geckoview/features/tabs/data/models/container_data.dart';
import 'package:lensai/features/geckoview/features/tabs/data/providers.dart'; import 'package:lensai/features/geckoview/features/tabs/data/providers.dart';
import 'package:lensai/features/geckoview/features/tabs/domain/providers.dart'; import 'package:lensai/features/geckoview/features/tabs/domain/providers.dart';
import 'package:lensai/features/geckoview/features/tabs/domain/repositories/container.dart'; import 'package:lensai/features/geckoview/features/tabs/domain/repositories/container.dart';
import 'package:lensai/features/geckoview/features/tabs/domain/repositories/tab.dart';
import 'package:lensai/features/user/domain/services/local_authentication.dart'; import 'package:lensai/features/user/domain/services/local_authentication.dart';
import 'package:riverpod/riverpod.dart'; import 'package:riverpod/riverpod.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart';
@@ -81,6 +83,22 @@ class SelectedContainer extends _$SelectedContainer {
} }
}); });
ref.listen(selectedTabProvider, (previous, next) async {
if (next != null) {
final tabContainerId = await ref
.read(tabDataRepositoryProvider.notifier)
.containerTabId(next);
if (tabContainerId != stateOrNull) {
if (tabContainerId != null) {
await setContainerId(tabContainerId);
} else {
clearContainer();
}
}
}
}, fireImmediately: true);
return null; return null;
} }
} }
@@ -26,7 +26,7 @@ final selectedContainerDataProvider =
@Deprecated('Will be removed in 3.0. Use Ref instead') @Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element // ignore: unused_element
typedef SelectedContainerDataRef = AutoDisposeStreamProviderRef<ContainerData?>; typedef SelectedContainerDataRef = AutoDisposeStreamProviderRef<ContainerData?>;
String _$selectedContainerHash() => r'f3fbe035aff6902c8e140f02a3efeca20a75a70f'; String _$selectedContainerHash() => r'07f534f8570135cdc47a2332d0eba9ff6fc5cf44';
/// See also [SelectedContainer]. /// See also [SelectedContainer].
@ProviderFor(SelectedContainer) @ProviderFor(SelectedContainer)