From cd7e6fdf755576d43424a58699b9b8b10419ad5d Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Mon, 20 Jan 2025 06:15:11 +0100 Subject: [PATCH] calendar fixing contd --- src/component/calendar/Calendar.jsx | 44 ++++++++++++++++++------ src/component/calendar/EventCalendar.jsx | 14 ++++---- 2 files changed, 41 insertions(+), 17 deletions(-) diff --git a/src/component/calendar/Calendar.jsx b/src/component/calendar/Calendar.jsx index 3c4c2d5..316c9c5 100644 --- a/src/component/calendar/Calendar.jsx +++ b/src/component/calendar/Calendar.jsx @@ -11,13 +11,34 @@ export default function Calendar(){ // setDraggedEvent(event) // } - const dummyEvents = [ + const events = [ {id: '1111', title: 'Family Vacation', color: 'fc-event-primary', start: new Date('2025-01-18')}, {id: '2222', title: 'Meeting In Office', color: 'fc-event-warning', start: new Date('2025-01-19')}, {id: '3333', title: 'Client Call', color: 'fc-event-danger', start: new Date('2025-01-22')}, {id: '4444', title: 'Interview', color: 'fc-event-success', start: new Date('2025-01-1')} ] + const [dummyEvents, setDummyEvents] = useState(events) + + const [removeAfterDrop, setRemoveAfterDrop] = useState(false) + + const [newEvent, setNewEvent] = useState({ + title: '', color: '' + }) + + const handleEditEvent = ({target:{name,value}}) => { + setNewEvent(prev => ({...prev, [name]:value})) + } + + const handleAddNewEvent = () => { + if(newEvent.title && newEvent.color){ + const eventToAdd = {...newEvent} + setDummyEvents(prev => ([...prev, eventToAdd])) + setNewEvent({title: '', color: ''}) + } + } + + return( <> @@ -51,8 +72,8 @@ export default function Calendar(){ ))} */}
- + setRemoveAfterDrop(prev => !prev)} /> @@ -62,7 +83,7 @@ export default function Calendar(){
{/* */} - +
@@ -86,15 +107,16 @@ export default function Calendar(){
- +
- + + + + +
@@ -102,7 +124,7 @@ export default function Calendar(){
- +
diff --git a/src/component/calendar/EventCalendar.jsx b/src/component/calendar/EventCalendar.jsx index 03db5fd..145d1bc 100644 --- a/src/component/calendar/EventCalendar.jsx +++ b/src/component/calendar/EventCalendar.jsx @@ -6,7 +6,7 @@ import timeGridPlugin from '@fullcalendar/timegrid'; import interactionPlugin from '@fullcalendar/interaction'; import { INITIAL_EVENTS, createEventId } from './event-utils'; -export default function EventCalendar({draggedEvent, setDraggedEvent}) { +export default function EventCalendar({draggedEvent, setDraggedEvent, removeAfterDrop, setDummyEvents}) { const [weekendsVisible, setWeekendsVisible] = useState(true); const [currentEvents, setCurrentEvents] = useState(INITIAL_EVENTS); @@ -51,14 +51,16 @@ export default function EventCalendar({draggedEvent, setDraggedEvent}) { ...event } setCurrentEvents(prev => ([...prev, newEvent])) + if(removeAfterDrop){ + setDummyEvents(prev => prev.filter(item => item.title != newEvent.title)) + } } } const removeEvent = (event) => { - // let eventToRemove = event?.event?._def?.title - // let remainingEvent = currentEvents.filter(item => item.title != eventToRemove) - // setCurrentEvents(remainingEvent) - console.log('Event', event, currentEvents) + let eventToRemove = event?.event?._def?.publicId + let remainingEvent = currentEvents.filter(item => item.id != eventToRemove) + setCurrentEvents(remainingEvent) } @@ -94,7 +96,7 @@ export default function EventCalendar({draggedEvent, setDraggedEvent}) { weekends={weekendsVisible} // initialEvents={INITIAL_EVENTS} // alternatively, use the `events` setting to fetch from a feed events={currentEvents} - // select={handleDateSelect} + select={handleDateSelect} eventContent={renderEventContent} // custom render function eventClick={handleEventClick} eventsSet={handleEvents} // called after events are initialized/added/changed/removed -- 2.34.1