diff --git a/frontend/src/lib/components/DateRangeCollapse.svelte b/frontend/src/lib/components/DateRangeCollapse.svelte index d8fc699..5a4198a 100644 --- a/frontend/src/lib/components/DateRangeCollapse.svelte +++ b/frontend/src/lib/components/DateRangeCollapse.svelte @@ -56,11 +56,20 @@ }).localDate; }); - if (collection && collection.start_date && collection.end_date) { + // Set the full date range for constraining purposes + $: if (collection && collection.start_date && collection.end_date) { fullStartDate = `${collection.start_date}T00:00`; fullEndDate = `${collection.end_date}T23:59`; } + // Get constraint dates in the right format based on allDay setting + $: constraintStartDate = allDay + ? fullStartDate + ? fullStartDate.split('T')[0] + : '' + : fullStartDate; + $: constraintEndDate = allDay ? (fullEndDate ? fullEndDate.split('T')[0] : '') : fullEndDate; + // Update local display dates whenever timezone or UTC dates change $: if (!isEditing) { if (allDay) { @@ -109,51 +118,69 @@ - {$t('adventures.all_day')} - { - // clear local dates when toggling all day - if (allDay) { - localStartDate = localStartDate.split('T')[0]; - localEndDate = localEndDate.split('T')[0]; - } else { - localStartDate = localStartDate + 'T00:00'; - localEndDate = localEndDate + 'T23:59'; - } - // Update UTC dates when toggling all day - utcStartDate = updateUTCDate({ - localDate: localStartDate, - timezone: selectedTimezone, - allDay - }).utcDate; - utcEndDate = updateUTCDate({ - localDate: localEndDate, - timezone: selectedTimezone, - allDay - }).utcDate; - // Update local dates when toggling all day - localStartDate = updateLocalDate({ - utcDate: utcStartDate, - timezone: selectedTimezone - }).localDate; - localEndDate = updateLocalDate({ - utcDate: utcEndDate, - timezone: selectedTimezone - }).localDate; - }} - /> - +
+ +

{$t('navbar.settings')}

+ + +
+ {$t('adventures.all_day')} + { + if (allDay) { + localStartDate = localStartDate.split('T')[0]; + localEndDate = localEndDate.split('T')[0]; + } else { + localStartDate = localStartDate + 'T00:00'; + localEndDate = localEndDate + 'T23:59'; + } + utcStartDate = updateUTCDate({ + localDate: localStartDate, + timezone: selectedTimezone, + allDay + }).utcDate; + utcEndDate = updateUTCDate({ + localDate: localEndDate, + timezone: selectedTimezone, + allDay + }).utcDate; + localStartDate = updateLocalDate({ + utcDate: utcStartDate, + timezone: selectedTimezone + }).localDate; + localEndDate = updateLocalDate({ + utcDate: utcEndDate, + timezone: selectedTimezone + }).localDate; + }} + /> +
+ + + {#if collection?.start_date && collection?.end_date} +
+ {$t('adventures.date_constrain')} + (constrainDates = !constrainDates)} + /> +
+ {/if} +
-
-