diff --git a/app/api/data/route.ts b/app/api/data/route.ts index d5ce8f9..c9f3013 100644 --- a/app/api/data/route.ts +++ b/app/api/data/route.ts @@ -5,6 +5,10 @@ import { checkAblauf } from '@/lib/checkAblauf'; import moment from 'moment'; import { Tablette, DataResponse } from '@/types/tablette'; +// Verhindert Caching der Route +export const dynamic = 'force-dynamic'; +export const revalidate = 0; + function formatDate(dt: Date | string | null): string { if (!dt) return ''; const d = moment(dt); @@ -24,22 +28,26 @@ export async function GET(req: NextRequest) { try { const [rows] = await pool.query( - `SELECT tab, pday, cnt, at, akt, until, warn, rem, \`order\` + `SELECT tab, pday, cnt, at, rem, \`order\` FROM tabletten ORDER BY ${col} ${sord}, rem DESC, tab ASC` ); - const values: Tablette[] = rows.map((r) => ({ - tab: r.tab, - pday: r.pday, - cnt: r.cnt, - at: formatDate(r.at), - akt: r.akt, - until: formatDate(r.until), - warn: r.warn === 1 || r.warn === true, - rem: r.rem, - order: r.order, - })); + const values: Tablette[] = rows.map((r) => { + // Berechne die aktuellen Werte dynamisch basierend auf dem heutigen Datum + const calculated = checkAblauf({ cnt: r.cnt, pday: r.pday, at: r.at }); + return { + tab: r.tab, + pday: r.pday, + cnt: r.cnt, + at: formatDate(r.at), + akt: calculated.akt, + until: formatDate(calculated.until), + warn: calculated.warn, + rem: r.rem, + order: r.order, + }; + }); const result: DataResponse = { total: 1, diff --git a/components/AppLayout.tsx b/components/AppLayout.tsx index 8d74a16..d6ca47c 100644 --- a/components/AppLayout.tsx +++ b/components/AppLayout.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useEffect, useState } from 'react'; +import { useState } from 'react'; import LogoutButton from '@/components/LogoutButton'; import packageJson from '@/package.json'; @@ -10,13 +10,9 @@ interface AppLayoutProps { export default function AppLayout({ children }: AppLayoutProps) { const version = packageJson.version; - const [buildDate, setBuildDate] = useState(process.env.NEXT_PUBLIC_BUILD_DATE || ''); - - useEffect(() => { - if (!buildDate) { - setBuildDate(new Date().toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' })); - } - }, []); + const [buildDate] = useState(() => + process.env.NEXT_PUBLIC_BUILD_DATE || new Date().toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' }) + ); return (