diff --git a/web/src/lib/components/sharedlinks-page/covers/share-cover.svelte b/web/src/lib/components/sharedlinks-page/covers/share-cover.svelte index ec3deb9943..3e66c13448 100644 --- a/web/src/lib/components/sharedlinks-page/covers/share-cover.svelte +++ b/web/src/lib/components/sharedlinks-page/covers/share-cover.svelte @@ -15,7 +15,7 @@ let { sharedLink, preload = false, class: className = '' }: Props = $props(); -
+
{#if sharedLink?.album} {:else if sharedLink.assets[0]} diff --git a/web/src/lib/components/sharedlinks-page/shared-link-card.svelte b/web/src/lib/components/sharedlinks-page/shared-link-card.svelte index 6de97e94f9..7187dc22ad 100644 --- a/web/src/lib/components/sharedlinks-page/shared-link-card.svelte +++ b/web/src/lib/components/sharedlinks-page/shared-link-card.svelte @@ -2,11 +2,10 @@ import ActionButton from '$lib/components/ActionButton.svelte'; import ShareCover from '$lib/components/sharedlinks-page/covers/share-cover.svelte'; import { AppRoute } from '$lib/constants'; - import Badge from '$lib/elements/Badge.svelte'; import { getSharedLinkActions } from '$lib/services/shared-link.service'; import { locale } from '$lib/stores/preferences.store'; import { SharedLinkType, type SharedLinkResponseDto } from '@immich/sdk'; - import { ContextMenuButton, MenuItemType } from '@immich/ui'; + import { Badge, ContextMenuButton, MenuItemType, Text } from '@immich/ui'; import { DateTime, type ToRelativeUnit } from 'luxon'; import { t } from 'svelte-i18n'; @@ -45,53 +44,50 @@ > -
-
-
- {#if isExpired} -

{$t('expired')}

- {:else if expiresAt} -

- {$t('expires_date', { values: { date: getCountDownExpirationDate(expiresAt, now) } })} -

- {:else} -

{$t('expires_date', { values: { date: '∞' } })}

- {/if} -
+
+ + {#if sharedLink.type === SharedLinkType.Album} + {sharedLink.album?.albumName} + {:else if sharedLink.type === SharedLinkType.Individual} + {$t('individual_share')} + {/if} + -
-

- {#if sharedLink.type === SharedLinkType.Album} - {sharedLink.album?.albumName} - {:else if sharedLink.type === SharedLinkType.Individual} - {$t('individual_share')} - {/if} -

- -

{sharedLink.description ?? ''}

-
-
- -
- {#if sharedLink.allowUpload} - {$t('upload')} +
+ {#if isExpired} + {$t('expired')} + {:else if expiresAt} + + {$t('expires_date', { values: { date: getCountDownExpirationDate(expiresAt, now) } })} + + {:else} + {$t('expires_date', { values: { date: '∞' } })} {/if} - {#if sharedLink.allowDownload} - {$t('download')} + {#if sharedLink.slug} + {$t('custom_url')} + {/if} + + {#if sharedLink.allowUpload} + {$t('upload')} + {/if} + + {#if sharedLink.showMetadata && sharedLink.allowDownload} + {$t('download')} {/if} {#if sharedLink.showMetadata} - {$t('exif')} + {$t('exif')} {/if} {#if sharedLink.password} - {$t('password')} - {/if} - {#if sharedLink.slug} - {$t('custom_url')} + {$t('password')} {/if}
+ + {#if sharedLink.description} + {sharedLink.description} + {/if}
diff --git a/web/src/lib/services/shared-link.service.ts b/web/src/lib/services/shared-link.service.ts index ea7f158db8..4e6a942682 100644 --- a/web/src/lib/services/shared-link.service.ts +++ b/web/src/lib/services/shared-link.service.ts @@ -17,19 +17,19 @@ import { type SharedLinkResponseDto, } from '@immich/sdk'; import { modalManager, toastManager, type ActionItem } from '@immich/ui'; -import { mdiCircleEditOutline, mdiContentCopy, mdiDelete, mdiQrcode } from '@mdi/js'; +import { mdiContentCopy, mdiPencilOutline, mdiQrcode, mdiTrashCanOutline } from '@mdi/js'; import type { MessageFormatter } from 'svelte-i18n'; export const getSharedLinkActions = ($t: MessageFormatter, sharedLink: SharedLinkResponseDto) => { const Edit: ActionItem = { title: $t('edit_link'), - icon: mdiCircleEditOutline, + icon: mdiPencilOutline, onAction: () => void goto(`${AppRoute.SHARED_LINKS}/${sharedLink.id}`), }; const Delete: ActionItem = { title: $t('delete_link'), - icon: mdiDelete, + icon: mdiTrashCanOutline, color: 'danger', onAction: () => void handleDeleteSharedLink(sharedLink), };