diff --git a/components/calendar/dialog/CreateEvent.vue b/components/calendar/dialog/CreateEvent.vue index 14e999d..e53174f 100644 --- a/components/calendar/dialog/CreateEvent.vue +++ b/components/calendar/dialog/CreateEvent.vue @@ -36,8 +36,8 @@ function openEventCreatePopover() { * @param e The closing event (can be keydown or click) */ function handleClosing(e: Event) { - popoverOpen.value = false e.preventDefault() + popoverOpen.value = false } @@ -54,8 +54,6 @@ function handleClosing(e: Event) { :trap-focus="true" class="pl-3 w-[30rem] max-w-full border-indigo-200 dark:bg-slate-950 dark:border-indigo-950" @escape-key-down="handleClosing" - @focus-outside="handleClosing" - @interact-outside="handleClosing" @pointer-down-outside="handleClosing" > diff --git a/components/calendar/dialog/UpdateEvent.vue b/components/calendar/dialog/UpdateEvent.vue index 46003e6..279613f 100644 --- a/components/calendar/dialog/UpdateEvent.vue +++ b/components/calendar/dialog/UpdateEvent.vue @@ -1,8 +1,6 @@ @@ -43,7 +39,7 @@ function handleClosing(e: Event) { - + diff --git a/components/calendar/form/UpdateEvent.vue b/components/calendar/form/UpdateEvent.vue index 716cf4c..4ade519 100644 --- a/components/calendar/form/UpdateEvent.vue +++ b/components/calendar/form/UpdateEvent.vue @@ -3,6 +3,8 @@ import { PhAlarm, PhCircleNotch, PhEye, PhEyeClosed, PhMapPinArea, PhPencilSimpl import { useToast } from "~/components/ui/toast"; import type { APIError } from "~/models/Errors"; +const emit = defineEmits(["event-updated"]) + const { resetSkeleton, updateEventFromSkeleton, cancelLatestRequest } = useCalendar() const { eventSkeleton, lastActiveEvent } = storeToRefs(useCalendar()) @@ -22,6 +24,14 @@ async function handleAction() { try { await updateEventFromSkeleton() + + emit("event-updated") + + toast({ + title: t("entity.calendar.event.updatedToast.title", { event: eventSkeleton.value.title }), + variant: "success", + duration: 3000 + }) } catch (err) { // eslint-disable-next-line @typescript-eslint/no-explicit-any const apiError = (err as any).data as APIError diff --git a/components/global/sidebar/Sidebar.vue b/components/global/sidebar/Sidebar.vue index b5fce00..ad29aa5 100644 --- a/components/global/sidebar/Sidebar.vue +++ b/components/global/sidebar/Sidebar.vue @@ -1,11 +1,11 @@ diff --git a/pages/calendars/index.vue b/pages/calendars/index.vue new file mode 100644 index 0000000..8396d18 --- /dev/null +++ b/pages/calendars/index.vue @@ -0,0 +1,11 @@ + + + diff --git a/pages/explore.vue b/pages/explore.vue new file mode 100644 index 0000000..32d3587 --- /dev/null +++ b/pages/explore.vue @@ -0,0 +1,46 @@ + + + diff --git a/server/api/calendars/query.get.ts b/server/api/calendars/query.get.ts index a0efcf3..c7d7e23 100644 --- a/server/api/calendars/query.get.ts +++ b/server/api/calendars/query.get.ts @@ -20,7 +20,8 @@ export default defineEventHandler(async (event) => { name, today, months:calendar_months (*), - state + state, + eventNb:calendar_events(count) ` const fullFields = ` @@ -42,6 +43,7 @@ export default defineEventHandler(async (event) => { category:calendar_event_categories!calendar_events_category_fkey (*), secondaryCategories:calendar_event_categories!calendar_event_categories_links (*) ), + eventNb:calendar_events(count), world:worlds ( id, gmId:gm_id diff --git a/stores/CalendarStore.ts b/stores/CalendarStore.ts index 6f07e1d..b76ebcd 100644 --- a/stores/CalendarStore.ts +++ b/stores/CalendarStore.ts @@ -55,13 +55,6 @@ export const useCalendar = defineStore("calendar", () => { isReadOnly.value = (!user) || (gmId !== user.value?.id) } - // Watch for user changes - watch(user, () => { - if (activeCalendar.value) { - setReadStatus(activeCalendar.value.gmId!) - } - }) - /** * Month list (queried from API) */ @@ -80,9 +73,7 @@ export const useCalendar = defineStore("calendar", () => { setDefaultDate(activeCalendar.value.today) selectDate(activeCalendar.value.today) - if (calendarData.world) { - setReadStatus(activeCalendar.value.gmId!) - } + setReadStatus(activeCalendar.value.gmId!) if (!params.day) { params.day = defaultDate.value.day.toString()