feat(web): hero view transitions between timeline and asset viewer

Change-Id: I19e0c7385cc38adbc85177ae9706cff06a6a6964

fix(web): fix e2e test failures for view transitions

Change-Id: Ida64f2d509efce0a85a50b89fd4137276a6a6964
Change-Id: I19e0c7385cc38adbc85177ae9706cff06a6a6964
This commit is contained in:
midzelis
2026-04-03 17:04:45 +00:00
parent 3356e81c85
commit 4f33aed350
26 changed files with 901 additions and 61 deletions
@@ -5,6 +5,7 @@
import { assetViewerManager } from '$lib/managers/asset-viewer-manager.svelte';
import { assetCacheManager } from '$lib/managers/AssetCacheManager.svelte';
import { authManager } from '$lib/managers/auth-manager.svelte';
import { viewTransitionManager } from '$lib/managers/ViewTransitionManager.svelte';
import { TimelineManager } from '$lib/managers/timeline-manager/timeline-manager.svelte';
import type { TimelineAsset } from '$lib/managers/timeline-manager/types';
import { websocketEvents } from '$lib/stores/websocket';
@@ -97,6 +98,12 @@
};
const handleClose = async (asset: { id: string }) => {
if (viewTransitionManager.isSupported()) {
const transitionReady = assetViewerManager.untilNext('ViewerCloseTransitionReady');
assetViewerManager.emit('ViewerCloseTransition', { id: asset.id });
await transitionReady;
}
invisible = true;
assetViewerManager.gridScrollTarget = { at: asset.id };
await navigate({