Skip to content

Commit

Permalink
fixing formating
Browse files Browse the repository at this point in the history
  • Loading branch information
jujulcrane committed Mar 9, 2025
1 parent 516cbec commit 81b60a4
Showing 1 changed file with 122 additions and 118 deletions.
240 changes: 122 additions & 118 deletions frontend/src/components/Admin/TeamEvent/TeamEventDashboard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ import styles from './TeamEventDashboard.module.css';
import NotifyMemberModal from '../../Modals/NotifyMemberModal';

interface Period {
name: string,
start: Date,
deadline: Date,
events: TeamEvent[]
name: string;
start: Date;
deadline: Date;
events: TeamEvent[];
}
const calculateMemberCreditsForEvent = (
member: IdolMember,
Expand All @@ -28,15 +28,15 @@ const calculateMemberCreditsForEvent = (
isInitiativeEvent && !event.isInitiativeEvent
? 0
: event.requests
.filter((req) => req.status === 'approved')
.reduce((val: number, attendee) => {
if (attendee.member.email !== member.email) {
return val;
}
if (event.hasHours && attendee.hoursAttended)
return val + Number(event.numCredits) * attendee.hoursAttended;
return val + Number(event.numCredits);
}, 0);
.filter((req) => req.status === 'approved')
.reduce((val: number, attendee) => {
if (attendee.member.email !== member.email) {
return val;
}
if (event.hasHours && attendee.hoursAttended)
return val + Number(event.numCredits) * attendee.hoursAttended;
return val + Number(event.numCredits);
}, 0);

const calculateTotalCreditsForEvent = (member: IdolMember, event: TeamEvent): number =>
calculateMemberCreditsForEvent(member, event, false);
Expand Down Expand Up @@ -70,9 +70,7 @@ const TeamEventDashboard: React.FC = () => {
const today = new Date();
const year = today.getFullYear();

return today.getMonth() < 7
? new Date(year, 0, 1)
: new Date(year, 7, 1);
return today.getMonth() < 7 ? new Date(year, 0, 1) : new Date(year, 7, 1);
};

const getPeriodIndex = (date: Date): number => {
Expand All @@ -90,9 +88,10 @@ const TeamEventDashboard: React.FC = () => {
TEC_DEADLINES.forEach((date) => {
i += 1;
const periodIndex = getPeriodIndex(new Date(date.getTime() - 24 * 60 * 60 * 1000));
const periodStart = periodIndex === 0 ? getFirstPeriodStart() : TEC_DEADLINES[periodIndex - 1];
const periodStart =
periodIndex === 0 ? getFirstPeriodStart() : TEC_DEADLINES[periodIndex - 1];
const periodEnd = TEC_DEADLINES[periodIndex];
const events = teamEvents.filter(event => {
const events = teamEvents.filter((event) => {
const eventDate = new Date(event.date);
return eventDate > periodStart && eventDate <= periodEnd;
});
Expand All @@ -106,9 +105,9 @@ const TeamEventDashboard: React.FC = () => {
const credPerPeriod: number[] = [];
periods.forEach((period: Period) => {
credPerPeriod.push(getTotalCredits(member, period.events));
})
});
return credPerPeriod;
}
};

const getTECPeriod = (submissionDate: Date) => {
const currentPeriodIndex = TEC_DEADLINES.findIndex((date) => submissionDate <= date);
Expand All @@ -123,9 +122,7 @@ const TeamEventDashboard: React.FC = () => {
return currentCredits < 1 ? 1 - currentCredits : 0;
}
if (prevCredits < 1) {
return currentCredits + prevCredits < 2
? 2 - prevCredits - currentCredits
: 0;
return currentCredits + prevCredits < 2 ? 2 - prevCredits - currentCredits : 0;
}

return currentCredits < 1 ? 1 - currentCredits : 0;
Expand All @@ -134,13 +131,13 @@ const TeamEventDashboard: React.FC = () => {
const currentPeriodIndex = getTECPeriod(new Date());
const membersNeedingNotification = displayPeriod
? allMembers.filter((member) => {
const currentPeriodCredits = getTotalCredits(member, periods[currentPeriodIndex].events);
const requiredCredits = LEAD_ROLES.includes(member.role)
? REQUIRED_LEAD_TEC_CREDITS
: calculateCredits(null, currentPeriodCredits);
const currentPeriodCredits = getTotalCredits(member, periods[currentPeriodIndex].events);
const requiredCredits = LEAD_ROLES.includes(member.role)
? REQUIRED_LEAD_TEC_CREDITS
: calculateCredits(null, currentPeriodCredits);

return currentPeriodCredits < requiredCredits;
})
return currentPeriodCredits < requiredCredits;
})
: [];

const handleExportToCsv = () => {
Expand Down Expand Up @@ -188,7 +185,7 @@ const TeamEventDashboard: React.FC = () => {
<div className={styles.csvButton}>
<div className={styles.displayPeriod}>
<Button onClick={() => setDisplayPeriod((prev) => !prev)}>
{!displayPeriod ? "Display TEC by Period" : "Return to Dashboard"}
{!displayPeriod ? 'Display TEC by Period' : 'Return to Dashboard'}
</Button>
</div>
<div className={styles.csvButton}>
Expand All @@ -201,8 +198,8 @@ const TeamEventDashboard: React.FC = () => {
<Table.Header>
<Table.HeaderCell className={styles.nameCell}>
Name
{displayPeriod && membersNeedingNotification.length > 0 ?
(<NotifyMemberModal
{displayPeriod && membersNeedingNotification.length > 0 ? (
<NotifyMemberModal
all={true}
trigger={
<Button className={styles.remindButton} size="small" color="orange">
Expand All @@ -213,7 +210,7 @@ const TeamEventDashboard: React.FC = () => {
endOfSemesterReminder={endOfSemesterReminder}
type={'tec'}
/>
) :
) : (
<NotifyMemberModal
all={true}
trigger={
Expand All @@ -236,7 +233,8 @@ const TeamEventDashboard: React.FC = () => {
})}
endOfSemesterReminder={endOfSemesterReminder}
type={'tec'}
/>}
/>
)}
<Checkbox
className={styles.endOfSemesterCheckbox}
label={{ children: 'End of Semester Reminder?' }}
Expand All @@ -246,102 +244,108 @@ const TeamEventDashboard: React.FC = () => {
}
/>
</Table.HeaderCell>
<Table.HeaderCell>{!displayPeriod ? "Total" : "Required Credits"}</Table.HeaderCell>
<Table.HeaderCell>{!displayPeriod ? 'Total' : 'Required Credits'}</Table.HeaderCell>
{INITIATIVE_EVENTS && <Table.HeaderCell>Total Initiative Credits</Table.HeaderCell>}
{!displayPeriod ?
teamEvents.map((event) => (
<Table.HeaderCell>{event.name}</Table.HeaderCell>
)) : periods.map((period) => (
<Table.HeaderCell>{period.name}</Table.HeaderCell>
))}
{!displayPeriod
? teamEvents.map((event) => <Table.HeaderCell>{event.name}</Table.HeaderCell>)
: periods.map((period) => <Table.HeaderCell>{period.name}</Table.HeaderCell>)}
</Table.Header>
<Table.Body>
{!displayPeriod
? allMembers.map((member) => {
const totalCredits = getTotalCredits(member, teamEvents);
const initiativeCredits = getInitiativeCredits(member, teamEvents);
const totalCreditsMet =
totalCredits >=
(LEAD_ROLES.includes(member.role)
? REQUIRED_LEAD_TEC_CREDITS
: REQUIRED_MEMBER_TEC_CREDITS);
const initiativeCreditsMet = initiativeCredits >= REQUIRED_INITIATIVE_CREDITS;
const totalCredits = getTotalCredits(member, teamEvents);
const initiativeCredits = getInitiativeCredits(member, teamEvents);
const totalCreditsMet =
totalCredits >=
(LEAD_ROLES.includes(member.role)
? REQUIRED_LEAD_TEC_CREDITS
: REQUIRED_MEMBER_TEC_CREDITS);
const initiativeCreditsMet = initiativeCredits >= REQUIRED_INITIATIVE_CREDITS;

const isAdvisor = ADVISOR_ROLES.includes(member.role);
const isAdvisor = ADVISOR_ROLES.includes(member.role);

return (
<Table.Row>
<Table.Cell positive={totalCreditsMet} className={styles.nameCell}>
{member.firstName} {member.lastName} ({member.netid})
{!totalCreditsMet && (
<NotifyMemberModal
all={false}
trigger={
isAdvisor ? (
<div />
) : (
<Icon className={styles.notify} name="exclamation" color="red" />
)
}
member={member}
endOfSemesterReminder={endOfSemesterReminder}
type={'tec'}
/>
return (
<Table.Row>
<Table.Cell positive={totalCreditsMet} className={styles.nameCell}>
{member.firstName} {member.lastName} ({member.netid})
{!totalCreditsMet && (
<NotifyMemberModal
all={false}
trigger={
isAdvisor ? (
<div />
) : (
<Icon className={styles.notify} name="exclamation" color="red" />
)
}
member={member}
endOfSemesterReminder={endOfSemesterReminder}
type={'tec'}
/>
)}
</Table.Cell>
<Table.Cell positive={totalCreditsMet}>{totalCredits}</Table.Cell>
{INITIATIVE_EVENTS && (
<Table.Cell positive={initiativeCreditsMet}>{initiativeCredits}</Table.Cell>
)}
</Table.Cell>
<Table.Cell positive={totalCreditsMet}>{totalCredits}</Table.Cell>
{INITIATIVE_EVENTS && (
<Table.Cell positive={initiativeCreditsMet}>{initiativeCredits}</Table.Cell>
)}
{teamEvents.map((event) => {
const numCredits = calculateTotalCreditsForEvent(member, event);
return <Table.Cell className={styles.eventCell}>{numCredits}</Table.Cell>;
})}
</Table.Row>
);
}) : allMembers.map((member) => {
const currentPeriodIndex = getTECPeriod(new Date());
const currentPeriodCredits = getTotalCredits(member, periods[currentPeriodIndex].events);
const creditsPerPeriod = getCreditsPerPeriod(member);
{teamEvents.map((event) => {
const numCredits = calculateTotalCreditsForEvent(member, event);
return <Table.Cell className={styles.eventCell}>{numCredits}</Table.Cell>;
})}
</Table.Row>
);
})
: allMembers.map((member) => {
const currentPeriodIndex = getTECPeriod(new Date());
const currentPeriodCredits = getTotalCredits(
member,
periods[currentPeriodIndex].events
);
const creditsPerPeriod = getCreditsPerPeriod(member);

const previousPeriodIndex = currentPeriodIndex > 0 ? currentPeriodIndex - 1 : null;
const previousPeriodCredits = previousPeriodIndex !== null ? creditsPerPeriod[previousPeriodIndex] : null;
const requiredCredits = calculateCredits(previousPeriodCredits, currentPeriodCredits);
const previousPeriodIndex =
currentPeriodIndex > 0 ? currentPeriodIndex - 1 : null;
const previousPeriodCredits =
previousPeriodIndex !== null ? creditsPerPeriod[previousPeriodIndex] : null;
const requiredCredits = calculateCredits(
previousPeriodCredits,
currentPeriodCredits
);

const isAdvisor = ADVISOR_ROLES.includes(member.role);
const isAdvisor = ADVISOR_ROLES.includes(member.role);

return (
<Table.Row>
<Table.Cell positive={requiredCredits <= 0} className={styles.nameCell}>
{member.firstName} {member.lastName} ({member.netid})
{requiredCredits > 0 && (
<NotifyMemberModal
all={false}
trigger={
isAdvisor ? (
<div />
) : (
<Icon className={styles.notify} name="exclamation" color="red" />
)
}
member={member}
endOfSemesterReminder={endOfSemesterReminder}
type={'tec'}
/>
)}
</Table.Cell>
<Table.Cell positive={requiredCredits <= 0}>{requiredCredits}</Table.Cell>
{periods.map((period) => {
const numCredits = period.events
.map((event) => calculateTotalCreditsForEvent(member, event))
.filter((credits) => credits != null)
.reduce((sum, credits) => sum + credits, 0);
return (
<Table.Row>
<Table.Cell positive={requiredCredits <= 0} className={styles.nameCell}>
{member.firstName} {member.lastName} ({member.netid})
{requiredCredits > 0 && (
<NotifyMemberModal
all={false}
trigger={
isAdvisor ? (
<div />
) : (
<Icon className={styles.notify} name="exclamation" color="red" />
)
}
member={member}
endOfSemesterReminder={endOfSemesterReminder}
type={'tec'}
/>
)}
</Table.Cell>
<Table.Cell positive={requiredCredits <= 0}>{requiredCredits}</Table.Cell>
{periods.map((period) => {
const numCredits = period.events
.map((event) => calculateTotalCreditsForEvent(member, event))
.filter((credits) => credits != null)
.reduce((sum, credits) => sum + credits, 0);

return <Table.Cell className={styles.eventCell}>{numCredits}</Table.Cell>;
})}
</Table.Row>
);
})}
return <Table.Cell className={styles.eventCell}>{numCredits}</Table.Cell>;
})}
</Table.Row>
);
})}
</Table.Body>
</Table>
</div>
Expand Down

0 comments on commit 81b60a4

Please sign in to comment.