From 21ca5bf19286cd373e1dfac35dce359b80bf6654 Mon Sep 17 00:00:00 2001 From: midzelis Date: Mon, 16 Mar 2026 01:42:10 +0000 Subject: [PATCH] refactor(web): responsive asset viewer layout for portrait and landscape --- .../asset-viewer/asset-viewer.svelte | 108 +++++++++++------- .../asset-viewer/detail-panel.svelte | 11 +- .../faces-page/person-side-panel.svelte | 2 +- 3 files changed, 72 insertions(+), 49 deletions(-) diff --git a/web/src/lib/components/asset-viewer/asset-viewer.svelte b/web/src/lib/components/asset-viewer/asset-viewer.svelte index 572af0ff75..9d40f72d08 100644 --- a/web/src/lib/components/asset-viewer/asset-viewer.svelte +++ b/web/src/lib/components/asset-viewer/asset-viewer.svelte @@ -444,6 +444,8 @@ !assetViewerManager.isShowEditor, ); + const hasSidePanel = $derived(showDetailPanel || assetViewerManager.isShowEditor); + const onSwipe = (event: SwipeCustomEvent) => { if (assetViewerManager.zoom > 1) { return; @@ -470,7 +472,7 @@
@@ -508,13 +510,21 @@ {/if} {#if $slideshowState === SlideshowState.None && showNavigation && !assetViewerManager.isShowEditor && !isFaceEditMode.value && previousAsset} -
+
navigateAsset('previous')} />
{/if} -
+
{#if viewerKind === 'StackVideoViewer'}
{/if} + + {#if stack && withStacked && !assetViewerManager.isShowEditor} + {@const stackedAssets = stack.assets} +
+ +
+ {/if}
{#if $slideshowState === SlideshowState.None && showNavigation && !assetViewerManager.isShowEditor && !isFaceEditMode.value && nextAsset} -
+
navigateAsset('next')} />
{/if} @@ -590,57 +646,23 @@
{#if showDetailPanel} -
+
{:else if assetViewerManager.isShowEditor} -
+
{/if}
{/if} - {#if stack && withStacked && !assetViewerManager.isShowEditor} - {@const stackedAssets = stack.assets} -
-
- {#each stackedAssets as stackedAsset (stackedAsset.id)} -
- { - cursor.current = stackedAsset; - previewStackedAsset = undefined; - }} - onMouseEvent={({ isMouseOver }) => handleStackedAssetMouseEvent(isMouseOver, stackedAsset)} - readonly - thumbnailSize={stackedAsset.id === asset.id ? stackSelectedThumbnailSize : stackThumbnailSize} - showStackedIcon={false} - disableLinkMouseOver - /> - - {#if stackedAsset.id === asset.id} -
-
-
- {/if} -
- {/each} -
-
- {/if} - {#if isShared && album && assetViewerManager.isShowActivityPanel && $user}
{#if isOwner} -
+
{/if} @@ -349,20 +349,21 @@
-
+
{/if}
-
+

{asset.originalFileName} {#if isOwner} -

+
{#if asset.exifInfo?.make || asset.exifInfo?.model} @@ -436,7 +437,7 @@ {#if asset.exifInfo?.lensModel || asset.exifInfo?.fNumber || asset.exifInfo?.focalLength}
-
+
{#if asset.exifInfo?.lensModel} diff --git a/web/src/lib/components/faces-page/person-side-panel.svelte b/web/src/lib/components/faces-page/person-side-panel.svelte index a9f91c733c..29a685f7b4 100644 --- a/web/src/lib/components/faces-page/person-side-panel.svelte +++ b/web/src/lib/components/faces-page/person-side-panel.svelte @@ -190,7 +190,7 @@