fix(web): fix stale album page load (#27825)

* invalidate album data on album update to fix stale page load

* invalidate album data on album update to fix stale page load

* factor out callback, make async and await invalidate

* chore: formatting

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
This commit is contained in:
Freddie Floydd
2026-04-18 02:24:33 +01:00
committed by GitHub
parent 03af669856
commit 384d3a0984
2 changed files with 12 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { goto, onNavigate } from '$app/navigation';
import { goto, invalidate, onNavigate } from '$app/navigation';
import { scrollMemoryClearer } from '$lib/actions/scroll-memory';
import AlbumDescription from './album-description.svelte';
import AlbumMap from '$lib/components/album-page/album-map.svelte';
@@ -309,6 +309,12 @@
album = { ...album, albumUsers };
};
const onAlbumUpdate = async (newAlbum: AlbumResponseDto) => {
album = newAlbum;
await invalidate('album:data');
};
const { Cast } = $derived(getGlobalActions($t));
const { Share } = $derived(getAlbumActions($t, album));
const { AddAssets, Upload } = $derived(getAlbumAssetsActions($t, album, timelineMultiSelectManager.assets));
@@ -330,7 +336,7 @@
{onAlbumShare}
{onAlbumUserUpdate}
onAlbumUserDelete={refreshAlbum}
onAlbumUpdate={(newAlbum) => (album = newAlbum)}
{onAlbumUpdate}
/>
<CommandPaletteDefaultProvider name={$t('album')} actions={[AddAssets, Upload, Close]} />

View File

@@ -2,8 +2,11 @@ import { authenticate } from '$lib/utils/auth';
import { getAlbumInfo } from '@immich/sdk';
import type { PageLoad } from './$types';
export const load = (async ({ params, url }) => {
export const load = (async ({ params, url, depends }) => {
await authenticate(url);
depends('album:data');
const album = await getAlbumInfo({ id: params.albumId });
return {