diff --git a/src/lib/components/dualTimeView.svelte b/src/lib/components/dualTimeView.svelte index d56140537..c761ec146 100644 --- a/src/lib/components/dualTimeView.svelte +++ b/src/lib/components/dualTimeView.svelte @@ -1,7 +1,7 @@ - setTimeout(show, 100)} on:mouseleave={() => hidePopover(hide)}> + setTimeout(show, 150)} on:mouseleave={() => hidePopover(hide)}> {capitalize(timeFromNow(time))} @@ -92,23 +92,31 @@ - + + value={new Date(time).toISOString()} /> - + - + value={toLocalDateTimeISO(time)} /> + diff --git a/src/lib/helpers/date.ts b/src/lib/helpers/date.ts index 012d49cb3..420d1ab45 100644 --- a/src/lib/helpers/date.ts +++ b/src/lib/helpers/date.ts @@ -86,6 +86,29 @@ export const toLocaleTimeISO = (datetime: string | number) => { return date.toLocaleTimeString('sv'); }; +/** + * Returns a local datetime string in ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sss), + * matching local time, without the 'Z' suffix. + * + * @returns Local ISO string (with ms) or 'n/a' if invalid + */ +export const toLocalDateTimeISO = (datetime: string | number): string => { + const date = new Date(datetime); + + if (isNaN(date.getTime())) { + return 'n/a'; + } + + // Get timezone offset in minutes, convert to ms + const tzOffsetMs = date.getTimezoneOffset() * 60 * 1000; + + // Shift date to local time + const local = new Date(date.getTime() - tzOffsetMs); + + // Drop the trailing 'Z' to keep it as local + return local.toISOString().replace('Z', ''); +}; + export const utcHourToLocaleHour = (utcTimeString: string) => { const now = new Date(); const [hours, minutes] = utcTimeString.split(':').map(Number); diff --git a/src/lib/layout/createProject.svelte b/src/lib/layout/createProject.svelte index 9b0bb7551..a0ba50009 100644 --- a/src/lib/layout/createProject.svelte +++ b/src/lib/layout/createProject.svelte @@ -61,11 +61,7 @@ }}> Project ID {/if} - + {#if isCloud && regions.length > 0} {:else} - + {/if} diff --git a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/settings/updateMaxFileSize.svelte b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/settings/updateMaxFileSize.svelte index d3b186c46..78611e19e 100644 --- a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/settings/updateMaxFileSize.svelte +++ b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/settings/updateMaxFileSize.svelte @@ -11,7 +11,7 @@ import { updateBucket } from './+page.svelte'; import type { Plan } from '$lib/sdk/billing'; import type { Models } from '@appwrite.io/console'; - + export let bucket: Models.Bucket; export let currentPlan: Plan | null;