diff --git a/web/src/lib/components/shared-components/create-share-link-modal/create-shared-link-modal.svelte b/web/src/lib/components/shared-components/create-share-link-modal/create-shared-link-modal.svelte
index 97c3aaf17e..c50a07ad37 100644
--- a/web/src/lib/components/shared-components/create-share-link-modal/create-shared-link-modal.svelte
+++ b/web/src/lib/components/shared-components/create-share-link-modal/create-shared-link-modal.svelte
@@ -8,7 +8,6 @@
import { SharedLinkType, createSharedLink, updateSharedLink, type SharedLinkResponseDto } from '@immich/sdk';
import { mdiContentCopy, mdiLink } from '@mdi/js';
import { createEventDispatcher } from 'svelte';
- import DropdownButton, { type DropDownOption } from '../dropdown-button.svelte';
import { NotificationType, notificationController } from '../notification/notification';
import SettingInputField, { SettingInputFieldType } from '../settings/setting-input-field.svelte';
import SettingSwitch from '../settings/setting-switch.svelte';
@@ -16,6 +15,7 @@
import { t } from 'svelte-i18n';
import { locale } from '$lib/stores/preferences.store';
import { DateTime, Duration } from 'luxon';
+ import SettingSelect from '$lib/components/shared-components/settings/setting-select.svelte';
export let onClose: () => void;
export let albumId: string | undefined = undefined;
@@ -27,7 +27,7 @@
let allowDownload = true;
let allowUpload = false;
let showMetadata = true;
- let expirationOption: DropDownOption | undefined;
+ let expirationOption: number = 0;
let password = '';
let shouldChangeExpirationTime = false;
let enablePassword = false;
@@ -48,14 +48,12 @@
];
$: relativeTime = new Intl.RelativeTimeFormat($locale);
- $: expiredDateOption = [
- { label: $t('never'), value: 0 },
- ...expirationOptions.map(
- ([value, unit]): DropDownOption => ({
- label: relativeTime.format(value, unit),
- value: Duration.fromObject({ [unit]: value }).toMillis(),
- }),
- ),
+ $: expiredDateOptions = [
+ { text: $t('never'), value: 0 },
+ ...expirationOptions.map(([value, unit]) => ({
+ text: relativeTime.format(value, unit),
+ value: Duration.fromObject({ [unit]: value }).toMillis(),
+ })),
];
$: shareType = albumId ? SharedLinkType.Album : SharedLinkType.Individual;
@@ -82,8 +80,7 @@
}
const handleCreateSharedLink = async () => {
- const expirationDate =
- expirationOption && expirationOption.value > 0 ? DateTime.now().plus(expirationOption.value).toISO() : undefined;
+ const expirationDate = expirationOption > 0 ? DateTime.now().plus(expirationOption).toISO() : undefined;
try {
const data = await createSharedLink({
@@ -112,8 +109,7 @@
}
try {
- const expirationDate =
- expirationOption && expirationOption.value > 0 ? DateTime.now().plus(expirationOption.value).toISO() : null;
+ const expirationDate = expirationOption > 0 ? DateTime.now().plus(expirationOption).toISO() : null;
await updateSharedLink({
id: editingLink.id,
@@ -212,19 +208,18 @@
-
- {#if editingLink}
-
-
-
- {:else}
-
{$t('expire_after')}
- {/if}
-
-
+
+
+ {/if}
+
+
diff --git a/web/src/lib/components/shared-components/dropdown-button.svelte b/web/src/lib/components/shared-components/dropdown-button.svelte
deleted file mode 100644
index 450b3d5ce6..0000000000
--- a/web/src/lib/components/shared-components/dropdown-button.svelte
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
-
-
-
- {#if isOpen}
-
- {#each options as option}
-
- {/each}
-
- {/if}
-
-
-
diff --git a/web/src/lib/components/shared-components/settings/setting-select.svelte b/web/src/lib/components/shared-components/settings/setting-select.svelte
index b4efd90056..c5b9e2c02e 100644
--- a/web/src/lib/components/shared-components/settings/setting-select.svelte
+++ b/web/src/lib/components/shared-components/settings/setting-select.svelte
@@ -3,6 +3,8 @@
import { fly } from 'svelte/transition';
import { createEventDispatcher } from 'svelte';
import { t } from 'svelte-i18n';
+ import Icon from '$lib/components/elements/icon.svelte';
+ import { mdiChevronDown } from '@mdi/js';
export let value: string | number;
export let options: { value: string | number; text: string }[];
@@ -46,17 +48,27 @@
{/if}
-
+
+
+
+