feat(server, web): album orders (#7819)

* feat: album orders

* fix: tests

* pr feedback

* pr feedback

* pr feedback

* fix: tests

* add comment

* pr feedback

* fix: rendering issue

* wording

* fix: order value doesn't change

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
martin
2024-03-14 17:45:03 +01:00
committed by GitHub
parent 1c4637cb43
commit 31f7e1aca3
32 changed files with 251 additions and 49 deletions
@@ -58,6 +58,7 @@
updateAlbumInfo,
type ActivityResponseDto,
type UserResponseDto,
AssetOrder,
} from '@immich/sdk';
import {
mdiArrowLeft,
@@ -83,6 +84,7 @@
$: album = data.album;
$: albumId = album.id;
$: albumKey = `${albumId}_${albumOrder}`;
$: {
if (!album.isActivityEnabled && $numberOfComments === 0) {
@@ -112,8 +114,9 @@
let globalWidth: number;
let assetGridWidth: number;
let textArea: HTMLTextAreaElement;
let albumOrder: AssetOrder | undefined = data.album.order;
$: assetStore = new AssetStore({ albumId });
$: assetStore = new AssetStore({ albumId, order: albumOrder });
const assetInteractionStore = createAssetInteractionStore();
const { isMultiSelectState, selectedAssets } = assetInteractionStore;
@@ -512,7 +515,7 @@
style={`width:${assetGridWidth}px`}
>
<!-- Use key because AssetGrid can't deal with changing stores -->
{#key albumId}
{#key albumKey}
{#if viewMode === ViewMode.SELECT_ASSETS}
<AssetGrid
assetStore={timelineStore}
@@ -679,7 +682,9 @@
{#if viewMode === ViewMode.OPTIONS && $user}
<AlbumOptions
{album}
order={albumOrder}
user={$user}
onChangeOrder={(order) => (albumOrder = order)}
on:close={() => (viewMode = ViewMode.VIEW)}
on:toggleEnableActivity={handleToggleEnableActivity}
on:showSelectSharedUser={() => (viewMode = ViewMode.SELECT_USERS)}