From 85b4db87ec325e216350c0e37e9bc117836c8b39 Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Sat, 19 Apr 2025 21:53:17 -0400 Subject: [PATCH] refactor: Simplify date handling by replacing updateLocalDates and updateUTCDates with updateLocalDate and updateUTCDate functions --- .../lib/components/TransportationModal.svelte | 77 +++++++++---------- frontend/src/lib/dateUtils.ts | 36 +++------ 2 files changed, 48 insertions(+), 65 deletions(-) diff --git a/frontend/src/lib/components/TransportationModal.svelte b/frontend/src/lib/components/TransportationModal.svelte index 944b8e2..342dbd5 100644 --- a/frontend/src/lib/components/TransportationModal.svelte +++ b/frontend/src/lib/components/TransportationModal.svelte @@ -6,14 +6,7 @@ import { addToast } from '$lib/toasts'; let modal: HTMLDialogElement; import { t } from 'svelte-i18n'; - import { - toLocalDatetime, - toUTCDatetime, - updateLocalDates, - updateUTCDates, - validateDateRange, - formatUTCDate - } from '$lib/dateUtils'; + import { updateLocalDate, updateUTCDate, validateDateRange, formatUTCDate } from '$lib/dateUtils'; // Initialize with browser's timezone let selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone; @@ -79,13 +72,14 @@ // Update local display dates whenever timezone or UTC dates change $: { - const updatedDates = updateLocalDates({ - utcStartDate, - utcEndDate, + localStartDate = updateLocalDate({ + utcDate: utcStartDate, timezone: selectedTimezone - }); - localStartDate = updatedDates.localStartDate; - localEndDate = updatedDates.localEndDate; + }).localDate; + localEndDate = updateLocalDate({ + utcDate: utcEndDate, + timezone: selectedTimezone + }).localDate; } onMount(async () => { @@ -103,14 +97,14 @@ utcEndDate = transportationToEdit.end_date; } - // Update local dates based on UTC dates - const updatedDates = updateLocalDates({ - utcStartDate, - utcEndDate, + localStartDate = updateLocalDate({ + utcDate: utcStartDate, timezone: selectedTimezone - }); - localStartDate = updatedDates.localStartDate; - localEndDate = updatedDates.localEndDate; + }).localDate; + localEndDate = updateLocalDate({ + utcDate: utcEndDate, + timezone: selectedTimezone + }).localDate; }); function close() { @@ -125,13 +119,14 @@ // Update UTC dates when local dates change function handleLocalDateChange() { - const updated = updateUTCDates({ - localStartDate, - localEndDate, + utcStartDate = updateUTCDate({ + localDate: localStartDate, timezone: selectedTimezone - }); - utcStartDate = updated.utcStartDate; - utcEndDate = updated.utcEndDate; + }).utcDate; + utcEndDate = updateUTCDate({ + localDate: localEndDate, + timezone: selectedTimezone + }).utcDate; } async function geocode(e: Event | null) { @@ -264,14 +259,14 @@ utcStartDate = data.date; utcEndDate = data.end_date; - // Update displayed dates using utility function - const updatedDates = updateLocalDates({ - utcStartDate, - utcEndDate, + localStartDate = updateLocalDate({ + utcDate: utcStartDate, timezone: selectedTimezone - }); - localStartDate = updatedDates.localStartDate; - localEndDate = updatedDates.localEndDate; + }).localDate; + localEndDate = updateLocalDate({ + utcDate: utcEndDate, + timezone: selectedTimezone + }).localDate; addToast('success', $t('adventures.adventure_created')); dispatch('save', transportation); @@ -294,14 +289,14 @@ utcStartDate = data.date; utcEndDate = data.end_date; - // Update displayed dates using utility function - const updatedDates = updateLocalDates({ - utcStartDate, - utcEndDate, + localStartDate = updateLocalDate({ + utcDate: utcStartDate, timezone: selectedTimezone - }); - localStartDate = updatedDates.localStartDate; - localEndDate = updatedDates.localEndDate; + }).localDate; + localEndDate = updateLocalDate({ + utcDate: utcEndDate, + timezone: selectedTimezone + }).localDate; addToast('success', $t('adventures.adventure_updated')); dispatch('save', transportation); diff --git a/frontend/src/lib/dateUtils.ts b/frontend/src/lib/dateUtils.ts index fdf2c8c..d47f119 100644 --- a/frontend/src/lib/dateUtils.ts +++ b/frontend/src/lib/dateUtils.ts @@ -33,42 +33,30 @@ export function toUTCDatetime( } /** - * Updates local datetime display values based on UTC values and timezone - * @param params Object containing UTC dates and timezone - * @returns Object with updated local datetime strings + * Updates local datetime values based on UTC date and timezone + * @param params Object containing UTC date and timezone + * @returns Object with updated local datetime string */ -export function updateLocalDates({ - utcStartDate, - utcEndDate, +export function updateLocalDate({ + utcDate, timezone }: { - utcStartDate: string | null; - utcEndDate: string | null; + utcDate: string | null; timezone: string; }) { return { - localStartDate: toLocalDatetime(utcStartDate, timezone), - localEndDate: toLocalDatetime(utcEndDate, timezone) + localDate: toLocalDatetime(utcDate, timezone) }; } /** - * Updates UTC datetime values based on local values and timezone - * @param params Object containing local dates and timezone - * @returns Object with updated UTC datetime strings + * Updates UTC datetime values based on local datetime and timezone + * @param params Object containing local date and timezone + * @returns Object with updated UTC datetime string */ -export function updateUTCDates({ - localStartDate, - localEndDate, - timezone -}: { - localStartDate: string; - localEndDate: string; - timezone: string; -}) { +export function updateUTCDate({ localDate, timezone }: { localDate: string; timezone: string }) { return { - utcStartDate: toUTCDatetime(localStartDate, timezone), - utcEndDate: toUTCDatetime(localEndDate, timezone) + utcDate: toUTCDatetime(localDate, timezone) }; }