fix(p2): Calendar view toggle - sync internal view state with parent prop via useEffect

This commit is contained in:
Hermes
2026-07-31 01:35:02 +00:00
parent ca8ff5d13b
commit 08841abd68
2 changed files with 9 additions and 3 deletions
+1 -1
View File
@@ -401,7 +401,7 @@ export default function CalendarPage() {
</div>
}
>
<BigCalendar key={view}
<BigCalendar
events={filteredEvents}
onEventDrop={handleEventDrop}
defaultView={view}
@@ -1,6 +1,6 @@
'use client';
import { useCallback, useMemo } from 'react';
import { useCallback, useMemo, useState, useEffect } from 'react';
import { Calendar, dateFnsLocalizer, Views } from 'react-big-calendar';
import withDragAndDrop from 'react-big-calendar/lib/addons/dragAndDrop';
import 'react-big-calendar/lib/css/react-big-calendar.css';
@@ -76,6 +76,11 @@ export function BigCalendarWrapper({
onViewChange,
}: BigCalendarWrapperProps) {
const router = useRouter();
const [currentView, setCurrentView] = useState(defaultView);
useEffect(() => {
setCurrentView(defaultView);
}, [defaultView]);
const handleSelectEvent = useCallback(
(event: CalendarEvent) => {
@@ -102,6 +107,7 @@ export function BigCalendarWrapper({
const handleViewChange = useCallback(
(newView: string) => {
setCurrentView(newView);
if (onViewChange) onViewChange(newView);
},
[onViewChange]
@@ -129,7 +135,7 @@ export function BigCalendarWrapper({
eventPropGetter={eventStyleGetter}
onSelectEvent={handleSelectEvent}
views={['month', 'week', 'day']}
defaultView={defaultView} key={defaultView}
view={currentView}
date={date}
onNavigate={handleNavigate}
onView={handleViewChange}