22 lines
1 KiB
JavaScript
22 lines
1 KiB
JavaScript
// Rôle : orchestre l'outil calendrier et délègue l'état métier à son contrôleur.
|
|
import { CalendarContent } from "./CalendarContent.jsx";
|
|
import { CalendarModeChoice } from "./CalendarModeChoice.jsx";
|
|
import { useCalendarController } from "./useCalendarController.js";
|
|
|
|
export function CalendarModule({ toolboxId, moduleId, context, editing = false, setEditing, configurationTarget }) {
|
|
const data = context.normalizeCalendarData(context.getModuleData(toolboxId, moduleId, { initialized: false, viewMode: "week", events: [] }));
|
|
const textContent = context.moduleText?.calendar || {};
|
|
const controller = useCalendarController({ data, context, toolboxId, moduleId, editing, setEditing, textContent });
|
|
|
|
if (!data.initialized) {
|
|
return (
|
|
<CalendarModeChoice
|
|
textContent={textContent}
|
|
onInitializeWeek={controller.initializeWeek}
|
|
onInitializeMonth={controller.initializeMonth}
|
|
/>
|
|
);
|
|
}
|
|
|
|
return <CalendarContent {...controller.contentProps} configurationTarget={configurationTarget} />;
|
|
}
|