mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
fix(mobile): asset viewer stuck on spinner after rotation
This commit is contained in:
@@ -56,10 +56,13 @@ class _AssetPageState extends ConsumerState<AssetPage> {
|
|||||||
_DragIntent _dragIntent = _DragIntent.none;
|
_DragIntent _dragIntent = _DragIntent.none;
|
||||||
Drag? _drag;
|
Drag? _drag;
|
||||||
|
|
||||||
|
BaseAsset? _asset;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
_eventSubscription = EventStream.shared.listen(_onEvent);
|
_eventSubscription = EventStream.shared.listen(_onEvent);
|
||||||
|
_asset = ref.read(timelineServiceProvider).getAssetSafe(widget.index);
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
if (!mounted || !_scrollController.hasClients) {
|
if (!mounted || !_scrollController.hasClients) {
|
||||||
return;
|
return;
|
||||||
@@ -71,6 +74,14 @@ class _AssetPageState extends ConsumerState<AssetPage> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didUpdateWidget(AssetPage oldWidget) {
|
||||||
|
super.didUpdateWidget(oldWidget);
|
||||||
|
if (oldWidget.index != widget.index) {
|
||||||
|
_asset = ref.read(timelineServiceProvider).getAssetSafe(widget.index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_scrollController.dispose();
|
_scrollController.dispose();
|
||||||
@@ -383,7 +394,7 @@ class _AssetPageState extends ConsumerState<AssetPage> {
|
|||||||
final stackIndex = ref.watch(assetViewerProvider.select((s) => s.stackIndex));
|
final stackIndex = ref.watch(assetViewerProvider.select((s) => s.stackIndex));
|
||||||
final isPlayingMotionVideo = ref.watch(isPlayingMotionVideoProvider);
|
final isPlayingMotionVideo = ref.watch(isPlayingMotionVideoProvider);
|
||||||
|
|
||||||
final asset = ref.read(timelineServiceProvider).getAssetSafe(widget.index);
|
final asset = _asset;
|
||||||
if (asset == null) {
|
if (asset == null) {
|
||||||
return const Center(child: ImmichLoadingIndicator());
|
return const Center(child: ImmichLoadingIndicator());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user