diff --git a/src/components/tabs/ScheduleHomePage/OngoingEvent.tsx b/src/components/tabs/ScheduleHomePage/OngoingEvent.tsx index 8bf5762..5447850 100644 --- a/src/components/tabs/ScheduleHomePage/OngoingEvent.tsx +++ b/src/components/tabs/ScheduleHomePage/OngoingEvent.tsx @@ -46,30 +46,39 @@ const OngoingEvent: React.FC = ({ event }) => ( - {dateFormat(event.startDate, "h:MM TT")} - {dateFormat(event.endDate, "h:MM TT")} + {dateFormat(event.startDate, "h:MM TT")} + {event.endDate && ` - ${dateFormat(event.endDate, "h:MM TT")}`} - {getTimeRemainingString(new Date(), new Date(event.endDate))} - - - - + {event.endDate && ( + <> + + {getTimeRemainingString(new Date(), new Date(event.endDate))} + + + + + + + + )} ); + export default OngoingEvent; diff --git a/src/components/tabs/ScheduleHomePage/ScheduleTable.tsx b/src/components/tabs/ScheduleHomePage/ScheduleTable.tsx index e18f359..dc35dc6 100644 --- a/src/components/tabs/ScheduleHomePage/ScheduleTable.tsx +++ b/src/components/tabs/ScheduleHomePage/ScheduleTable.tsx @@ -52,8 +52,8 @@ const Schedule: React.FC = () => { const sortedData = res.data.sort((a: any, b: any) => { const startDateA = new Date(a.startDate); const startDateB = new Date(b.startDate); - const endDateA = new Date(a.endDate); - const endDateB = new Date(b.endDate); + const endDateA = a.endDate ? new Date(a.endDate) : new Date(9999, 11, 31); + const endDateB = b.endDate ? new Date(b.endDate) : new Date(9999, 11, 31); if (startDateA > startDateB) { return 1; } @@ -72,11 +72,10 @@ const Schedule: React.FC = () => { return -1; }); const filteredData = sortedData.filter( - (event: any) => new Date(event.endDate) >= curDate + (event: any) => !event.endDate || new Date(event.endDate) >= curDate ); const ongoing = filteredData.filter((event: any) => new Date(event.startDate) <= curDate); const upcoming = filteredData.filter((event: any) => new Date(event.startDate) > curDate); - setOngoingEvents(ongoing); setUpcomingEvents(upcoming); } @@ -98,7 +97,7 @@ const Schedule: React.FC = () => { setUpcomingEvents(data => data.filter((event: any) => new Date(event.startDate) > curDate)); setOngoingEvents(data => data - .filter((event: any) => new Date(event.endDate) >= curDate) + .filter((event: any) => !event.endDate || new Date(event.endDate) >= curDate) .concat(temp.filter((event: any) => new Date(event.startDate) <= curDate)) ); @@ -111,20 +110,22 @@ const Schedule: React.FC = () => { const eventsForCalendarOngoing = ongoingEvents.map((event)=>({ "name": event.name, "description": event.description, - "endDate": dateFormat(event.endDate, 'yyyy-mm-dd'), + "endDate": event.endDate ? dateFormat(event.endDate, 'yyyy-mm-dd') : "", "startDate": dateFormat(event.startDate, 'yyyy-mm-dd'), "startTime": dateFormat(event.startDate, 'HH:MM'), - "endTime": dateFormat(event.endDate, 'HH:MM'), + "endTime": event.endDate ? dateFormat(event.endDate, 'HH:MM') : "", "location": event.location.map((location: any) => location.name).join(" | "), })); + console.log("ongoing", eventsForCalendarOngoing); + const eventsForCalendarUpcoming = upcomingEvents.map((event)=>({ "name":event.name, "description":event.description, - "endDate": dateFormat(event.endDate, 'yyyy-mm-dd'), + "endDate": event.endDate ? dateFormat(event.endDate, 'yyyy-mm-dd') : "", "startDate": dateFormat(event.startDate, 'yyyy-mm-dd'), "startTime": dateFormat(event.startDate, 'HH:MM'), - "endTime": dateFormat(event.endDate, 'HH:MM'), + "endTime": event.endDate ? dateFormat(event.endDate, 'HH:MM') : "", "location": event.location.map((location: any) => location.name).join(" | "), })); diff --git a/src/components/tabs/admin/events/Columns.tsx b/src/components/tabs/admin/events/Columns.tsx index 61d0af4..87026f2 100644 --- a/src/components/tabs/admin/events/Columns.tsx +++ b/src/components/tabs/admin/events/Columns.tsx @@ -52,7 +52,7 @@ const eventColumns = [ enabled: true, header: "End Time", field: "endTime", - accessor: (row: any) => dateFormat(row.endDate, "hh:MM TT"), + accessor: (row: any) => row.endDate ? dateFormat(row.endDate, "hh:MM TT"): "N/A", }, { key: 5, diff --git a/src/components/tabs/admin/events/FormInputs/EventFormInput.tsx b/src/components/tabs/admin/events/FormInputs/EventFormInput.tsx index 4fa39ee..3503539 100644 --- a/src/components/tabs/admin/events/FormInputs/EventFormInput.tsx +++ b/src/components/tabs/admin/events/FormInputs/EventFormInput.tsx @@ -107,20 +107,6 @@ const EventFormInput: React.FC = ({ id, onClose }) => { message: "Start time is required.", } : undefined, - endDate: - !data.endDate || data.endDate.length === 0 - ? { - type: "required", - message: "End date is required.", - } - : undefined, - endTime: - !data.endTime || data.endTime.length === 0 - ? { - type: "required", - message: "End time is required.", - } - : undefined, location: !data.location || data.location.length === 0 ? { @@ -141,10 +127,6 @@ const EventFormInput: React.FC = ({ id, onClose }) => { data.startDate.length === 0 || !data.startTime || data.startTime.length === 0 || - !data.endDate || - data.endDate.length === 0 || - !data.endTime || - data.endTime.length === 0 || !data.location || data.location.length === 0; @@ -161,14 +143,18 @@ const EventFormInput: React.FC = ({ id, onClose }) => { hexathon: String(process.env.REACT_APP_HEXATHON_ID), location: data.location.map((location: any) => location.id), startDate: new Date(data.startDate.concat(" ", data.startTime, " ", data.startTimeMarker)), - endDate: new Date(data.endDate.concat(" ", data.endTime, " ", data.endTimeMarker)), }; + + if (data.endDate && data.endTime) { + payload.endDate = new Date(data.endDate.concat(" ", data.endTime, " ", data.endTimeMarker)); + } + delete payload.startTime; delete payload.endTime; delete payload.startTimeMarker; delete payload.endTimeMarker; - if (payload.startDate > payload.endDate) { + if (payload.endDate && payload.startDate > payload.endDate) { if (payload.startDate.toDateString() === payload.endDate.toDateString()) { setErrors({ endTime: { @@ -331,14 +317,14 @@ const EventFormInput: React.FC = ({ id, onClose }) => { - End Date + End Date (Optional) {errors.endDate && errors.endDate.message} - End Time + End Time (Optional)