Skip to content

Commit 0709f7b

Browse files
authored
Training Reminders Cleanup (#1367)
1 parent 646ffb4 commit 0709f7b

3 files changed

Lines changed: 39 additions & 120 deletions

File tree

client/src/pages/makerspace_page/ExpandableHeader.tsx

Lines changed: 8 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import { Accordion, AccordionDetails, AccordionSummary, Alert, Button, Card, CardContent, IconButton, Link, Typography } from "@mui/material";
1+
import { Accordion, AccordionDetails, AccordionSummary, Button, Card, CardContent, IconButton, Link, Typography } from "@mui/material";
22
import { ModuleStatus } from "../../common/TrainingModuleUtils";
33
import { Box, Stack } from "@mui/system";
4-
import ModuleStatusRow from "../../common/ModuleStatusRow";
54
import { isManagerFor } from "../../common/PrivilegeUtils";
65
import EditIcon from "@mui/icons-material/Edit";
76
import KeyboardArrowUpIcon from "@mui/icons-material/KeyboardArrowUp";
@@ -15,9 +14,9 @@ import CurrentHours from "../../common/CurrentHours";
1514
import { useState } from "react";
1615
import { useIsMobile } from "../../common/IsMobileProvider";
1716

18-
function HoursCard(hours: MakerspaceHours[]) {
17+
function HoursCard(hours: MakerspaceHours[], isMobile: boolean) {
1918
return (
20-
<Card sx={{ width: "100%", height: "auto" }}>
19+
<Card sx={{ width: isMobile ? "100%" : "30%", height: "auto" }}>
2120
<CardContent>
2221
<Typography variant="h6" textAlign={"center"}>
2322
Hours
@@ -28,9 +27,9 @@ function HoursCard(hours: MakerspaceHours[]) {
2827
);
2928
}
3029

31-
function AboutCard({ location, description, docsLink }: FullMakerspace) {
30+
function AboutCard({ location, description, docsLink }: FullMakerspace, isMobile: boolean) {
3231
return (
33-
<Card sx={{ width: "100%", height: "auto" }}>
32+
<Card sx={{ width: isMobile ? "100%" : "70%", height: "auto" }}>
3433
<CardContent>
3534
<Typography variant="h6" textAlign={"center"}>
3635
About
@@ -45,35 +44,6 @@ function AboutCard({ location, description, docsLink }: FullMakerspace) {
4544
);
4645
}
4746

48-
function MakerspaceTrainingCard(makerspaceTrainings: ModuleStatus[], user: any) {
49-
return (
50-
<Card sx={{ width: "100%", height: "auto" }}>
51-
<CardContent>
52-
<Typography variant="h6" textAlign={"center"}>
53-
Makerspace Trainings
54-
</Typography>
55-
56-
<Stack direction={"column"} spacing={2} alignItems={"center"}>
57-
<Stack direction={"column"} spacing={2} alignItems={"center"}>
58-
{user.visitor ? (
59-
<Alert severity="info">Log in to view training progress.</Alert>
60-
) : makerspaceTrainings.some((ms) => ms.status !== "Passed" && ms.status !== "Expiring Soon") ? (
61-
<Alert severity="error">
62-
You must pass the makerspace trainings before you can use equipment in the makerspace!
63-
</Alert>
64-
) : null}
65-
</Stack>
66-
<Stack direction={"column"} spacing={1}>
67-
{makerspaceTrainings.map((ms: ModuleStatus) => (
68-
<ModuleStatusRow ms={ms} />
69-
))}
70-
</Stack>
71-
</Stack>
72-
</CardContent>
73-
</Card>
74-
);
75-
}
76-
7747
export interface ExpandableHeaderProps {
7848
makerspace: FullMakerspace;
7949
makerspaceTrainings: ModuleStatus[];
@@ -87,9 +57,6 @@ function TitleRow(
8757
id: number,
8858
canEdit: boolean,
8959
hours: MakerspaceHours[],
90-
hasIncomplete: boolean,
91-
hasExpiring: boolean,
92-
user: any
9360
) {
9461
const title = <Typography variant={isMobile ? "h4" : "h3"}>{name}</Typography>;
9562

@@ -109,17 +76,6 @@ function TitleRow(
10976
</IconButton >
11077
) : null;
11178

112-
const alert = user.visitor ? (
113-
// user is not logged in
114-
<Alert severity="info">Log in to view training progress.</Alert>
115-
) : hasIncomplete ? (
116-
// user is logged in with incomplete trainings
117-
<Alert severity="error">You have incomplete makerspace trainings.</Alert>
118-
) : hasExpiring ? (
119-
// user is logged in with expiring trainings
120-
<Alert severity="warning">You have makerspace trainings that expire soon.</Alert>
121-
) : undefined;
122-
12379
const hoursElement = <CurrentHours times={hours} fillLine={isMobile} showDay={false} />;
12480

12581
const expandButton = (
@@ -151,7 +107,6 @@ function TitleRow(
151107
<Stack direction={"column"} width={"100%"} spacing={"5px"}>
152108
{titleAndEdit}
153109
{hoursElement}
154-
{alert}
155110
{expandButton}
156111
</Stack>
157112
);
@@ -160,7 +115,6 @@ function TitleRow(
160115
return (
161116
<Stack direction={"row"} alignItems={"center"} justifyContent={"space-between"} spacing={"15px"} width={"100%"}>
162117
{titleAndEdit}
163-
{alert}
164118
<Box flexGrow={1}></Box>
165119
{hoursElement}
166120
{expandButton}
@@ -173,11 +127,7 @@ export default function ExpandableHeader({ makerspace, makerspaceTrainings }: Ex
173127
const navigate = useNavigate();
174128
const isMobile = useIsMobile();
175129

176-
const hasIncompleteSpaceTrainings = makerspaceTrainings.some(
177-
(ms) => ms.status !== "Passed" && ms.status !== "Expiring Soon"
178-
);
179-
const hasExpiringSoonSpaceTrainings = makerspaceTrainings.some((ms) => ms.status === "Expiring Soon");
180-
const [expanded, setExpanded] = useState<boolean>(hasIncompleteSpaceTrainings || hasExpiringSoonSpaceTrainings);
130+
const [expanded, setExpanded] = useState<boolean>(user.visitor);
181131

182132
return (
183133
<Accordion expanded={expanded} sx={{ border: "none" }} elevation={0} onChange={() => setExpanded(!expanded)}>
@@ -190,18 +140,14 @@ export default function ExpandableHeader({ makerspace, makerspaceTrainings }: Ex
190140
makerspace.id,
191141
isManagerFor(user, Number(makerspace.id)),
192142
makerspace.hours,
193-
hasIncompleteSpaceTrainings,
194-
hasExpiringSoonSpaceTrainings,
195-
user
196143
)}
197144
</AccordionSummary>
198145

199146
<AccordionDetails>
200147
{makerspaceTrainings.length > 0 && (
201148
<Stack direction={isMobile ? "column" : "row"} spacing={isMobile ? 2 : 5} justifyContent="space-around" flexGrow={0}>
202-
{AboutCard(makerspace)}
203-
{HoursCard(makerspace.hours)}
204-
{MakerspaceTrainingCard(makerspaceTrainings, user)}
149+
{AboutCard(makerspace, isMobile)}
150+
{HoursCard(makerspace.hours, isMobile)}
205151
</Stack>
206152
)}
207153
</AccordionDetails>

client/src/pages/makerspace_page/RoomSection.tsx

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
import { Alert, Divider, Grid, Stack, Typography } from "@mui/material";
1+
import { Grid, Stack, Typography } from "@mui/material";
22
import Room from "../../types/Room";
33
import Equipment from "../../types/Equipment";
44
import EquipmentCard from "../../common/EquipmentCard";
5-
import { useCurrentUser } from "../../common/CurrentUserProvider";
6-
import { ModuleStatus, moduleStatusMapper, TrainingModule } from "../../common/TrainingModuleUtils";
5+
import { TrainingModule } from "../../common/TrainingModuleUtils";
76
import { useIsMobile } from "../../common/IsMobileProvider";
8-
import ModuleStatusRow from "../../common/ModuleStatusRow";
97

108
interface RoomSectionProps {
119
room: Room;
@@ -21,7 +19,6 @@ interface RoomSectionProps {
2119
}
2220

2321
export default function RoomSection(props: RoomSectionProps) {
24-
const currentUser = useCurrentUser();
2522
const isMobile = useIsMobile();
2623
const roomEquipment = props.room.equipment;
2724

@@ -30,36 +27,13 @@ export default function RoomSection(props: RoomSectionProps) {
3027
const archivedEquipment = sortedEquipment.filter((equipment: Equipment) => equipment.archived);
3128
const liveEquipment = sortedEquipment.filter((equipment: Equipment) => !equipment.archived);
3229

33-
const roomTrainings = props.room.trainingModules.map(moduleStatusMapper(currentUser.passedModules, currentUser.trainingHolds));
34-
3530
if (liveEquipment.length < 1) {
3631
return null;
3732
}
3833

3934
return (
4035
<Stack padding={"10px 0"} spacing={1}>
4136
<Typography variant="h4" pl={"10px"}>{props.room.name}</Typography>
42-
{
43-
roomTrainings.length > 0 &&
44-
<Stack direction={"column"} alignItems={isMobile ? "center" : "flex-start"} pl={"10px"} spacing={1}>
45-
<Stack direction={isMobile ? "column" : "row"} spacing={2} alignItems={"center"}>
46-
<Typography variant="h6">Area Trainings</Typography>
47-
{
48-
roomTrainings.some((ms) => (ms.status !== "Passed" && ms.status !== "Expiring Soon"))
49-
? <Alert severity="error">You must pass the area trainings before you can use equipment in the area!</Alert>
50-
: null
51-
}
52-
</Stack>
53-
<Stack direction={isMobile ? "column" : "row"} spacing={1} alignItems={"center"}>
54-
{
55-
roomTrainings.length > 0 && roomTrainings.map((ms: ModuleStatus) => (
56-
<ModuleStatusRow ms={ms} />
57-
))
58-
}
59-
</Stack>
60-
<Divider orientation="horizontal" variant="fullWidth" flexItem />
61-
</Stack>
62-
}
6337
<Grid container spacing={isMobile ? 2 : 3} justifyContent="center">
6438
{
6539
liveEquipment.map((equipment: Equipment) => (

0 commit comments

Comments
 (0)