feat: cache shared link (#27889)

pull/27893/head
Daniel Dietzler 2026-04-17 14:17:39 +02:00 committed by GitHub
parent 79c392ceba
commit 41968fdcac
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 3 deletions

View File

@ -1,4 +1,4 @@
import { getAssetMediaUrl, setSharedLink } from '$lib/utils';
import { getAssetMediaUrl, getSharedLink as getCachedSharedLink, setSharedLink } from '$lib/utils';
import { authenticate } from '$lib/utils/auth';
import { getFormatter } from '$lib/utils/i18n';
import { getAssetInfoFromParam } from '$lib/utils/navigation';
@ -28,11 +28,16 @@ export const loadSharedLink = async ({
await authenticate(url, { public: true });
const common = { key, slug };
const $t = await getFormatter();
const cachedSharedLink = getCachedSharedLink();
const sharedLinkPromise =
cachedSharedLink && (key === cachedSharedLink.key || slug === cachedSharedLink.slug)
? Promise.resolve(cachedSharedLink)
: getMySharedLink({ key, slug });
try {
const [sharedLink, asset] = await Promise.all([getMySharedLink({ key, slug }), getAssetInfoFromParam(params)]);
const [sharedLink, asset] = await Promise.all([sharedLinkPromise, getAssetInfoFromParam(params)]);
setSharedLink(sharedLink);
const assetCount = sharedLink.assets.length;
const assetId = sharedLink.album?.albumThumbnailAssetId || sharedLink.assets[0]?.id;