Files
workavia-calendar-front/src/features/Events/ImportAlert.tsx
T
2025-09-15 10:25:39 +02:00

49 lines
1.4 KiB
TypeScript

import { Alert, Collapse } from "@mui/material";
import { useState } from "react";
import { useAppSelector } from "../../app/hooks";
export default function ImportAlert() {
const [visibleAlerts, setVisibleAlerts] = useState<Record<string, boolean>>(
{}
);
const calendars = useAppSelector((state) => state.calendars.list);
const toggleEventAlert = (eventId: string) => {
setVisibleAlerts((prev) => ({
...prev,
[eventId]: false,
}));
};
return (
<>
{Object.keys(calendars).map((calendarId) =>
calendars[calendarId]?.events
? Object.keys(calendars[calendarId]?.events)
.filter((id) => calendars[calendarId]?.events[id].error)
.map((id) => {
const isVisible =
visibleAlerts[calendars[calendarId].events[id].uid] ?? true; // default to visible
return (
<Collapse
in={isVisible}
key={calendars[calendarId].events[id].uid}
>
<Alert
severity="error"
onClose={() =>
toggleEventAlert(calendars[calendarId].events[id].uid)
}
>
{calendars[calendarId].events[id].error}
</Alert>
</Collapse>
);
})
: []
)}
</>
);
}