diff --git a/components/calendar/Calendar.vue b/components/calendar/Calendar.vue index e9b65df..7c7c00c 100644 --- a/components/calendar/Calendar.vue +++ b/components/calendar/Calendar.vue @@ -2,18 +2,62 @@ import { useCalendar } from '@/stores/CalendarStore' import { computed, type Component, type ComputedRef } from 'vue' -import CalendarMenu from './CalendarMenu.vue' - import MonthlyLayout from './state/monthly/Layout.vue' import CenturyLayout from './state/centennially/Layout.vue' import DecadeLayout from './state/decennially/Layout.vue' import YearLayout from './state/yearly/Layout.vue' -const { currentConfig } = useCalendar() -const { selectedDate, jumpToDate } = useCalendar() +const route = useRoute() +const worldId = route.params.id -const { fetchEvents } = useCalendarEvents() -fetchEvents() +const { setMonths, setDefaultDate, currentConfig, selectedDate, jumpToDate } = useCalendar() +const { setEvents } = useCalendarEvents() +const { setCharacters } = useCharacters() + +const { data: calendar, pending: calPending, refresh: calRefresh } = await useLazyFetch(`/api/calendars/query?world_id=${worldId}`) +const { data: characters, pending: charPending, refresh: charRefresh } = await useLazyFetch(`/api/characters/query?world_id=${worldId}`) + +if (!calendar.value) { + await calRefresh() +} else { + if (calendar.value?.data?.months) { + setMonths(calendar.value?.data?.months) + } + if (calendar.value?.data?.today) { + setDefaultDate(calendar.value?.data?.today) + } + if (calendar.value?.data?.events) { + setEvents(calendar.value?.data?.events) + } +} +if (!characters.value) { + await charRefresh() +} else { + if (characters.value?.data) { + setCharacters(characters.value?.data) + } +} + +watch(calPending, (newStatus) => { + if (!newStatus) { + if (calendar.value?.data?.months) { + setMonths(calendar.value?.data?.months) + } + if (calendar.value?.data?.today) { + setDefaultDate(calendar.value?.data?.today) + } + if (calendar.value?.data?.events) { + setEvents(calendar.value?.data?.events) + } + } +}) +watch(charPending, (newStatus) => { + if (!newStatus) { + if (characters.value?.data) { + setCharacters(characters.value?.data) + } + } +}) const currentViewComponent: ComputedRef = computed(() => { switch (currentConfig.viewType) { @@ -38,11 +82,20 @@ onMounted(() => { diff --git a/components/calendar/CalendarCurrentDate.vue b/components/calendar/CalendarCurrentDate.vue index a7b2440..6447d5e 100644 --- a/components/calendar/CalendarCurrentDate.vue +++ b/components/calendar/CalendarCurrentDate.vue @@ -1,14 +1,14 @@ diff --git a/components/calendar/CalendarEvent.vue b/components/calendar/CalendarEvent.vue index cfb6b74..a6d11da 100644 --- a/components/calendar/CalendarEvent.vue +++ b/components/calendar/CalendarEvent.vue @@ -1,16 +1,16 @@ diff --git a/components/calendar/CalendarMenuSubnav.vue b/components/calendar/CalendarMenuSubnav.vue index 4928dd4..aa87fd7 100644 --- a/components/calendar/CalendarMenuSubnav.vue +++ b/components/calendar/CalendarMenuSubnav.vue @@ -1,5 +1,5 @@