From ef31fc7123c798070070dd54963efb425b10529d Mon Sep 17 00:00:00 2001
From: AmirAgassi
Date: Sun, 10 Mar 2024 22:55:58 -0400
Subject: [PATCH 1/3] Update Initiative Card to Fit Figma Design
---
src/assets/down_arrow.svg | 9 +
src/assets/index.tsx | 4 +
src/assets/plant.svg | 63 +++
.../InitiativesSection/initiatives/PODS.tsx | 367 +++++++++---------
.../initiatives/ReviewSessions.tsx | 209 +++++-----
.../InitiativesSection/initiatives/styles.ts | 337 +++++++++++-----
6 files changed, 602 insertions(+), 387 deletions(-)
create mode 100644 src/assets/down_arrow.svg
create mode 100644 src/assets/plant.svg
diff --git a/src/assets/down_arrow.svg b/src/assets/down_arrow.svg
new file mode 100644
index 0000000..ef33a23
--- /dev/null
+++ b/src/assets/down_arrow.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/index.tsx b/src/assets/index.tsx
index a930082..acc5171 100644
--- a/src/assets/index.tsx
+++ b/src/assets/index.tsx
@@ -6,6 +6,8 @@ import HHPartnerLogo from "./hh_partner_logo.png";
import Dug from "./dug.svg";
import Heart from "./heart.svg";
import FratBoiDug from "./frat_boi_dug.svg";
+import DownArrowIcon from "./down_arrow.svg"
+import Plant from "./plant.svg"
export {
IconLogo,
@@ -16,4 +18,6 @@ export {
Dug,
Heart,
FratBoiDug,
+ DownArrowIcon,
+ Plant
};
diff --git a/src/assets/plant.svg b/src/assets/plant.svg
new file mode 100644
index 0000000..873f123
--- /dev/null
+++ b/src/assets/plant.svg
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/InitiativesSection/initiatives/PODS.tsx b/src/components/InitiativesSection/initiatives/PODS.tsx
index 8588a30..9fd95df 100644
--- a/src/components/InitiativesSection/initiatives/PODS.tsx
+++ b/src/components/InitiativesSection/initiatives/PODS.tsx
@@ -1,201 +1,202 @@
import { useEffect, useState } from "react";
import { doc, getDoc } from "firebase/firestore";
import { useDisclosure } from "@mantine/hooks";
-import { Title, Text, Box, Flex, Button, Modal } from "@mantine/core";
-import { PodsLogo, IconLogo, C3PartnerLogo, HHPartnerLogo } from "@/assets";
+import { Title, Text, Box, Flex, Button, Collapse } from "@mantine/core";
+import {
+ PodsLogo,
+ IconLogo,
+ C3PartnerLogo,
+ HHPartnerLogo,
+ DownArrowIcon,
+ Plant,
+} from "@/assets";
import { useCommonStyles } from "./styles";
import dayjs from "@utils/day";
import { store } from "@services/firebase";
const PODS = () => {
- const { classes } = useCommonStyles();
- const [opened, { open, close }] = useDisclosure(false);
- const [data, setData] = useState({
- applicable: false,
- openDate: "TBD",
- description: "",
- typeform: "",
- });
+ const { classes } = useCommonStyles();
- const getData = async () => {
- try {
- const docSnap = await getDoc(doc(store, "initiatives", "pods"));
- if (docSnap.exists()) {
- const docData = docSnap.data();
- const date = docData.openDate.toDate();
- setData({
- applicable: docData.applicable,
- openDate: dayjs(date).format("MMMM Do, YYYY"),
- description: docData.description,
- typeform: docData.typeform,
- });
- }
- } catch (error) {
- console.error(error);
- }
- };
+ const [opened, { toggle }] = useDisclosure(false);
+ const [data, setData] = useState({
+ applicable: false,
+ openDate: "TBD",
+ description: "",
+ typeform: "",
+ });
- useEffect(() => {
- getData();
- }, []);
+ const getData = async () => {
+ try {
+ const docSnap = await getDoc(doc(store, "initiatives", "pods"));
+ if (docSnap.exists()) {
+ const docData = docSnap.data();
+ const date = docData.openDate.toDate();
+ setData({
+ applicable: docData.applicable,
+ openDate: dayjs(date).format("MMMM Do, YYYY"),
+ description: docData.description,
+ typeform: docData.typeform,
+ });
+ }
+ } catch (error) {
+ console.error(error);
+ }
+ };
- return (
- ({
- boxShadow: theme.shadows.lg,
- })}
- >
-
-
-
-
-
-
-
- LCS PODS
-
- ({
- display: "none",
+ useEffect(() => {
+ getData();
+ }, []);
- [theme.fn.smallerThan("md")]: {
- display: "block",
- },
- })}
- >
-
-
-
-
- ({
- gap: 32,
- [theme.fn.smallerThan("sm")]: {
- gap: 0,
- },
- })}
- direction="row-reverse"
- >
-
-
- {data.description}
-
-
-
-
-
-
- {!data.applicable && (
-
- {`Applications open on ${data.openDate}`}
-
- )}
-
-
- opens a modal with more description about PODS
-
-
- Show More
-
- {data.applicable && (
-
-
- opens form to apply to PODS
-
-
- Apply
-
-
- )}
-
+ return (
+
+
+
+
+
+
+
+
+
+ LCS PODS
+
+
+
+
-
+
+
+
+
-
-
- PODS has 5 major development phases -{" "}
-
- Brainstorming, Design, Prototyping, MVP
- {" "}
- and Launch .
-
-
- PODS teams are curated based on skill level, based on
- your application's test. Our goal is for{" "}
- everyone to learn - not
- just one hardcarry.
-
-
- Each POD will work on one project over the course of the
- next three months. These projects can be{" "}
- websites
- , video games ,
- machine learning models
- , or whatever else the team is interested in!
-
-
-
+ {data.description}
+
+
+
+
+
+
+
+ {!opened ? (
+ <>
+
+ opens a dropdown with more description about PODS
+
+ }
+ className={classes.showMoreButton}
+ >
+ Show More
+
+ >
+ ) : (
+
+ }
+ className={classes.showMoreButton}
+ >
+ Show More
+
+
+ )}
+
+
+
+
+
+
+
+
+ PODS has 5 major development phases -{" "}
+
+ Brainstorming, Design, Prototyping, MVP
+ {" "}
+ and Launch .
+
+
+ PODS teams are curated based on skill level, based on your
+ application's test. Our goal is for{" "}
+ everyone to learn - not
+ just one hardcarry.
+
+
+ Each POD will work on one project over the course of the next
+ three months. These projects can be{" "}
+ websites ,
+ video games ,
+ machine learning models
+ , or whatever else the team is interested in!
+
+
+
+
+
+
+
+
+
+
+ }
+ className={classes.showMoreButton}
+ >
+ Show Less
+
+
+
- );
+
+
+ );
};
export default PODS;
diff --git a/src/components/InitiativesSection/initiatives/ReviewSessions.tsx b/src/components/InitiativesSection/initiatives/ReviewSessions.tsx
index 84bb52d..bd57977 100644
--- a/src/components/InitiativesSection/initiatives/ReviewSessions.tsx
+++ b/src/components/InitiativesSection/initiatives/ReviewSessions.tsx
@@ -1,117 +1,116 @@
import { Title, Text, Box, Flex, Button } from "@mantine/core";
import { FaYoutube, FaTwitch } from "react-icons/fa";
import { IconLogo } from "@/assets";
-import { Link } from "react-scroll";
import { useCommonStyles } from "./styles";
-import { navbarHeight } from "../../Navbar/Navbar";
const ReviewSessions = () => {
- const { classes } = useCommonStyles();
- const { classes: commonClasses } = useCommonStyles();
+ const { classes } = useCommonStyles();
- return (
- ({ boxShadow: theme.shadows.lg })}>
-
-
- ({
- [theme.fn.smallerThan("xs")]: {
- gridColumn: "span 1",
- },
- })}
- >
-
-
-
- Review Sessions
-
- ({
- height: "100%",
- [theme.fn.smallerThan("xs")]: {
- gridColumn: "span 1",
- },
- })}
- >
- ({
- display: "none",
-
- [theme.fn.smallerThan("md")]: {
- display: "block",
- },
- })}
- >
- 📝
-
-
-
-
- 📝
-
-
- Review Sessions are events hosted in-person and/or
- online by LCS which offer fun and interactive way to
- review course content through games of Kahoot and
- slide shows. Keep an eye on our{" "}
-
- upcoming events
- {" "}
- to not miss out on any Review Session!
-
-
-
-
- Feel free to take a look at previous Review
- Sessions and follow us on Twitch for live
- streams!
-
- }
- target="_blank"
- rel="external noreferrer"
- >
- Youtube
-
- }
- target="_blank"
- rel="external noreferrer"
- >
- Twitch
-
-
-
-
+ return (
+
+
+
+
+
+
+ Review Sessions
+
+
+ 📝
+
- );
+
+ 📝
+
+
+
+ Review Sessions are events hosted in-person and/or online by LCS
+ which offer fun and interactive way to review course content
+ through games of Kahoot and slide shows. Keep an eye on our{" "}
+ {
+ e.stopPropagation();
+ const eventsSection = document.getElementById("Events");
+ if (eventsSection) {
+ eventsSection.scrollIntoView({ behavior: "smooth" });
+ }
+ }}
+ >
+ upcoming events
+ {" "}
+ to not miss out on any Review Session!
+
+
+
+
+
+ Feel free to take a look at previous Review Sessions and
+ follow us on Twitch for live streams!
+
+
+
+ }
+ target="_blank"
+ rel="external noreferrer"
+ style={{
+ position: "relative",
+ zIndex: 2,
+ opacity: 0.6,
+ transition: "opacity 0.3s ease-in-out",
+ }}
+ onMouseEnter={(e) => (e.currentTarget.style.opacity = "1")}
+ onMouseLeave={(e) => (e.currentTarget.style.opacity = "0.6")}
+ >
+ Youtube
+
+ }
+ target="_blank"
+ rel="external noreferrer"
+ style={{
+ position: "relative",
+ zIndex: 2,
+ opacity: 0.6,
+ transition: "opacity 0.3s ease-in-out",
+ }}
+ onMouseEnter={(e) => (e.currentTarget.style.opacity = "1")}
+ onMouseLeave={(e) => (e.currentTarget.style.opacity = "0.6")}
+ >
+ Twitch
+
+
+
+
+
+
+
+ );
};
export default ReviewSessions;
diff --git a/src/components/InitiativesSection/initiatives/styles.ts b/src/components/InitiativesSection/initiatives/styles.ts
index 2364ac8..ec244c6 100644
--- a/src/components/InitiativesSection/initiatives/styles.ts
+++ b/src/components/InitiativesSection/initiatives/styles.ts
@@ -1,140 +1,279 @@
import { createStyles, MantineTheme } from "@mantine/core";
export const useCommonStyles = createStyles((theme: MantineTheme) => ({
- lcsLogo: {
- width: "3rem",
+ lcsLogo: {
+ width: "4rem",
+ marginRight: "0.3rem",
+ },
+
+ hhLogo: {
+ width: "3rem",
+ marginRight: "1rem",
+ },
+
+ c3Logo: {
+ width: "3rem",
+ },
+
+ partnerLogoContainer: {
+ position: "absolute",
+ left: 0,
+ top: 0,
+
+ [theme.fn.smallerThan("md")]: {
+ position: "initial",
},
- hhLogo: {
- width: "2rem",
- marginLeft: "-0.7rem",
+ [theme.fn.smallerThan("xs")]: {
+ gridColumn: "span 2",
},
+ },
- c3Logo: {
- width: "2rem",
+ title: {
+ fontSize: "3rem",
+ color: "#E7EBF5",
+ textAlign: "center",
+ marginBottom: "2rem",
+ [theme.fn.smallerThan("md")]: {
+ fontSize: "2.5rem",
},
+ [theme.fn.smallerThan("sm")]: {
+ gridColumn: "span 2",
+ gridRow: 1,
+ fontSize: "2rem",
+ },
+ },
+
+ outerBox: {
+ boxShadow: theme.shadows.lg,
+ overflow: "hidden",
+ padding: "2rem",
+ borderRadius: "19px",
+ backgroundColor: "#2C3844",
+ width: "100%",
+ border: "2px solid #12181B",
- partnerLogoContainer: {
- position: "absolute",
- left: 0,
- top: 0,
+ [theme.fn.smallerThan("sm")]: {
+ padding: "1rem",
+ },
+ },
- [theme.fn.smallerThan("md")]: {
- position: "initial",
- },
+ innerBox: {
+ marginBottom: "1rem",
+ position: "relative",
- [theme.fn.smallerThan("xs")]: {
- gridColumn: "span 2",
- },
+ [theme.fn.smallerThan("md")]: {
+ display: "grid",
+ gridTemplateColumns: "auto 1fr auto",
},
- title: {
- fontSize: "3rem",
- color: "#E7EBF5",
- textAlign: "center",
- [theme.fn.smallerThan("md")]: {
- fontSize: "2.5rem",
- },
- [theme.fn.smallerThan("sm")]: {
- gridColumn: "span 2",
- gridRow: 1,
- fontSize: "2rem",
- },
+ [theme.fn.smallerThan("sm")]: {
+ gridTemplateColumns: "1fr 1fr",
+ gap: "0.5rem",
},
+ },
- outerBox: {
- padding: "2rem",
- borderRadius: "19px",
- backgroundColor: "#2C3844",
- width: "100%",
- border: "2px solid #6cb3ff",
+ actionBox: {
+ justifyContent: "flex-end",
+ paddingRight: "37%",
+ marginTop: "2rem",
+ gap: theme.spacing.md,
- [theme.fn.smallerThan("sm")]: {
- padding: "1rem",
- },
+ [theme.fn.smallerThan(400)]: {
+ flexDirection: "column",
+ alignItems: "center",
},
+ },
- innerBox: {
- marginBottom: "1rem",
- position: "relative",
+ description: {
+ fontSize: "1.5rem",
+ color: "#E7EBF5",
+ textAlign: "right",
- [theme.fn.smallerThan("md")]: {
- display: "grid",
- gridTemplateColumns: "auto 1fr auto",
- },
-
- [theme.fn.smallerThan("sm")]: {
- gridTemplateColumns: "1fr 1fr",
- gap: "0.5rem",
- },
+ [theme.fn.smallerThan("sm")]: {
+ fontSize: "1rem",
},
+ },
- actionBtn: {
- color: "#1A1B1E",
+ descriptionContainer: {
+ gap: 32,
+ flexDirection: "row",
+ justifyContent: "flex-end",
+ [theme.fn.smallerThan("sm")]: {
+ gap: 0,
+ flexDirection: "column",
},
+ },
- actionBox: {
- justifyContent: "center",
+ bodyLogo: {
+ maxWidth: "34rem",
+ margin: "auto",
+ display: "block",
- [theme.fn.smallerThan(400)]: {
- flexDirection: "column",
- alignItems: "center",
- },
+ [theme.fn.smallerThan("md")]: {
+ display: "none",
},
+ },
- description: {
- fontSize: "1.5rem",
- color: "#E7EBF5",
- textAlign: "left",
+ showMoreButton: {
+ color: "#E7EBF5",
+ width: "fit-content",
+ },
- [theme.fn.smallerThan("sm")]: {
- fontSize: "1rem",
- },
+ headerLogoBox: {
+ height: "10%",
+ [theme.fn.smallerThan("xs")]: {
+ gridColumn: "span 2",
+ },
+ },
+ emojiLogo: {
+ fontSize: "18rem",
+ marginRight: "2rem",
+ [theme.fn.smallerThan("md")]: {
+ display: "none",
},
+ },
- bodyLogo: {
- maxWidth: "23rem",
- margin: "auto",
- display: "block",
+ buttonContainer: {
+ display: "flex",
+ justifyContent: "flex-end",
+ position: "relative",
+ zIndex: 2,
- [theme.fn.smallerThan("md")]: {
- display: "none",
- },
+ "& > button:not(:last-child)": {
+ marginRight: theme.spacing.md,
},
+ },
- headerLogoBox: {
- height: "100%",
- [theme.fn.smallerThan("xs")]: {
- gridColumn: "span 2",
- },
+ emojiHeaderLogo: {
+ fontSize: "4rem",
+ [theme.fn.smallerThan("md")]: {
+ fontSize: "3rem",
},
-
- headerLogo: {
- maxHeight: "2rem",
+ },
+ headerLogoWrapper: {
+ display: "none",
+ [theme.fn.smallerThan("md")]: {
+ display: "block",
},
+ },
- smallText: {
- fontSize: "1rem",
- textAlign: "center",
- color: "white",
- marginTop: "1rem",
- },
+ headerLogo: {
+ maxHeight: "2rem",
+ },
- emojiLogo: {
- fontSize: "300px",
- [theme.fn.smallerThan("md")]: {
- display: "none",
- },
- },
+ hiddenBox: {
+ width: "fit-content",
+ height: "fit-content",
+ visibility: "hidden",
+ },
+
+ collapseContent: {
+ padding: "2rem",
+ display: "flex",
+ flexDirection: "column",
+ color: "white",
+ background: "linear-gradient(to right, #4F8FCC, #6ABFC1)",
+ borderBottomLeftRadius: theme.radius.lg,
+ borderBottomRightRadius: theme.radius.lg,
+ marginTop: "-2px",
+ marginLeft: "-2px",
+ marginRight: "-2px",
+ marginBottom: "-2px",
+ overflow: "hidden",
+ },
- emojiHeaderLogo: {
- fontSize: "2rem",
+ collapseWrapper: {
+ "& .mantine-Collapse-root": {
+ margin: 0,
+ padding: 0,
+ border: "none",
+ borderRadius: "0",
},
+ },
+ podsContainer: {
+ boxShadow: theme.shadows.lg,
+ overflow: "hidden",
+ position: "relative",
+ borderRadius: theme.radius.lg,
+ "&:before": {
+ content: '""',
+ position: "absolute",
+ top: 0,
+ left: 0,
+ width: "100%",
+ height: "100%",
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
+ opacity: 1,
+ transition: "opacity 0.3s ease-in-out",
+ zIndex: 1,
+ },
+ "&:hover:before": {
+ opacity: 0,
+ },
+ "& button": {
+ position: "relative",
+ zIndex: 2,
+ opacity: 0.6,
+ transition: "opacity 0.3s ease-in-out",
+ },
+ "&:hover button": {
+ opacity: 1,
+ },
+ "&.overlay-removed:before": {
+ display: "none",
+ },
+ },
+ link: {
+ position: "relative",
+ zIndex: 2,
+ cursor: "pointer",
+ color: "rgba(98,193,244, 0.5)",
+ "&:hover": {
+ color: "#62c1f4",
+ },
+ },
- link: {
- textTransform: "capitalize",
- cursor: "pointer",
- textDecoration: "underline",
- color: theme.colors.blue[2],
+ collapseContainer: {
+ gap: 32,
+ flexDirection: "row",
+ justifyContent: "flex-end",
+ [theme.fn.smallerThan("sm")]: {
+ gap: 0,
+ flexDirection: "column",
},
+ },
+
+ collapseText: {
+ textAlign: "right",
+ fontSize: "1.35rem",
+ lineHeight: "2",
+ marginBottom: "1rem",
+ marginLeft: "0rem",
+ paddingRight: "5rem",
+ },
+
+ collapseParagraph: {
+ marginBottom: "2rem",
+ },
+
+ bold: {
+ fontWeight: "bold",
+ },
+
+ collapseLogo: {
+ maxWidth: "34rem",
+ paddingBottom: "4rem",
+ paddingRight: "4rem",
+ paddingLeft: "3rem",
+ },
+
+ collapseBtnContainer: {
+ width: "auto",
+ paddingRight: "37%",
+ },
+
+ arrowUp: {
+ transform: "rotate(180deg)",
+ },
}));
From f9d9cd107d5609ae03a86198a5b8c026254e0236 Mon Sep 17 00:00:00 2001
From: AmirAgassi
Date: Mon, 11 Mar 2024 17:24:49 -0400
Subject: [PATCH 2/3] Escape apostrophe in PODS.tsx to fix ESLint error
---
src/components/InitiativesSection/initiatives/PODS.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/InitiativesSection/initiatives/PODS.tsx b/src/components/InitiativesSection/initiatives/PODS.tsx
index 9fd95df..5ce372f 100644
--- a/src/components/InitiativesSection/initiatives/PODS.tsx
+++ b/src/components/InitiativesSection/initiatives/PODS.tsx
@@ -155,7 +155,7 @@ const PODS = () => {
PODS teams are curated based on skill level, based on your
- application's test. Our goal is for{" "}
+ application's test. Our goal is for{" "}
everyone to learn - not
just one hardcarry.
From 369af850aa1e276ac24725600a8f602cfa2ed5e6 Mon Sep 17 00:00:00 2001
From: AmirAgassi
Date: Mon, 11 Mar 2024 17:28:37 -0400
Subject: [PATCH 3/3] Apply ESLint auto-fixes
---
src/assets/index.tsx | 4 +-
.../InitiativesSection/initiatives/PODS.tsx | 336 ++++++-------
.../initiatives/ReviewSessions.tsx | 192 +++----
.../InitiativesSection/initiatives/styles.ts | 474 +++++++++---------
4 files changed, 503 insertions(+), 503 deletions(-)
diff --git a/src/assets/index.tsx b/src/assets/index.tsx
index acc5171..35156d4 100644
--- a/src/assets/index.tsx
+++ b/src/assets/index.tsx
@@ -6,8 +6,8 @@ import HHPartnerLogo from "./hh_partner_logo.png";
import Dug from "./dug.svg";
import Heart from "./heart.svg";
import FratBoiDug from "./frat_boi_dug.svg";
-import DownArrowIcon from "./down_arrow.svg"
-import Plant from "./plant.svg"
+import DownArrowIcon from "./down_arrow.svg";
+import Plant from "./plant.svg";
export {
IconLogo,
diff --git a/src/components/InitiativesSection/initiatives/PODS.tsx b/src/components/InitiativesSection/initiatives/PODS.tsx
index 5ce372f..ce0a4c9 100644
--- a/src/components/InitiativesSection/initiatives/PODS.tsx
+++ b/src/components/InitiativesSection/initiatives/PODS.tsx
@@ -3,200 +3,200 @@ import { doc, getDoc } from "firebase/firestore";
import { useDisclosure } from "@mantine/hooks";
import { Title, Text, Box, Flex, Button, Collapse } from "@mantine/core";
import {
- PodsLogo,
- IconLogo,
- C3PartnerLogo,
- HHPartnerLogo,
- DownArrowIcon,
- Plant,
+ PodsLogo,
+ IconLogo,
+ C3PartnerLogo,
+ HHPartnerLogo,
+ DownArrowIcon,
+ Plant,
} from "@/assets";
import { useCommonStyles } from "./styles";
import dayjs from "@utils/day";
import { store } from "@services/firebase";
const PODS = () => {
- const { classes } = useCommonStyles();
+ const { classes } = useCommonStyles();
- const [opened, { toggle }] = useDisclosure(false);
- const [data, setData] = useState({
- applicable: false,
- openDate: "TBD",
- description: "",
- typeform: "",
- });
+ const [opened, { toggle }] = useDisclosure(false);
+ const [data, setData] = useState({
+ applicable: false,
+ openDate: "TBD",
+ description: "",
+ typeform: "",
+ });
- const getData = async () => {
- try {
- const docSnap = await getDoc(doc(store, "initiatives", "pods"));
- if (docSnap.exists()) {
- const docData = docSnap.data();
- const date = docData.openDate.toDate();
- setData({
- applicable: docData.applicable,
- openDate: dayjs(date).format("MMMM Do, YYYY"),
- description: docData.description,
- typeform: docData.typeform,
- });
- }
- } catch (error) {
- console.error(error);
- }
- };
+ const getData = async () => {
+ try {
+ const docSnap = await getDoc(doc(store, "initiatives", "pods"));
+ if (docSnap.exists()) {
+ const docData = docSnap.data();
+ const date = docData.openDate.toDate();
+ setData({
+ applicable: docData.applicable,
+ openDate: dayjs(date).format("MMMM Do, YYYY"),
+ description: docData.description,
+ typeform: docData.typeform,
+ });
+ }
+ } catch (error) {
+ console.error(error);
+ }
+ };
- useEffect(() => {
- getData();
- }, []);
+ useEffect(() => {
+ getData();
+ }, []);
- return (
-
-
-
-
-
-
-
-
-
- LCS PODS
-
-
-
-
-
-
-
-
-
-
+
- {data.description}
-
-
-
-
-
-
-
- {!opened ? (
- <>
-
+
+
+
+
+
+
+
+ LCS PODS
+
+
+
+
+
+
+
+
+
+
+ {data.description}
+
+
+
+
+
+
+
+ {!opened ? (
+ <>
+
opens a dropdown with more description about PODS
-
- }
- className={classes.showMoreButton}
- >
+
+ }
+ className={classes.showMoreButton}
+ >
Show More
-
- >
- ) : (
-
- }
- className={classes.showMoreButton}
- >
+
+ >
+ ) : (
+
+ }
+ className={classes.showMoreButton}
+ >
Show More
-
+
+
+ )}
+
- )}
-
-
-
-
-
-
-
-
+
+
+
+
+
+
PODS has 5 major development phases -{" "}
-
+
Brainstorming, Design, Prototyping, MVP
- {" "}
+ {" "}
and Launch .
-
-
+
+
PODS teams are curated based on skill level, based on your
application's test. Our goal is for{" "}
- everyone to learn - not
+ everyone to learn - not
just one hardcarry.
-
-
+
+
Each POD will work on one project over the course of the next
three months. These projects can be{" "}
- websites ,
- video games ,
- machine learning models
+ websites ,
+ video games ,
+ machine learning models
, or whatever else the team is interested in!
-
-
-
-
-
-
-
-
-
-
- }
- className={classes.showMoreButton}
- >
+
+
+
+
+
+
+
+
+
+
+ }
+ className={classes.showMoreButton}
+ >
Show Less
-
-
-
+
+
+
+
+
-
-
- );
+ );
};
export default PODS;
diff --git a/src/components/InitiativesSection/initiatives/ReviewSessions.tsx b/src/components/InitiativesSection/initiatives/ReviewSessions.tsx
index bd57977..74601fb 100644
--- a/src/components/InitiativesSection/initiatives/ReviewSessions.tsx
+++ b/src/components/InitiativesSection/initiatives/ReviewSessions.tsx
@@ -4,113 +4,113 @@ import { IconLogo } from "@/assets";
import { useCommonStyles } from "./styles";
const ReviewSessions = () => {
- const { classes } = useCommonStyles();
+ const { classes } = useCommonStyles();
- return (
-
-
-
-
-
-
- Review Sessions
-
-
- 📝
-
-
-
-
- 📝
-
-
-
+ return (
+
+
+
+
+
+
+ Review Sessions
+
+
+ 📝
+
+
+
+
+ 📝
+
+
+
Review Sessions are events hosted in-person and/or online by LCS
which offer fun and interactive way to review course content
through games of Kahoot and slide shows. Keep an eye on our{" "}
- {
- e.stopPropagation();
- const eventsSection = document.getElementById("Events");
- if (eventsSection) {
- eventsSection.scrollIntoView({ behavior: "smooth" });
- }
- }}
- >
+ {
+ e.stopPropagation();
+ const eventsSection = document.getElementById("Events");
+ if (eventsSection) {
+ eventsSection.scrollIntoView({ behavior: "smooth" });
+ }
+ }}
+ >
upcoming events
- {" "}
+ {" "}
to not miss out on any Review Session!
-
-
-
-
-
+
+
+
+
+
Feel free to take a look at previous Review Sessions and
follow us on Twitch for live streams!
-
-
-
- }
- target="_blank"
- rel="external noreferrer"
- style={{
- position: "relative",
- zIndex: 2,
- opacity: 0.6,
- transition: "opacity 0.3s ease-in-out",
- }}
- onMouseEnter={(e) => (e.currentTarget.style.opacity = "1")}
- onMouseLeave={(e) => (e.currentTarget.style.opacity = "0.6")}
- >
+
+
+
+ }
+ target="_blank"
+ rel="external noreferrer"
+ style={{
+ position: "relative",
+ zIndex: 2,
+ opacity: 0.6,
+ transition: "opacity 0.3s ease-in-out",
+ }}
+ onMouseEnter={(e) => (e.currentTarget.style.opacity = "1")}
+ onMouseLeave={(e) => (e.currentTarget.style.opacity = "0.6")}
+ >
Youtube
-
- }
- target="_blank"
- rel="external noreferrer"
- style={{
- position: "relative",
- zIndex: 2,
- opacity: 0.6,
- transition: "opacity 0.3s ease-in-out",
- }}
- onMouseEnter={(e) => (e.currentTarget.style.opacity = "1")}
- onMouseLeave={(e) => (e.currentTarget.style.opacity = "0.6")}
- >
+
+ }
+ target="_blank"
+ rel="external noreferrer"
+ style={{
+ position: "relative",
+ zIndex: 2,
+ opacity: 0.6,
+ transition: "opacity 0.3s ease-in-out",
+ }}
+ onMouseEnter={(e) => (e.currentTarget.style.opacity = "1")}
+ onMouseLeave={(e) => (e.currentTarget.style.opacity = "0.6")}
+ >
Twitch
-
-
+
+
+
+
+
-
-
-
-
- );
+
+ );
};
export default ReviewSessions;
diff --git a/src/components/InitiativesSection/initiatives/styles.ts b/src/components/InitiativesSection/initiatives/styles.ts
index ec244c6..d03f0a2 100644
--- a/src/components/InitiativesSection/initiatives/styles.ts
+++ b/src/components/InitiativesSection/initiatives/styles.ts
@@ -1,279 +1,279 @@
import { createStyles, MantineTheme } from "@mantine/core";
export const useCommonStyles = createStyles((theme: MantineTheme) => ({
- lcsLogo: {
- width: "4rem",
- marginRight: "0.3rem",
- },
-
- hhLogo: {
- width: "3rem",
- marginRight: "1rem",
- },
-
- c3Logo: {
- width: "3rem",
- },
-
- partnerLogoContainer: {
- position: "absolute",
- left: 0,
- top: 0,
-
- [theme.fn.smallerThan("md")]: {
- position: "initial",
+ lcsLogo: {
+ width: "4rem",
+ marginRight: "0.3rem",
},
- [theme.fn.smallerThan("xs")]: {
- gridColumn: "span 2",
+ hhLogo: {
+ width: "3rem",
+ marginRight: "1rem",
},
- },
-
- title: {
- fontSize: "3rem",
- color: "#E7EBF5",
- textAlign: "center",
- marginBottom: "2rem",
- [theme.fn.smallerThan("md")]: {
- fontSize: "2.5rem",
- },
- [theme.fn.smallerThan("sm")]: {
- gridColumn: "span 2",
- gridRow: 1,
- fontSize: "2rem",
+
+ c3Logo: {
+ width: "3rem",
},
- },
-
- outerBox: {
- boxShadow: theme.shadows.lg,
- overflow: "hidden",
- padding: "2rem",
- borderRadius: "19px",
- backgroundColor: "#2C3844",
- width: "100%",
- border: "2px solid #12181B",
-
- [theme.fn.smallerThan("sm")]: {
- padding: "1rem",
+
+ partnerLogoContainer: {
+ position: "absolute",
+ left: 0,
+ top: 0,
+
+ [theme.fn.smallerThan("md")]: {
+ position: "initial",
+ },
+
+ [theme.fn.smallerThan("xs")]: {
+ gridColumn: "span 2",
+ },
},
- },
- innerBox: {
- marginBottom: "1rem",
- position: "relative",
+ title: {
+ fontSize: "3rem",
+ color: "#E7EBF5",
+ textAlign: "center",
+ marginBottom: "2rem",
+ [theme.fn.smallerThan("md")]: {
+ fontSize: "2.5rem",
+ },
+ [theme.fn.smallerThan("sm")]: {
+ gridColumn: "span 2",
+ gridRow: 1,
+ fontSize: "2rem",
+ },
+ },
- [theme.fn.smallerThan("md")]: {
- display: "grid",
- gridTemplateColumns: "auto 1fr auto",
+ outerBox: {
+ boxShadow: theme.shadows.lg,
+ overflow: "hidden",
+ padding: "2rem",
+ borderRadius: "19px",
+ backgroundColor: "#2C3844",
+ width: "100%",
+ border: "2px solid #12181B",
+
+ [theme.fn.smallerThan("sm")]: {
+ padding: "1rem",
+ },
},
- [theme.fn.smallerThan("sm")]: {
- gridTemplateColumns: "1fr 1fr",
- gap: "0.5rem",
+ innerBox: {
+ marginBottom: "1rem",
+ position: "relative",
+
+ [theme.fn.smallerThan("md")]: {
+ display: "grid",
+ gridTemplateColumns: "auto 1fr auto",
+ },
+
+ [theme.fn.smallerThan("sm")]: {
+ gridTemplateColumns: "1fr 1fr",
+ gap: "0.5rem",
+ },
},
- },
- actionBox: {
- justifyContent: "flex-end",
- paddingRight: "37%",
- marginTop: "2rem",
- gap: theme.spacing.md,
+ actionBox: {
+ justifyContent: "flex-end",
+ paddingRight: "37%",
+ marginTop: "2rem",
+ gap: theme.spacing.md,
- [theme.fn.smallerThan(400)]: {
- flexDirection: "column",
- alignItems: "center",
+ [theme.fn.smallerThan(400)]: {
+ flexDirection: "column",
+ alignItems: "center",
+ },
},
- },
- description: {
- fontSize: "1.5rem",
- color: "#E7EBF5",
- textAlign: "right",
+ description: {
+ fontSize: "1.5rem",
+ color: "#E7EBF5",
+ textAlign: "right",
+
+ [theme.fn.smallerThan("sm")]: {
+ fontSize: "1rem",
+ },
+ },
- [theme.fn.smallerThan("sm")]: {
- fontSize: "1rem",
+ descriptionContainer: {
+ gap: 32,
+ flexDirection: "row",
+ justifyContent: "flex-end",
+ [theme.fn.smallerThan("sm")]: {
+ gap: 0,
+ flexDirection: "column",
+ },
},
- },
-
- descriptionContainer: {
- gap: 32,
- flexDirection: "row",
- justifyContent: "flex-end",
- [theme.fn.smallerThan("sm")]: {
- gap: 0,
- flexDirection: "column",
+
+ bodyLogo: {
+ maxWidth: "34rem",
+ margin: "auto",
+ display: "block",
+
+ [theme.fn.smallerThan("md")]: {
+ display: "none",
+ },
},
- },
- bodyLogo: {
- maxWidth: "34rem",
- margin: "auto",
- display: "block",
+ showMoreButton: {
+ color: "#E7EBF5",
+ width: "fit-content",
+ },
- [theme.fn.smallerThan("md")]: {
- display: "none",
+ headerLogoBox: {
+ height: "10%",
+ [theme.fn.smallerThan("xs")]: {
+ gridColumn: "span 2",
+ },
},
- },
+ emojiLogo: {
+ fontSize: "18rem",
+ marginRight: "2rem",
+ [theme.fn.smallerThan("md")]: {
+ display: "none",
+ },
+ },
+
+ buttonContainer: {
+ display: "flex",
+ justifyContent: "flex-end",
+ position: "relative",
+ zIndex: 2,
- showMoreButton: {
- color: "#E7EBF5",
- width: "fit-content",
- },
+ "& > button:not(:last-child)": {
+ marginRight: theme.spacing.md,
+ },
+ },
- headerLogoBox: {
- height: "10%",
- [theme.fn.smallerThan("xs")]: {
- gridColumn: "span 2",
+ emojiHeaderLogo: {
+ fontSize: "4rem",
+ [theme.fn.smallerThan("md")]: {
+ fontSize: "3rem",
+ },
},
- },
- emojiLogo: {
- fontSize: "18rem",
- marginRight: "2rem",
- [theme.fn.smallerThan("md")]: {
- display: "none",
+ headerLogoWrapper: {
+ display: "none",
+ [theme.fn.smallerThan("md")]: {
+ display: "block",
+ },
},
- },
- buttonContainer: {
- display: "flex",
- justifyContent: "flex-end",
- position: "relative",
- zIndex: 2,
+ headerLogo: {
+ maxHeight: "2rem",
+ },
- "& > button:not(:last-child)": {
- marginRight: theme.spacing.md,
+ hiddenBox: {
+ width: "fit-content",
+ height: "fit-content",
+ visibility: "hidden",
},
- },
- emojiHeaderLogo: {
- fontSize: "4rem",
- [theme.fn.smallerThan("md")]: {
- fontSize: "3rem",
+ collapseContent: {
+ padding: "2rem",
+ display: "flex",
+ flexDirection: "column",
+ color: "white",
+ background: "linear-gradient(to right, #4F8FCC, #6ABFC1)",
+ borderBottomLeftRadius: theme.radius.lg,
+ borderBottomRightRadius: theme.radius.lg,
+ marginTop: "-2px",
+ marginLeft: "-2px",
+ marginRight: "-2px",
+ marginBottom: "-2px",
+ overflow: "hidden",
},
- },
- headerLogoWrapper: {
- display: "none",
- [theme.fn.smallerThan("md")]: {
- display: "block",
+
+ collapseWrapper: {
+ "& .mantine-Collapse-root": {
+ margin: 0,
+ padding: 0,
+ border: "none",
+ borderRadius: "0",
+ },
},
- },
-
- headerLogo: {
- maxHeight: "2rem",
- },
-
- hiddenBox: {
- width: "fit-content",
- height: "fit-content",
- visibility: "hidden",
- },
-
- collapseContent: {
- padding: "2rem",
- display: "flex",
- flexDirection: "column",
- color: "white",
- background: "linear-gradient(to right, #4F8FCC, #6ABFC1)",
- borderBottomLeftRadius: theme.radius.lg,
- borderBottomRightRadius: theme.radius.lg,
- marginTop: "-2px",
- marginLeft: "-2px",
- marginRight: "-2px",
- marginBottom: "-2px",
- overflow: "hidden",
- },
-
- collapseWrapper: {
- "& .mantine-Collapse-root": {
- margin: 0,
- padding: 0,
- border: "none",
- borderRadius: "0",
+ podsContainer: {
+ boxShadow: theme.shadows.lg,
+ overflow: "hidden",
+ position: "relative",
+ borderRadius: theme.radius.lg,
+ "&:before": {
+ content: "\"\"",
+ position: "absolute",
+ top: 0,
+ left: 0,
+ width: "100%",
+ height: "100%",
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
+ opacity: 1,
+ transition: "opacity 0.3s ease-in-out",
+ zIndex: 1,
+ },
+ "&:hover:before": {
+ opacity: 0,
+ },
+ "& button": {
+ position: "relative",
+ zIndex: 2,
+ opacity: 0.6,
+ transition: "opacity 0.3s ease-in-out",
+ },
+ "&:hover button": {
+ opacity: 1,
+ },
+ "&.overlay-removed:before": {
+ display: "none",
+ },
},
- },
- podsContainer: {
- boxShadow: theme.shadows.lg,
- overflow: "hidden",
- position: "relative",
- borderRadius: theme.radius.lg,
- "&:before": {
- content: '""',
- position: "absolute",
- top: 0,
- left: 0,
- width: "100%",
- height: "100%",
- backgroundColor: "rgba(0, 0, 0, 0.4)",
- opacity: 1,
- transition: "opacity 0.3s ease-in-out",
- zIndex: 1,
+ link: {
+ position: "relative",
+ zIndex: 2,
+ cursor: "pointer",
+ color: "rgba(98,193,244, 0.5)",
+ "&:hover": {
+ color: "#62c1f4",
+ },
},
- "&:hover:before": {
- opacity: 0,
+
+ collapseContainer: {
+ gap: 32,
+ flexDirection: "row",
+ justifyContent: "flex-end",
+ [theme.fn.smallerThan("sm")]: {
+ gap: 0,
+ flexDirection: "column",
+ },
},
- "& button": {
- position: "relative",
- zIndex: 2,
- opacity: 0.6,
- transition: "opacity 0.3s ease-in-out",
+
+ collapseText: {
+ textAlign: "right",
+ fontSize: "1.35rem",
+ lineHeight: "2",
+ marginBottom: "1rem",
+ marginLeft: "0rem",
+ paddingRight: "5rem",
},
- "&:hover button": {
- opacity: 1,
+
+ collapseParagraph: {
+ marginBottom: "2rem",
+ },
+
+ bold: {
+ fontWeight: "bold",
},
- "&.overlay-removed:before": {
- display: "none",
+
+ collapseLogo: {
+ maxWidth: "34rem",
+ paddingBottom: "4rem",
+ paddingRight: "4rem",
+ paddingLeft: "3rem",
},
- },
- link: {
- position: "relative",
- zIndex: 2,
- cursor: "pointer",
- color: "rgba(98,193,244, 0.5)",
- "&:hover": {
- color: "#62c1f4",
+
+ collapseBtnContainer: {
+ width: "auto",
+ paddingRight: "37%",
},
- },
-
- collapseContainer: {
- gap: 32,
- flexDirection: "row",
- justifyContent: "flex-end",
- [theme.fn.smallerThan("sm")]: {
- gap: 0,
- flexDirection: "column",
+
+ arrowUp: {
+ transform: "rotate(180deg)",
},
- },
-
- collapseText: {
- textAlign: "right",
- fontSize: "1.35rem",
- lineHeight: "2",
- marginBottom: "1rem",
- marginLeft: "0rem",
- paddingRight: "5rem",
- },
-
- collapseParagraph: {
- marginBottom: "2rem",
- },
-
- bold: {
- fontWeight: "bold",
- },
-
- collapseLogo: {
- maxWidth: "34rem",
- paddingBottom: "4rem",
- paddingRight: "4rem",
- paddingLeft: "3rem",
- },
-
- collapseBtnContainer: {
- width: "auto",
- paddingRight: "37%",
- },
-
- arrowUp: {
- transform: "rotate(180deg)",
- },
}));