diff --git a/src/Pages/Events/Calendar/CalendarCell.js b/src/Pages/Events/Calendar/CalendarCell.js new file mode 100644 index 000000000..f2c45e345 --- /dev/null +++ b/src/Pages/Events/Calendar/CalendarCell.js @@ -0,0 +1,57 @@ +import { sortEventsForDay } from './calendarUtils'; +import { EventRow } from './EventRow'; + +export function CalendarCell({ date, isCurrentMonth, isToday, events, onSelectEvent, isAdminView }) { + const sortedEvents = sortEventsForDay(events); + const mobileRows = sortedEvents.slice(0, 2); + const desktopOnlyRows = sortedEvents.slice(2, 4); + const hiddenCount = Math.max(sortedEvents.length - 4, 0); + + return ( +
+ {monthEventCount} event{monthEventCount !== 1 ? 's' : ''} this month +
++ {event.description} +
+ )} ++ {event.max_attendees} total spot{event.max_attendees !== 1 ? 's' : ''} + {canManageEvent && event.waitlist_enabled && ( + · waitlist available + )} +
+ )} + + {hasCapacityLimit && !canManageEvent && typeof remainingSpots === 'number' && ( ++ {remainingSpots} spot{remainingSpots !== 1 ? 's' : ''} left + {event.waitlist_enabled && ( + · waitlist available + )} +
+ )} + + {hasCapacityLimit && !canManageEvent && attendanceLoading && ( ++ Loading live spots... +
+ )} + + {hasCapacityLimit && !canManageEvent && attendanceLoaded && typeof remainingSpots !== 'number' && ( ++ Unable to load live spots +
+ )} + {canManageEvent && ( +{waitlistError}
+ )} + + {waitlistMessage && ( +{waitlistMessage}
+ )} + + {isAdminView && event.publish_date && ( +- {event.description} -
- )} -- {event.max_attendees} total spot{event.max_attendees !== 1 ? 's' : ''} - {canManageEvent && event.waitlist_enabled && ( - · waitlist available - )} -
- )} - - {hasCapacityLimit && !canManageEvent && typeof remainingSpots === 'number' && ( -- {remainingSpots} spot{remainingSpots !== 1 ? 's' : ''} left - {event.waitlist_enabled && ( - · waitlist available - )} -
- )} - - {hasCapacityLimit && !canManageEvent && attendanceLoading && ( -- Loading live spots... -
- )} - - {hasCapacityLimit && !canManageEvent && attendanceLoaded && typeof remainingSpots !== 'number' && ( -- Unable to load live spots -
- )} - {canManageEvent && ( -{waitlistError}
- )} - - {waitlistMessage && ( -{waitlistMessage}
- )} - - {isAdminView && event.publish_date && ( -- {monthEventCount} event{monthEventCount !== 1 ? 's' : ''} this month -
-