56 lines
1.4 KiB
TypeScript
56 lines
1.4 KiB
TypeScript
import React from "react";
|
||
|
||
import { ConnectWithUs } from "@/components/ConnectWithUs";
|
||
import { EmailSignup } from "@/components/EmailSignup";
|
||
import { Image } from "@/components/Image";
|
||
import {
|
||
GetShapesConfig,
|
||
ShapesConfig,
|
||
shapeTypes,
|
||
} from "@/components/ShapesBackground";
|
||
|
||
import Content from "../content/get-involved.mdx";
|
||
|
||
import styles from "./get-involved.module.css";
|
||
|
||
export default function GetInvolved() {
|
||
return (
|
||
<div className={styles.page}>
|
||
<header>
|
||
<div className={styles.headerText}>
|
||
<h1>Get Involved!</h1>
|
||
<p>
|
||
If you’re interested in helping out with CS Club, don’t hesitate to
|
||
get in touch with us!
|
||
</p>
|
||
</div>
|
||
<Image src="images/get-involved/codey.svg" className={styles.codey} />
|
||
</header>
|
||
<main className={styles.content}>
|
||
<Content />
|
||
</main>
|
||
<div className={styles.connectWithUs}>
|
||
<ConnectWithUs />
|
||
</div>
|
||
<div className={styles.emailSignup}>
|
||
<EmailSignup />
|
||
</div>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
GetInvolved.getShapesConfig = (() => {
|
||
const config: ShapesConfig = {};
|
||
|
||
shapeTypes.forEach((shape) => {
|
||
const [top, left] = [
|
||
Math.trunc(Math.random() * (window.innerWidth <= 500 ? 50 : 90)),
|
||
Math.trunc(Math.random() * 100),
|
||
];
|
||
|
||
config[shape] = [{ top: `${top}vh`, left: `${left}vw` }];
|
||
});
|
||
|
||
return config;
|
||
}) as GetShapesConfig;
|