From a6d465ad98663297d5c67c2b8b8dabf2caa92edd Mon Sep 17 00:00:00 2001 From: DarkPhoenix2704 Date: Tue, 20 Feb 2024 07:16:12 +0000 Subject: [PATCH] fix(nc-gui): events in the spill over dates for previous & next month are not displayed --- .../smartsheet/calendar/MonthView.vue | 12 ++--------- .../composables/useCalendarViewStore.ts | 21 +++++++++++++------ 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/packages/nc-gui/components/smartsheet/calendar/MonthView.vue b/packages/nc-gui/components/smartsheet/calendar/MonthView.vue index f4c976b896..6f50f6e97c 100644 --- a/packages/nc-gui/components/smartsheet/calendar/MonthView.vue +++ b/packages/nc-gui/components/smartsheet/calendar/MonthView.vue @@ -6,16 +6,8 @@ import type { Row } from '#imports' const emit = defineEmits(['new-record', 'expandRecord']) -const { - selectedDate, - selectedMonth, - formattedData, - formattedSideBarData, - displayField, - calendarRange, - calDataType, - updateRowProperty, -} = useCalendarViewStoreOrThrow() +const { selectedDate, selectedMonth, formattedData, formattedSideBarData, displayField, calendarRange, updateRowProperty } = + useCalendarViewStoreOrThrow() const isMondayFirst = ref(true) diff --git a/packages/nc-gui/composables/useCalendarViewStore.ts b/packages/nc-gui/composables/useCalendarViewStore.ts index 785ca546c5..52b4c1b668 100644 --- a/packages/nc-gui/composables/useCalendarViewStore.ts +++ b/packages/nc-gui/composables/useCalendarViewStore.ts @@ -158,11 +158,15 @@ const [useProvideCalendarViewStore, useCalendarViewStore] = useInjectionState( fromDate = dayjs(selectedDateRange.value.start).startOf('day') toDate = dayjs(selectedDateRange.value.end).endOf('day') break - case 'month': - fromDate = dayjs(selectedMonth.value).startOf('month') - toDate = dayjs(selectedMonth.value).endOf('month') + case 'month': { + const startOfMonth = dayjs(selectedMonth.value).startOf('month') + const endOfMonth = dayjs(selectedMonth.value).endOf('month') + const daysToDisplay = Math.max(endOfMonth.diff(startOfMonth, 'day') + 1, 35) + fromDate = startOfMonth.subtract((startOfMonth.day() + 7) % 7, 'day').add(1, 'day') + toDate = fromDate.add(daysToDisplay, 'day') break + } case 'year': fromDate = dayjs(selectedDate.value).startOf('year') toDate = dayjs(selectedDate.value).endOf('year') @@ -325,10 +329,15 @@ const [useProvideCalendarViewStore, useCalendarViewStore] = useInjectionState( fromDate = dayjs(selectedDateRange.value.start).startOf('day') toDate = dayjs(selectedDateRange.value.end).endOf('day') break - case 'month': - fromDate = dayjs(selectedMonth.value).startOf('month') - toDate = dayjs(selectedMonth.value).endOf('month') + case 'month': { + const startOfMonth = dayjs(selectedMonth.value).startOf('month') + const endOfMonth = dayjs(selectedMonth.value).endOf('month') + + const daysToDisplay = Math.max(endOfMonth.diff(startOfMonth, 'day') + 1, 35) + fromDate = startOfMonth.subtract((startOfMonth.day() + 7) % 7, 'day') + toDate = fromDate.add(daysToDisplay, 'day') break + } case 'year': fromDate = dayjs(selectedDate.value).startOf('year') toDate = dayjs(selectedDate.value).endOf('year')