diff --git a/src/widgets/calendar/agenda.jsx b/src/widgets/calendar/agenda.jsx index 4d319bb0..3866960a 100644 --- a/src/widgets/calendar/agenda.jsx +++ b/src/widgets/calendar/agenda.jsx @@ -6,9 +6,10 @@ import { IoMdCheckmarkCircleOutline } from "react-icons/io"; import { EventContext } from "../../utils/contexts/calendar"; -export function Event({ event, colorVariants, i18n }) { +export function Event({ event, colorVariants, showDate = false }) { const title = event.title.length > 42 ? `${event.title.slice(0, 42)}...` : event.title; const [hover, setHover] = useState(false); + const { i18n } = useTranslation(); return (
- {event.date.setLocale(i18n.language).startOf("day").toLocaleString({ month: "short", day: "numeric" })} + {showDate && + event.date.setLocale(i18n.language).startOf("day").toLocaleString({ month: "short", day: "numeric" })} @@ -28,7 +30,7 @@ export function Event({ event, colorVariants, i18n }) { className={classNames("inline-flex h-2 w-2 m-1.5 rounded", colorVariants[event.color] ?? "gray")} /> - + {hover && event.additional ? event.additional : title} {event.isCompleted && ( @@ -40,11 +42,25 @@ export function Event({ event, colorVariants, i18n }) { ); } +export function AgendaDay({ events, colorVariants }) { + return ( + <> + {events.map((event, i) => ( + + ))} + + ); +} + export default function Agenda({ service, colorVariants, showDate }) { const { widget } = service; const { events } = useContext(EventContext); const { i18n } = useTranslation(); - const currentDate = DateTime.now(); if (!showDate) { return
; @@ -58,27 +74,41 @@ export default function Agenda({ service, colorVariants, showDate }) { .sort((a, b) => a.date - b.date) .slice(0, widget?.maxEvents ?? 10); + if (!eventsArray.length) { + return ( +
+
+
+ +
+
+
+ ); + } + + const days = Array.from(new Set(eventsArray.map((e) => e.date.ts))); + const eventsByDay = days.map((d) => eventsArray.filter((e) => e.date.ts === d)); + return (
- {eventsArray?.map((event) => ( - + {eventsByDay.map((eventsDay, i) => ( + ))} - {!eventsArray?.length && ( - - )}