lib/vue/components/calendar.vue in lesli_calendar-0.2.1 vs lib/vue/components/calendar.vue in lesli_calendar-0.2.2

- old
+ new

@@ -30,11 +30,11 @@ // · */ // · Import components, libraries and tools -import { onMounted, inject, ref } from "vue" +import { onMounted, watch, inject, ref } from "vue" import { Calendar } from "@fullcalendar/core"; import listPlugin from "@fullcalendar/list"; import dayGridPlugin from "@fullcalendar/daygrid"; import timeGridPlugin from "@fullcalendar/timegrid"; @@ -49,10 +49,11 @@ const storeCalendar = useCalendar() // · const date = inject("date") +const calendar = ref(false) function onDateClick() { // const storeEvent = useEvent() // this.reset() @@ -102,14 +103,41 @@ time.classList.add("event-time") return { domNodes: [title, time] } } + +function loadEvents() { + + // Add calendar events + storeCalendar.calendar.events.forEach(event => { + calendar.value.addEvent({ + title: event.title, + start: event.date, + description: event.description, + classNames: event.classNames + }) + }) + + // Add calendar events + storeCalendar.calendar.events_support.forEach(event => { + calendar.value.addEvent({ + title: event.title, + start: event.date, + description: event.description, + classNames: event.classNames + }) + }) + +} + + + // · onMounted(() => { - storeCalendar.calendar = new Calendar(document.getElementById("lesli-calendar"), { + calendar.value = new Calendar(document.getElementById("lesli-calendar"), { plugins: [ dayGridPlugin, interactionPlugin, timeGridPlugin, listPlugin @@ -124,12 +152,19 @@ eventClick: onEventClick, dateClick: onDateClick, //eventContent: onEventContent }); - setTimeout(() => { storeCalendar.calendar.render(); }, 200) + loadEvents() + setTimeout(() => { calendar.value.render(); }, 200) }) + + +// · +watch(() => storeCalendar.calendar.id, (a,b) => { + loadEvents() +}) </script> <template> - <div id="lesli-calendar"></div> + <div id="lesli-calendar" class="box"></div> </template>