"use client"; // components/main/analogInputs/AnalogInputsDatePicker.tsx import React, { useEffect, useState } from "react"; import DatePicker from "react-datepicker"; import "react-datepicker/dist/react-datepicker.css"; type Props = { from: string; to: string; onChange: (from: string, to: string) => void; }; export default function AnalogInputsDatePicker({ from, to, onChange }: Props) { const today = new Date(); const thirtyDaysAgo = new Date(); thirtyDaysAgo.setDate(today.getDate() - 30); const sixMonthsAgo = new Date(); sixMonthsAgo.setMonth(today.getMonth() - 6); // interne Date-Objekte für react-datepicker const parseISO = (dateStr: string) => { if (!dateStr) return null; const [year, month, day] = dateStr.split("-").map(Number); return new Date(year, month - 1, day); }; const formatISO = (date: Date) => date.toLocaleDateString("sv-SE"); // yyyy-MM-dd const [localFromDate, setLocalFromDate] = useState( from ? parseISO(from) : thirtyDaysAgo ); const [localToDate, setLocalToDate] = useState( to ? parseISO(to) : today ); // Wenn Props von außen kommen (z.B. Reset), synchronisieren useEffect(() => { if (from) setLocalFromDate(parseISO(from)); if (to) setLocalToDate(parseISO(to)); }, [from, to]); const handleFromChange = (date: Date | null) => { setLocalFromDate(date); if (date && localToDate) { onChange(formatISO(date), formatISO(localToDate)); } }; const handleToChange = (date: Date | null) => { setLocalToDate(date); if (localFromDate && date) { onChange(formatISO(localFromDate), formatISO(date)); } }; return (
{/* Von */}
{/* Bis */}
); }