diff --git a/apps/www/src/lib/components/downloads/ClaimedCredits.svelte b/apps/www/src/lib/components/downloads/ClaimedCredits.svelte index 8bce3460..6d89776a 100644 --- a/apps/www/src/lib/components/downloads/ClaimedCredits.svelte +++ b/apps/www/src/lib/components/downloads/ClaimedCredits.svelte @@ -3,18 +3,11 @@ import { Download } from '@lucide/svelte'; import Input from '../ui/Input.svelte'; import Button from '../ui/Button.svelte'; + import { ISOStandard } from '$lib/date'; let startDate = $state(''); let loading = $state(false); - let endDate = $state(''); - - $effect(() => { - if (!endDate) { - const today = new Date(); - const formattedDate = today.toISOString().slice(0, 16); - endDate = formattedDate; - } - }); + let endDate = $derived(ISOStandard(new Date()));
diff --git a/apps/www/src/routes/portal/claim-beer/+page.server.ts b/apps/www/src/routes/portal/claim-beer/+page.server.ts index f62431da..bec89920 100644 --- a/apps/www/src/routes/portal/claim-beer/+page.server.ts +++ b/apps/www/src/routes/portal/claim-beer/+page.server.ts @@ -4,6 +4,7 @@ import { fail } from '@sveltejs/kit'; import { getProducts } from '$lib/api/sanity/products'; import { claimedCredits, users } from '$lib/db/schemas'; import { gte, eq, desc, lte, and } from 'drizzle-orm'; +import { formatDate } from '$lib/date'; export const load: PageServerLoad = async ({ locals }) => { const userId = await locals.user?.id; @@ -177,20 +178,6 @@ export const actions: Actions = { return `"${stringField}"`; }; - const formatDate = (date: Date): string => { - return date - .toLocaleString('en-US', { - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit', - hour12: false - }) - .replace(/,/g, ''); - }; - const headers = ['Product', 'Name', 'Cost', 'Created At']; const csvRows = [headers.join(',')]; diff --git a/apps/www/src/routes/portal/claim-beer/+page.svelte b/apps/www/src/routes/portal/claim-beer/+page.svelte index 09270ba2..a765f825 100644 --- a/apps/www/src/routes/portal/claim-beer/+page.svelte +++ b/apps/www/src/routes/portal/claim-beer/+page.svelte @@ -10,6 +10,7 @@ import { FilterState } from '$lib/states/filter-state.svelte'; import { urlFor } from '$lib/api/sanity/image'; import Button from '$lib/components/ui/Button.svelte'; + import { normalDate } from '$lib/date'; let loading = $state(false); let selectedProduct = $state(null); @@ -88,16 +89,6 @@ } claimedProduct = null; } - - function formatDate(date: Date) { - return new Date(date).toLocaleString('no-NO', { - day: '2-digit', - month: '2-digit', - year: 'numeric', - hour: '2-digit', - minute: '2-digit' - }); - } @@ -254,7 +245,7 @@ {#if data.lastClaimed}

- Historikk: {data.lastClaimed.productName} - {formatDate(data.lastClaimed.claimedAt)} + Historikk: {data.lastClaimed.productName} - {normalDate(data.lastClaimed.claimedAt)}

{/if} {/if} diff --git a/internal/emails/emails/shiftemail.tsx b/internal/emails/emails/shiftemail.tsx index 1b39fa88..7b55157b 100644 --- a/internal/emails/emails/shiftemail.tsx +++ b/internal/emails/emails/shiftemail.tsx @@ -36,11 +36,13 @@ const ShiftEmail = ({ shift, user }: ShiftEmailProps) => { - Fra: {new Date(shift.startAt).toLocaleString()} + Fra:{" "} + {new Date(shift.startAt).toLocaleString("nb-NO")} - Til: {new Date(shift.endAt).toLocaleString()} + Til:{" "} + {new Date(shift.endAt).toLocaleString("nb-NO")} {shift.description && (