diff --git a/src/component/calendar/Calendar.jsx b/src/component/calendar/Calendar.jsx
index 1ec5470..3c4c2d5 100644
--- a/src/component/calendar/Calendar.jsx
+++ b/src/component/calendar/Calendar.jsx
@@ -1,14 +1,15 @@
import React, { useCallback, useState } from "react";
import BreadcrumbComBS from "../breadcrumb/BreadcrumbComBS";
import EventCalendar from "./EventCalendar";
+import ExternalDraggable from "./ExternalDraggable";
export default function Calendar(){
- const [draggedEvent, setDraggedEvent] = useState('undroppable')
- const handleDragStart = (event) => {
- setDraggedEvent(event)
- }
+ // const [draggedEvent, setDraggedEvent] = useState('undroppable')
+ // const handleDragStart = (event) => {
+ // setDraggedEvent(event)
+ // }
const dummyEvents = [
{id: '1111', title: 'Family Vacation', color: 'fc-event-primary', start: new Date('2025-01-18')},
@@ -38,7 +39,7 @@ export default function Calendar(){
Drag and drop your event or click in the calendar.
- {dummyEvents.map((item, index) => (
+ {/* {dummyEvents.map((item, index) => (
@@ -47,7 +48,8 @@ export default function Calendar(){
>
{item.title}
- ))}
+ ))} */}
+
diff --git a/src/component/calendar/EventCalendar.jsx b/src/component/calendar/EventCalendar.jsx
index 89ad339..f1c2f88 100644
--- a/src/component/calendar/EventCalendar.jsx
+++ b/src/component/calendar/EventCalendar.jsx
@@ -39,37 +39,22 @@ export default function EventCalendar({draggedEvent, setDraggedEvent}) {
}
}
-// const onDrop = useCallback(
-// (event) => {
-// // if (draggedEvent === 'undroppable') {
-// // setDraggedEvent(null)
-// // return
-// // }
-
-// // let calendarApi;
-
-// // calendarApi.unselect(); // clear date selection
-
-// // calendarApi.addEvent({
-// // id: createEventId(),
-// // allDay: selectInfo.allDay,
-// // end: selectInfo.endStr,
-// // start: selectInfo.startStr,
-// // title,
-// // ...draggedEvent
-// // });
-
-// // setDraggedEvent(null)
-// console.log('EVENT', event)
-// },
-// [draggedEvent]
-// )
-
- const onDrop =
- (dropInfo) => {
- console.log('dropInfo', dropInfo)
+ const onDrop = (event) => {
+ console.log('event', event)
+ if(event){
+ let newEvent = {
+ id: createEventId(),
+ title: event.draggedEl.innerText,
+ start: event.startStr,
+ end: event.endStr,
+ allDay: event.allDay,
+ ...event
+ }
+ setCurrentEvents(prev => ([...prev, newEvent]))
+ }
}
+
function handleEventClick(clickInfo) {
if (
confirm(
@@ -112,9 +97,9 @@ export default function EventCalendar({draggedEvent, setDraggedEvent}) {
eventRemove={function(){}}
*/
- dropAccept= '.fc-event'
+
droppable= {true} // this allows things to be dropped onto the calendar
- drop= {onDrop}
+ drop={onDrop}
/>
diff --git a/src/component/calendar/ExternalDraggable.jsx b/src/component/calendar/ExternalDraggable.jsx
new file mode 100644
index 0000000..9ae460c
--- /dev/null
+++ b/src/component/calendar/ExternalDraggable.jsx
@@ -0,0 +1,28 @@
+import React, { useEffect, useRef } from "react";
+import { Draggable } from "@fullcalendar/interaction";
+
+const ExternalDraggable = ({dummyEvents}) => {
+ const eventContainerRef = useRef(null);
+
+ useEffect(() => {
+ // Make the external events draggable
+ new Draggable(eventContainerRef.current, {
+ itemSelector: ".fc-event",
+ eventData: (eventEl) => ({
+ title: eventEl.innerText.trim(),
+ }),
+ });
+ }, []);
+
+ return (
+
+ {dummyEvents.map((item, index) => (
+
+ {item.title}
+
+ ))}
+
+ );
+};
+
+export default ExternalDraggable;
diff --git a/src/component/calendar/event-utils.js b/src/component/calendar/event-utils.js
index 566934c..70f85e8 100644
--- a/src/component/calendar/event-utils.js
+++ b/src/component/calendar/event-utils.js
@@ -15,13 +15,6 @@ export const INITIAL_EVENTS = [
start: todayStr + 'T12:00:00',
// color: 'red'
},
- {
- id: createEventId(),
- title: 'Timed event 2',
- start: new Date('2025-01-25'),
- start: new Date('2025-01-26'),
- // color: 'blue'
- },
];
export function createEventId() {
diff --git a/src/css/style.scss b/src/css/style.scss
index ba10949..39f9815 100644
--- a/src/css/style.scss
+++ b/src/css/style.scss
@@ -141,6 +141,7 @@ $event-padding: 10px;
color: #fff!important;
border: none;
background-color: #8E54E9!important;
+ text-transform: capitalize !important;
}
.fc-event.fc-event-draggable.fc-event-start.fc-event-end.fc-daygrid-event,