fix: do only after ot

This commit is contained in:
2026-02-22 19:45:03 +03:00
parent 2a9449ba58
commit 7cf188a55c

View File

@@ -15,6 +15,12 @@ interface DeviceLogsModalProps {
} }
const toYYYYMMDD = (d: Date) => d.toISOString().slice(0, 10); const toYYYYMMDD = (d: Date) => d.toISOString().slice(0, 10);
const shiftYYYYMMDD = (value: string, days: number) => {
const d = new Date(`${value}T00:00:00Z`);
if (Number.isNaN(d.getTime())) return value;
d.setUTCDate(d.getUTCDate() + days);
return toYYYYMMDD(d);
};
type LogLevel = "info" | "warn" | "error" | "debug" | "fatal" | "unknown"; type LogLevel = "info" | "warn" | "error" | "debug" | "fatal" | "unknown";
@@ -133,6 +139,24 @@ export const DeviceLogsModal = ({
const yesterday = new Date(today.getTime() - 24 * 60 * 60 * 1000); const yesterday = new Date(today.getTime() - 24 * 60 * 60 * 1000);
const [dateFrom, setDateFrom] = useState(toYYYYMMDD(yesterday)); const [dateFrom, setDateFrom] = useState(toYYYYMMDD(yesterday));
const [dateTo, setDateTo] = useState(toYYYYMMDD(today)); const [dateTo, setDateTo] = useState(toYYYYMMDD(today));
const dateToMin = shiftYYYYMMDD(dateFrom, 1);
const dateFromMax = shiftYYYYMMDD(dateTo, -1);
const handleDateFromChange = (value: string) => {
setDateFrom(value);
if (!dateTo || dateTo <= value) {
setDateTo(shiftYYYYMMDD(value, 1));
}
};
const handleDateToChange = (value: string) => {
if (value <= dateFrom) {
toast.info("Дата 'До' должна быть позже даты 'От'");
setDateTo(shiftYYYYMMDD(dateFrom, 1));
return;
}
setDateTo(value);
};
useEffect(() => { useEffect(() => {
if (!open || !deviceUuid) return; if (!open || !deviceUuid) return;
@@ -235,16 +259,22 @@ export const DeviceLogsModal = ({
label="От" label="От"
size="small" size="small"
value={dateFrom} value={dateFrom}
onChange={(e) => setDateFrom(e.target.value)} onChange={(e) => handleDateFromChange(e.target.value)}
slotProps={{ inputLabel: { shrink: true } }} slotProps={{
inputLabel: { shrink: true },
htmlInput: { max: dateFromMax },
}}
/> />
<TextField <TextField
type="date" type="date"
label="До" label="До"
size="small" size="small"
value={dateTo} value={dateTo}
onChange={(e) => setDateTo(e.target.value)} onChange={(e) => handleDateToChange(e.target.value)}
slotProps={{ inputLabel: { shrink: true } }} slotProps={{
inputLabel: { shrink: true },
htmlInput: { min: dateToMin },
}}
/> />
<Button <Button
variant="outlined" variant="outlined"