import { useNavigate } from "react-router-dom"; import SampleSearchResultsSection from "../components/SampleSearchResultsSection"; import { apiGet } from "../lib/api"; import type { LookupResult, PortalSampleRow } from "../lib/types"; import { useState } from "react"; function routeForLookup(result: LookupResult) { return result.sampleId && result.routeSegment ? `/samples/${result.sampleId}/${result.routeSegment}` : null; } export default function SearchCalendarPage() { const navigate = useNavigate(); const [selectedDate, setSelectedDate] = useState(""); const [samples, setSamples] = useState([]); const [message, setMessage] = useState(null); const [resultLabel, setResultLabel] = useState("Bitte Datum auswaehlen"); async function handleDateChange(nextDate: string) { setSelectedDate(nextDate); if (!nextDate) { setSamples([]); setMessage(null); setResultLabel("Bitte Datum auswaehlen"); return; } try { const rows = await apiGet( `/portal/search/by-date?date=${encodeURIComponent(nextDate)}`, ); setSamples(rows); setResultLabel(`Erfasste Proben am ${nextDate.split("-").reverse().join(".")}`); setMessage(rows.length ? null : "An diesem Tag wurden keine Proben erfasst."); } catch (dateError) { setSamples([]); setResultLabel("Keine Treffer"); setMessage((dateError as Error).message); } } async function openSample(sampleNumber: number) { try { const result = await apiGet(`/dashboard/lookup/${sampleNumber}`); const target = routeForLookup(result); if (!result.found || !target) { setMessage(result.message); return; } navigate(target); } catch (openError) { setMessage((openError as Error).message); } } return (

Suche | Kalendar

Proben nach Erfassungsdatum finden

Waehle einen Tag im Kalendar aus, um alle an diesem Datum erfassten Proben in der Liste zu sehen.

{message ?
{message}
: null}
void openSample(sampleNumber)} />
); }