From 98eccc5390829d79b2cb5d254de489a6367ec684 Mon Sep 17 00:00:00 2001 From: Shaurya Sharma Date: Fri, 15 Nov 2024 20:24:53 +0530 Subject: [PATCH 1/3] Fixed default calendar view not updating view on reload --- .../src/AppBuilder/Widgets/Calendar/Calendar.jsx | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/frontend/src/AppBuilder/Widgets/Calendar/Calendar.jsx b/frontend/src/AppBuilder/Widgets/Calendar/Calendar.jsx index 080a51c47c..b7957d9ba0 100644 --- a/frontend/src/AppBuilder/Widgets/Calendar/Calendar.jsx +++ b/frontend/src/AppBuilder/Widgets/Calendar/Calendar.jsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useRef, useState } from 'react'; import { Calendar as ReactCalendar, momentLocalizer } from 'react-big-calendar'; import moment from 'moment'; import 'react-big-calendar/lib/css/react-big-calendar.css'; @@ -54,7 +54,7 @@ export const Calendar = function ({ const [currentDate, setCurrentDate] = useState(defaultDate); const [eventPopoverOptions, setEventPopoverOptions] = useState({ show: false }); - const [defaultView, setDefaultValue] = useState(allowedCalendarViews[0]); + const isInitialRender = useRef(true); const eventPropGetter = (event) => { const backgroundColor = event.color; @@ -100,10 +100,10 @@ export const Calendar = function ({ const view = allowedCalendarViews.includes(properties.defaultView) ? properties.defaultView : allowedCalendarViews[0]; - if (currentView !== view) { - setDefaultValue(view); + if (currentView !== view || isInitialRender.current) { setExposedVariable('currentView', view); setCurrentView(view); + isInitialRender.current = false; } // eslint-disable-next-line react-hooks/exhaustive-deps }, [properties.defaultView]); @@ -145,10 +145,9 @@ export const Calendar = function ({ endAccessor="end" style={style} views={allowedCalendarViews} - defaultView={defaultView} - view={defaultView} + defaultView={properties.defaultView || allowedCalendarViews[0]} + view={currentView} onView={(view) => { - setDefaultValue(view); setExposedVariable('currentView', view); setCurrentView(view); fireEvent('onCalendarViewChange'); From 6d3b076546ad8ad07652c2968cb5abaf80738b9f Mon Sep 17 00:00:00 2001 From: Shaurya Sharma Date: Mon, 18 Nov 2024 13:36:33 +0530 Subject: [PATCH 2/3] Fixed unable to move calendar on changing view mode --- frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx b/frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx index f5603de836..3fd34d530f 100644 --- a/frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx +++ b/frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx @@ -596,7 +596,7 @@ export default function Grid({ gridWidth, currentLayout }) { isDragOnTableORCalendar = tableElem.contains(e.inputEvent.target); } if (box?.component?.component === 'Calendar') { - const calenderElem = e.target.querySelector('.rbc-month-view'); + const calenderElem = e.target.querySelector('.calendar-widget'); isDragOnTableORCalendar = calenderElem.contains(e.inputEvent.target); } From 244452879329c318977ad73b9a666d7c394f20fe Mon Sep 17 00:00:00 2001 From: Shaurya Sharma Date: Mon, 18 Nov 2024 17:03:48 +0530 Subject: [PATCH 3/3] Merge conflict resolved --- frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx b/frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx index 3fd34d530f..a8a10caf55 100644 --- a/frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx +++ b/frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx @@ -596,7 +596,10 @@ export default function Grid({ gridWidth, currentLayout }) { isDragOnTableORCalendar = tableElem.contains(e.inputEvent.target); } if (box?.component?.component === 'Calendar') { - const calenderElem = e.target.querySelector('.calendar-widget'); + const calenderElem = + e.target.querySelector('.rbc-month-view') || + e.target.querySelector('.rbc-time-view') || + e.target.querySelector('.rbc-day-view'); isDragOnTableORCalendar = calenderElem.contains(e.inputEvent.target); }