import { PluginDef } from "@fullcalendar/core/index.js"; import { ViewModeProps } from "../interface"; import Calendar from "./calendar"; import { useEffect, useState } from "preact/hooks"; import "./index.css"; import { useTriliumOption, useTriliumOptionInt } from "../../react/hooks"; interface CalendarViewData { } const CALENDAR_VIEWS = [ "timeGridWeek", "dayGridMonth", "multiMonthYear", "listMonth" ] export default function CalendarView({ note, noteIds }: ViewModeProps) { const plugins = usePlugins(false, false); const [ firstDayOfWeek ] = useTriliumOptionInt("firstDayOfWeek"); return (plugins &&
); } function usePlugins(isEditable: boolean, isCalendarRoot: boolean) { const [ plugins, setPlugins ] = useState(); useEffect(() => { async function loadPlugins() { const plugins: PluginDef[] = []; plugins.push((await import("@fullcalendar/daygrid")).default); plugins.push((await import("@fullcalendar/timegrid")).default); plugins.push((await import("@fullcalendar/list")).default); plugins.push((await import("@fullcalendar/multimonth")).default); if (isEditable || isCalendarRoot) { plugins.push((await import("@fullcalendar/interaction")).default); } setPlugins(plugins); } loadPlugins(); }, [ isEditable, isCalendarRoot ]); return plugins; }