From 106941327b8d71251367bf49077730e384a05a95 Mon Sep 17 00:00:00 2001 From: tskoyo Date: Mon, 29 Sep 2025 00:32:03 +0200 Subject: [PATCH 1/4] Fix edited shared link expiration time value --- .../lib/modals/SharedLinkCreateModal.svelte | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/web/src/lib/modals/SharedLinkCreateModal.svelte b/web/src/lib/modals/SharedLinkCreateModal.svelte index 88f603c16b..82b4abece8 100644 --- a/web/src/lib/modals/SharedLinkCreateModal.svelte +++ b/web/src/lib/modals/SharedLinkCreateModal.svelte @@ -48,6 +48,22 @@ })), ]); + const expiresAt = DateTime.fromISO(editingLink?.expiresAt); + console.log(editingLink?.expiresAt); + + const now = DateTime.now(); + const remainingMs = expiresAt.toMillis() - now.toMillis(); + let selectedOption = expiredDateOptions[0]; + + for (const option of expiredDateOptions) { + if (option.value <= remainingMs) { + selectedOption = option; + } + } + + console.log(expiredDateOptions); + + let shareType = $derived(albumId ? SharedLinkType.Album : SharedLinkType.Individual); $effect(() => { @@ -182,7 +198,7 @@
Date: Mon, 29 Sep 2025 00:38:12 +0200 Subject: [PATCH 2/4] Remove console log --- web/src/lib/modals/SharedLinkCreateModal.svelte | 4 ---- 1 file changed, 4 deletions(-) diff --git a/web/src/lib/modals/SharedLinkCreateModal.svelte b/web/src/lib/modals/SharedLinkCreateModal.svelte index 82b4abece8..67aa2ec8f4 100644 --- a/web/src/lib/modals/SharedLinkCreateModal.svelte +++ b/web/src/lib/modals/SharedLinkCreateModal.svelte @@ -49,7 +49,6 @@ ]); const expiresAt = DateTime.fromISO(editingLink?.expiresAt); - console.log(editingLink?.expiresAt); const now = DateTime.now(); const remainingMs = expiresAt.toMillis() - now.toMillis(); @@ -61,9 +60,6 @@ } } - console.log(expiredDateOptions); - - let shareType = $derived(albumId ? SharedLinkType.Album : SharedLinkType.Individual); $effect(() => { From 0a3dc85676dece706df4365f8561253a16d7f5d2 Mon Sep 17 00:00:00 2001 From: tskoyo Date: Mon, 29 Sep 2025 18:56:53 +0200 Subject: [PATCH 3/4] Use createdAt attribute --- web/src/lib/modals/SharedLinkCreateModal.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/lib/modals/SharedLinkCreateModal.svelte b/web/src/lib/modals/SharedLinkCreateModal.svelte index 67aa2ec8f4..2ec843fbcd 100644 --- a/web/src/lib/modals/SharedLinkCreateModal.svelte +++ b/web/src/lib/modals/SharedLinkCreateModal.svelte @@ -49,9 +49,9 @@ ]); const expiresAt = DateTime.fromISO(editingLink?.expiresAt); + const createdAt = DateTime.fromISO(editingLink?.createdAt); - const now = DateTime.now(); - const remainingMs = expiresAt.toMillis() - now.toMillis(); + const remainingMs = expiresAt.toMillis() - createdAt.toMillis(); let selectedOption = expiredDateOptions[0]; for (const option of expiredDateOptions) { From 61ca2e91550489bfb88ae14c3f7aca569e1a7d9c Mon Sep 17 00:00:00 2001 From: tskoyo Date: Mon, 29 Sep 2025 22:58:28 +0200 Subject: [PATCH 4/4] PR fix --- .../lib/modals/SharedLinkCreateModal.svelte | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/web/src/lib/modals/SharedLinkCreateModal.svelte b/web/src/lib/modals/SharedLinkCreateModal.svelte index 2ec843fbcd..345cbbb2e6 100644 --- a/web/src/lib/modals/SharedLinkCreateModal.svelte +++ b/web/src/lib/modals/SharedLinkCreateModal.svelte @@ -48,18 +48,6 @@ })), ]); - const expiresAt = DateTime.fromISO(editingLink?.expiresAt); - const createdAt = DateTime.fromISO(editingLink?.createdAt); - - const remainingMs = expiresAt.toMillis() - createdAt.toMillis(); - let selectedOption = expiredDateOptions[0]; - - for (const option of expiredDateOptions) { - if (option.value <= remainingMs) { - selectedOption = option; - } - } - let shareType = $derived(albumId ? SharedLinkType.Album : SharedLinkType.Individual); $effect(() => { @@ -81,6 +69,23 @@ albumId = editingLink.album?.id; assetIds = editingLink.assets.map(({ id }) => id); + + const expiresAt = editingLink.expiresAt ? DateTime.fromISO(editingLink.expiresAt) : DateTime.fromMillis(0); + const createdAt = DateTime.fromISO(editingLink.createdAt); + + if (expiresAt) { + const remainingMs = expiresAt.toMillis() - createdAt.toMillis(); + + const bestOption = expiredDateOptions.reduce((best, option) => { + const diff = Math.abs(option.value - remainingMs); + const bestDiff = Math.abs(best.value - remainingMs); + return diff < bestDiff ? option : best; + }); + + expirationOption = bestOption.value; + } else { + expirationOption = 0; + } } const handleCreateSharedLink = async () => { @@ -194,7 +199,7 @@