calendar fixing update

This commit is contained in:
victorAnumudu
2024-12-18 15:57:31 +01:00
parent 319b9d04aa
commit dc0f40dd15
2 changed files with 18 additions and 13 deletions
+1 -2
View File
@@ -5,7 +5,7 @@ import EventCalendar from "./EventCalendar";
export default function Calendar(){ export default function Calendar(){
const [draggedEvent, setDraggedEvent] = useState() const [draggedEvent, setDraggedEvent] = useState('undroppable')
const handleDragStart = useCallback((event) => setDraggedEvent(event), []) const handleDragStart = useCallback((event) => setDraggedEvent(event), [])
const dummyEvents = [ const dummyEvents = [
@@ -19,7 +19,6 @@ export default function Calendar(){
<> <>
<BreadcrumbComBS title='Calendar' paths={['Dashboard', 'Calendar']} /> <BreadcrumbComBS title='Calendar' paths={['Dashboard', 'Calendar']} />
<div className="row"> <div className="row">
{/*<div className="vh-100 col-12 flex align-items-center">Coming Soon</div>*/}
<div className="col-lg-12"> <div className="col-lg-12">
<div className="card card-statistics"> <div className="card card-statistics">
<div className="card-header"> <div className="card-header">
+17 -11
View File
@@ -16,6 +16,7 @@ export default function EventCalendar({draggedEvent, setDraggedEvent}) {
const moveEvent = useCallback( const moveEvent = useCallback(
({ event, start, end, isAllDay: droppedOnAllDaySlot = false }) => { ({ event, start, end, isAllDay: droppedOnAllDaySlot = false }) => {
// console.log('yes')
const { allDay } = event const { allDay } = event
if (!allDay && droppedOnAllDaySlot) { if (!allDay && droppedOnAllDaySlot) {
event.allDay = true event.allDay = true
@@ -28,6 +29,7 @@ export default function EventCalendar({draggedEvent, setDraggedEvent}) {
const existing = prev.find((ev) => ev.id === event.id) ?? {} const existing = prev.find((ev) => ev.id === event.id) ?? {}
const filtered = prev.filter((ev) => ev.id !== event.id) const filtered = prev.filter((ev) => ev.id !== event.id)
return [...filtered, { ...existing, start, end, allDay: event.allDay }] return [...filtered, { ...existing, start, end, allDay: event.allDay }]
// return [...prev, { ...event }]
}) })
}, },
[setMyEvents] [setMyEvents]
@@ -35,14 +37,6 @@ export default function EventCalendar({draggedEvent, setDraggedEvent}) {
const [displayDragItemInCell, setDisplayDragItemInCell] = useState(true) const [displayDragItemInCell, setDisplayDragItemInCell] = useState(true)
const eventPropGetter = useCallback(
(event) => ({
...(event.isDraggable
? { className: 'isDraggable' }
: { className: 'nonDraggable' }),
}),
[]
)
const dragFromOutsideItem = useCallback(() => draggedEvent === 'undroppable' ? null : draggedEvent, [draggedEvent]) const dragFromOutsideItem = useCallback(() => draggedEvent === 'undroppable' ? null : draggedEvent, [draggedEvent])
@@ -61,6 +55,16 @@ export default function EventCalendar({draggedEvent, setDraggedEvent}) {
[draggedEvent] [draggedEvent]
) )
const eventPropGetter = useCallback(
(event) => ({
...(event.isDraggable
? { className: 'isDraggable' }
: { className: 'nonDraggable' }),
}),
[]
)
const newEvent = useCallback( const newEvent = useCallback(
(event) => { (event) => {
setMyEvents((prev) => { setMyEvents((prev) => {
@@ -109,16 +113,18 @@ export default function EventCalendar({draggedEvent, setDraggedEvent}) {
dragFromOutsideItem={ dragFromOutsideItem={
displayDragItemInCell ? dragFromOutsideItem : null displayDragItemInCell ? dragFromOutsideItem : null
} }
draggableAccessor="isDraggable" eventPropGetter={eventPropGetter}
// eventPropGetter={eventPropGetter} // draggableAccessor="isDraggable"
localizer={localizer} localizer={localizer}
events={myEvents} events={myEvents}
startAccessor="start" startAccessor="start"
endAccessor="end" endAccessor="end"
style={{ height: 500 }} style={{ height: 500 }}
// onEventResize={resizeEvent}
resizable
onEventDrop={moveEvent} onEventDrop={moveEvent}
onDropFromOutside={onDropFromOutside} onDropFromOutside={onDropFromOutside}
onDragOverFromOutside={customOnDragOverFromOutside} // onDragOverFromOutside={customOnDragOverFromOutside}
/> />
</div> </div>
) )