1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-23 14:59:36 +02:00

refactor: Simplify date handling by replacing updateLocalDates and updateUTCDates with updateLocalDate and updateUTCDate functions

This commit is contained in:
Sean Morley 2025-04-19 21:53:17 -04:00
parent c12f94855d
commit 85b4db87ec
2 changed files with 48 additions and 65 deletions

View file

@ -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);

View file

@ -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)
};
}