Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 29 additions & 20 deletions src/components/tabs/ScheduleHomePage/OngoingEvent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -46,30 +46,39 @@ const OngoingEvent: React.FC<Props> = ({ event }) => (
<Spacer />
<Stack paddingTop="12px">
<Text fontSize="14px">
{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")}`}
</Text>
<Text fontSize="12px">{getTimeRemainingString(new Date(), new Date(event.endDate))}</Text>

<HStack spacing="0">
<Box
width={`${getPercentComplete(
new Date(),
new Date(event.startDate),
new Date(event.endDate)
)}%`}
height="3px"
bg="#7B69EC"
/>
<Box
width={`${
100 - getPercentComplete(new Date(), new Date(event.startDate), new Date(event.endDate))
}%`}
height="3px"
bg="#E6E6E6"
/>
</HStack>
{event.endDate && (
<>
<Text fontSize="12px">
{getTimeRemainingString(new Date(), new Date(event.endDate))}
</Text>

<HStack spacing="0">
<Box
width={`${getPercentComplete(
new Date(),
new Date(event.startDate),
new Date(event.endDate)
)}%`}
height="3px"
bg="#7B69EC"
/>
<Box
width={`${
100 - getPercentComplete(new Date(), new Date(event.startDate), new Date(event.endDate))
}%`}
height="3px"
bg="#E6E6E6"
/>
</HStack>
</>
)}
</Stack>
</Stack>
);


export default OngoingEvent;
19 changes: 10 additions & 9 deletions src/components/tabs/ScheduleHomePage/ScheduleTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand All @@ -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);
}
Expand All @@ -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))
);

Expand All @@ -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(" | "),
}));

Expand Down
2 changes: 1 addition & 1 deletion src/components/tabs/admin/events/Columns.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
30 changes: 8 additions & 22 deletions src/components/tabs/admin/events/FormInputs/EventFormInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -107,20 +107,6 @@ const EventFormInput: React.FC<Props> = ({ 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
? {
Expand All @@ -141,10 +127,6 @@ const EventFormInput: React.FC<Props> = ({ 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;

Expand All @@ -161,14 +143,18 @@ const EventFormInput: React.FC<Props> = ({ 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: {
Expand Down Expand Up @@ -331,14 +317,14 @@ const EventFormInput: React.FC<Props> = ({ id, onClose }) => {
</Box>
</FormControl>
<FormControl isInvalid={errors.endDate} marginBottom={errors.endDate ? "12px" : "42px"}>
<FormLabel>End Date</FormLabel>
<FormLabel>End Date (Optional)</FormLabel>
<Input id="endDate" placeholder="MM/DD/YYYY" {...register("endDate")} />
<Box marginTop="6px" color="red">
{errors.endDate && errors.endDate.message}
</Box>
</FormControl>
<FormControl isInvalid={errors.endTime} marginBottom={errors.endTime ? "12px" : "42px"}>
<FormLabel>End Time</FormLabel>
<FormLabel>End Time (Optional)</FormLabel>
<HStack>
<Input id="endTime" width="80%" placeholder="HH:MM" {...register("endTime")} />
<Select
Expand Down