diff --git a/web/src/lib/components/album-page/album-shared-link.svelte b/web/src/lib/components/album-page/album-shared-link.svelte index 935fa7837c..580a865ae6 100644 --- a/web/src/lib/components/album-page/album-shared-link.svelte +++ b/web/src/lib/components/album-page/album-shared-link.svelte @@ -1,6 +1,6 @@ {#if albums.length > 0} diff --git a/web/src/lib/components/asset-viewer/actions/share-action.svelte b/web/src/lib/components/asset-viewer/actions/share-action.svelte index a284d5e364..bfd3312f3b 100644 --- a/web/src/lib/components/asset-viewer/actions/share-action.svelte +++ b/web/src/lib/components/asset-viewer/actions/share-action.svelte @@ -1,6 +1,5 @@ diff --git a/web/src/lib/components/timeline/actions/CreateSharedLinkAction.svelte b/web/src/lib/components/timeline/actions/CreateSharedLinkAction.svelte index 06291e2188..202b87a15b 100644 --- a/web/src/lib/components/timeline/actions/CreateSharedLinkAction.svelte +++ b/web/src/lib/components/timeline/actions/CreateSharedLinkAction.svelte @@ -1,7 +1,6 @@ diff --git a/web/src/lib/managers/event-manager.svelte.ts b/web/src/lib/managers/event-manager.svelte.ts index 7c7717a4d4..44ee524658 100644 --- a/web/src/lib/managers/event-manager.svelte.ts +++ b/web/src/lib/managers/event-manager.svelte.ts @@ -1,5 +1,5 @@ import type { ThemeSetting } from '$lib/managers/theme-manager.svelte'; -import type { LoginResponseDto } from '@immich/sdk'; +import type { LoginResponseDto, SharedLinkResponseDto } from '@immich/sdk'; export type Events = { AppInit: []; @@ -8,6 +8,8 @@ export type Events = { AuthLogout: []; LanguageChange: [{ name: string; code: string; rtl?: boolean }]; ThemeChange: [ThemeSetting]; + SharedLinkCreate: [SharedLinkResponseDto]; + SharedLinkUpdate: [SharedLinkResponseDto]; }; type Listener, K extends keyof EventMap> = (...params: EventMap[K]) => void; diff --git a/web/src/lib/modals/SharedLinkCreateModal.svelte b/web/src/lib/modals/SharedLinkCreateModal.svelte index b8444705fa..5ba0402752 100644 --- a/web/src/lib/modals/SharedLinkCreateModal.svelte +++ b/web/src/lib/modals/SharedLinkCreateModal.svelte @@ -1,26 +1,15 @@ + +
diff --git a/web/src/routes/(user)/shared-links/[[id=id]]/+page.svelte b/web/src/routes/(user)/shared-links/[[id=id]]/+page.svelte index 2aa24a57ba..4b63ce71a1 100644 --- a/web/src/routes/(user)/shared-links/[[id=id]]/+page.svelte +++ b/web/src/routes/(user)/shared-links/[[id=id]]/+page.svelte @@ -2,6 +2,7 @@ import { goto } from '$app/navigation'; import { page } from '$app/state'; import UserPageLayout from '$lib/components/layouts/user-page-layout.svelte'; + import OnEvents from '$lib/components/OnEvents.svelte'; import SharedLinkCard from '$lib/components/sharedlinks-page/shared-link-card.svelte'; import { AppRoute } from '$lib/constants'; import GroupTab from '$lib/elements/GroupTab.svelte'; @@ -50,18 +51,6 @@ } }; - const handleEditDone = async (updatedLink?: SharedLinkResponseDto) => { - if (updatedLink) { - const index = sharedLinks.findIndex((link) => link.id === updatedLink.id); - if (index !== -1) { - sharedLinks[index] = updatedLink; - } - } else { - await refresh(); - } - await goto(AppRoute.SHARED_LINKS); - }; - type Filter = 'all' | 'album' | 'individual'; const filterMap: Record = { @@ -91,8 +80,17 @@ (type === SharedLinkType.Individual && selectedTab === 'individual'), ), ); + + const onSharedLinkUpdate = (sharedLink: SharedLinkResponseDto) => { + const index = sharedLinks.findIndex((link) => link.id === sharedLink.id); + if (index !== -1) { + sharedLinks[index] = sharedLink; + } + }; + + {#snippet buttons()}