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 && (
-
- )}