fix(p2): Calendar view toggle - sync internal view state with parent prop via useEffect
This commit is contained in:
@@ -401,7 +401,7 @@ export default function CalendarPage() {
|
|||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<BigCalendar key={view}
|
<BigCalendar
|
||||||
events={filteredEvents}
|
events={filteredEvents}
|
||||||
onEventDrop={handleEventDrop}
|
onEventDrop={handleEventDrop}
|
||||||
defaultView={view}
|
defaultView={view}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
'use client';
|
'use client';
|
||||||
|
|
||||||
import { useCallback, useMemo } from 'react';
|
import { useCallback, useMemo, useState, useEffect } from 'react';
|
||||||
import { Calendar, dateFnsLocalizer, Views } from 'react-big-calendar';
|
import { Calendar, dateFnsLocalizer, Views } from 'react-big-calendar';
|
||||||
import withDragAndDrop from 'react-big-calendar/lib/addons/dragAndDrop';
|
import withDragAndDrop from 'react-big-calendar/lib/addons/dragAndDrop';
|
||||||
import 'react-big-calendar/lib/css/react-big-calendar.css';
|
import 'react-big-calendar/lib/css/react-big-calendar.css';
|
||||||
@@ -76,6 +76,11 @@ export function BigCalendarWrapper({
|
|||||||
onViewChange,
|
onViewChange,
|
||||||
}: BigCalendarWrapperProps) {
|
}: BigCalendarWrapperProps) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const [currentView, setCurrentView] = useState(defaultView);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setCurrentView(defaultView);
|
||||||
|
}, [defaultView]);
|
||||||
|
|
||||||
const handleSelectEvent = useCallback(
|
const handleSelectEvent = useCallback(
|
||||||
(event: CalendarEvent) => {
|
(event: CalendarEvent) => {
|
||||||
@@ -102,6 +107,7 @@ export function BigCalendarWrapper({
|
|||||||
|
|
||||||
const handleViewChange = useCallback(
|
const handleViewChange = useCallback(
|
||||||
(newView: string) => {
|
(newView: string) => {
|
||||||
|
setCurrentView(newView);
|
||||||
if (onViewChange) onViewChange(newView);
|
if (onViewChange) onViewChange(newView);
|
||||||
},
|
},
|
||||||
[onViewChange]
|
[onViewChange]
|
||||||
@@ -129,7 +135,7 @@ export function BigCalendarWrapper({
|
|||||||
eventPropGetter={eventStyleGetter}
|
eventPropGetter={eventStyleGetter}
|
||||||
onSelectEvent={handleSelectEvent}
|
onSelectEvent={handleSelectEvent}
|
||||||
views={['month', 'week', 'day']}
|
views={['month', 'week', 'day']}
|
||||||
defaultView={defaultView} key={defaultView}
|
view={currentView}
|
||||||
date={date}
|
date={date}
|
||||||
onNavigate={handleNavigate}
|
onNavigate={handleNavigate}
|
||||||
onView={handleViewChange}
|
onView={handleViewChange}
|
||||||
|
|||||||
Reference in New Issue
Block a user