import React, { useState } from "react"; import styles from "./playground.module.css"; import AfterHoursContent, { metadata as afterHoursMetadata, } from "../content/playground/after-hours.event.mdx"; import OOTBReact, { metadata as OOTBReactEventMetadata, } from "../content/playground/ootb-react.event.mdx"; import AltTab, { metadata as altTabEventMetadata, } from "../content/playground/alt-tab.event.mdx"; import UnavailableContent, { metadata as unavailableMetadata, } from "../content/playground/unavailable.news.mdx"; import { metadata as dogeMetadata } from "../content/playground/doge.team-member.mdx"; import CodeyInfo, { metadata as codeyMetadata, } from "../content/playground/codey.team-member.mdx"; import { MiniEventCard } from "./MiniEventCard"; import { NewsCard } from "./NewsCard"; import { EventCard } from "./EventCard"; import { EventDescriptionCard } from "./EventDescriptionCard"; import { TeamMember } from "./TeamMember"; import { TeamMemberCard } from "./TeamMemberCard"; import { OrganizedContent, LinkProps } from "./OrganizedContent"; const events = [ { Content: OOTBReact, metadata: OOTBReactEventMetadata }, { Content: AfterHoursContent, metadata: afterHoursMetadata }, { Content: AltTab, metadata: altTabEventMetadata }, ]; export function MiniEventCardDemo() { return (
{events.map(({ Content, metadata }) => ( } key={metadata.name + metadata.date.toString()} /> ))}
); } export function NewsCardDemo() { return (
News
Updates from our execs


); } export function EventDescriptionCardDemo() { return (
{events.map(({ metadata }) => ( {metadata.short} ))}
); } export function EventCardDemo() { return ( <> {events.map(({ Content, metadata }) => ( ))} ); } export function TeamMemberDemo() { return (

Programme Committee


); } export function TeamMemberCardDemo() { return (
); } export function OrganizedContentDemo() { let sections = [ { name: "1. Name", url: "a", content: (
{" "} 1. The name of this organization shall be the "Computer Science Club of the University of Waterloo".
), }, { name: "2. Purpose", url: "b", content: (
{" "} The Club is organized and will be operated exclusively for educational and scientific purposes in furtherance of: promoting an increased knowledge of computer science and its applications; promoting a greater interest in computer science and its applications; and providing a means of communication between persons having interest in computer science. The above purposes will be fulfilled by the organization of discussions and lectures with professionals and academics in the field of computer science and related fields, the maintenance of a library of materials related to computer science, the maintenance of an office containing the library as an aid to aim (1.3) above, and such other means as decided by the club membership.
), }, { name: "3. Membership", url: "c", content: (
{" "} In compliance with MathSoc regulations and in recognition of the club being primarily targeted at undergraduate students, full membership is open to all Social Members of the Mathematics Society and restricted to the same. Affiliate membership in this Club shall be open to all members of the University community, including alumni. Affiliate members shall have all the rights of full members except for the rights of voting and holding executive office. Membership shall be accounted for on a termly basis, where a term begins at the start of lectures in Winter or Spring, and at the start of Orientation Week in Fall. A person is not a member until he or she has paid the current membership fee and has been enrolled in the member database. The termly membership fee is set from time to time by the Executive. Under conditions approved by the Executive, a member who purchases a membership at the end of the current term may be given membership for both the current term and the next term. If the membership fee changes, then this does not affect the validity of any membership terms already paid for. The Club may grant access to its systems, either free of charge or for a fee, to members of the University community in order to offer them services. This does not constitute membership.
), }, { name: "Consequences of Unacceptable Behavior", url: "d", content:
CODEY
, }, ]; const readAllSection = { name: "Read All", url: "readall", content:
, }; sections = [readAllSection, ...sections]; const [index, setIndex] = useState(0); function FakeLink({ url, children }: LinkProps) { return (
{ const target = sections.findIndex((section) => section.url === url); if (target >= 0) { setIndex(target); } }} > {children}
); } const { content } = sections[index]; return ( {content} ); }