Loading packages/client/src/components/Info/InfoCommunity.tsx +28 −34 Original line number Diff line number Diff line import { faUserGroup } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Link } from "@heroui/react"; import { InfoSection } from "./components/InfoSection"; export const InfoCommunity = () => { return ( <div className="flex flex-col gap-2"> <header className="flex items-center gap-1"> <FontAwesomeIcon icon={faUserGroup} className="pt-0.5" /> <h2 className="text-large font-semibold">Community Links</h2> </header> <section> <InfoSection icon={faUserGroup} title="Community Links"> <ul className="list-disc text-default-800 ml-10 flex flex-col gap-1 *:*:not-last:mr-1"> <li> <Link href="https://canvasstats.com" target="_blank"> Loading @@ -35,7 +30,6 @@ export const InfoCommunity = () => { </Link> </li> </ul> </section> </div> </InfoSection> ); }; packages/client/src/components/Info/InfoFAQ.tsx 0 → 100644 +18 −0 Original line number Diff line number Diff line import { faQuestionCircle } from "@fortawesome/free-solid-svg-icons"; import { InfoSection } from "./components/InfoSection"; export const InfoFAQ = () => { return ( <InfoSection icon={faQuestionCircle} title="FAQ"> <ul className="list-disc text-default-800 ml-10 flex flex-col gap-1"> <li> <p>Why are my pixels misaligned?</p> <p className="text-default-600"> This is due to browser zoom. The typical keybind to reset this is ctrl/cmd + zero </p> </li> </ul> </InfoSection> ); }; packages/client/src/components/Info/InfoPrivacy.tsx +12 −21 Original line number Diff line number Diff line import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faShieldHalved } from "@fortawesome/free-solid-svg-icons"; import { Link } from "@heroui/react"; import { InfoSection } from "./components/InfoSection"; export const InfoPrivacy = () => { return ( <div className="flex flex-col gap-2"> <header className="flex items-center gap-1"> <FontAwesomeIcon icon={faShieldHalved} className="pt-0.5" /> <h2 className="text-large font-semibold">Privacy</h2> </header> <section> <InfoSection icon={faShieldHalved} title="Privacy"> <ul className="list-disc text-default-800 ml-10 flex flex-col gap-1"> <li> <Link href="https://www.npmjs.com/package/altcha-lib" target="_blank" > <Link href="https://www.npmjs.com/package/altcha-lib" target="_blank"> altcha-lib </Link>{" "} is used for proof-of-work captcha verification </li> <li>Usernames should not be assumed to be private</li> </ul> </section> </div> </InfoSection> ); }; packages/client/src/components/Info/InfoRules.tsx +5 −9 Original line number Diff line number Diff line import { faGavel } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { type IRule } from "./InfoText"; import useSWR from "swr"; import { InfoSection } from "./components/InfoSection"; export const InfoRules = () => { const { Loading @@ -11,15 +11,11 @@ export const InfoRules = () => { } = useSWR<{ rules: IRule[] }>("/api/info"); return ( <div className="flex flex-col gap-2"> <header className="flex items-center gap-1"> <FontAwesomeIcon icon={faGavel} className="pt-0.5" /> <h2 className="text-xl font-semibold">Rules</h2> </header> <InfoSection icon={faGavel} title="Rules"> {isLoading ? "Loading" : error || ( <section> <> <ol className="list-decimal text-default-800 ml-10 flex flex-col gap-1"> {meta?.rules.map((rule) => ( <li key={rule.id}> Loading @@ -37,8 +33,8 @@ export const InfoRules = () => { have complete discretion on the rules. If you have any questions, ask in the Matrix space or the Discord </p> </section> </> )} </div> </InfoSection> ); }; packages/client/src/components/Info/InfoText.tsx +2 −0 Original line number Diff line number Diff line import { EventDatesCard } from "../EventInfo"; import { InfoCommunity } from "./InfoCommunity"; import { InfoFAQ } from "./InfoFAQ"; import { InfoPrivacy } from "./InfoPrivacy"; import { InfoRules } from "./InfoRules"; import { InfoWelcome } from "./InfoWelcome"; Loading @@ -17,6 +18,7 @@ export const InfoText = () => { <EventDatesCard /> <InfoWelcome /> <InfoRules /> <InfoFAQ /> <InfoPrivacy /> <InfoCommunity /> </div> Loading Loading
packages/client/src/components/Info/InfoCommunity.tsx +28 −34 Original line number Diff line number Diff line import { faUserGroup } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Link } from "@heroui/react"; import { InfoSection } from "./components/InfoSection"; export const InfoCommunity = () => { return ( <div className="flex flex-col gap-2"> <header className="flex items-center gap-1"> <FontAwesomeIcon icon={faUserGroup} className="pt-0.5" /> <h2 className="text-large font-semibold">Community Links</h2> </header> <section> <InfoSection icon={faUserGroup} title="Community Links"> <ul className="list-disc text-default-800 ml-10 flex flex-col gap-1 *:*:not-last:mr-1"> <li> <Link href="https://canvasstats.com" target="_blank"> Loading @@ -35,7 +30,6 @@ export const InfoCommunity = () => { </Link> </li> </ul> </section> </div> </InfoSection> ); };
packages/client/src/components/Info/InfoFAQ.tsx 0 → 100644 +18 −0 Original line number Diff line number Diff line import { faQuestionCircle } from "@fortawesome/free-solid-svg-icons"; import { InfoSection } from "./components/InfoSection"; export const InfoFAQ = () => { return ( <InfoSection icon={faQuestionCircle} title="FAQ"> <ul className="list-disc text-default-800 ml-10 flex flex-col gap-1"> <li> <p>Why are my pixels misaligned?</p> <p className="text-default-600"> This is due to browser zoom. The typical keybind to reset this is ctrl/cmd + zero </p> </li> </ul> </InfoSection> ); };
packages/client/src/components/Info/InfoPrivacy.tsx +12 −21 Original line number Diff line number Diff line import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faShieldHalved } from "@fortawesome/free-solid-svg-icons"; import { Link } from "@heroui/react"; import { InfoSection } from "./components/InfoSection"; export const InfoPrivacy = () => { return ( <div className="flex flex-col gap-2"> <header className="flex items-center gap-1"> <FontAwesomeIcon icon={faShieldHalved} className="pt-0.5" /> <h2 className="text-large font-semibold">Privacy</h2> </header> <section> <InfoSection icon={faShieldHalved} title="Privacy"> <ul className="list-disc text-default-800 ml-10 flex flex-col gap-1"> <li> <Link href="https://www.npmjs.com/package/altcha-lib" target="_blank" > <Link href="https://www.npmjs.com/package/altcha-lib" target="_blank"> altcha-lib </Link>{" "} is used for proof-of-work captcha verification </li> <li>Usernames should not be assumed to be private</li> </ul> </section> </div> </InfoSection> ); };
packages/client/src/components/Info/InfoRules.tsx +5 −9 Original line number Diff line number Diff line import { faGavel } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { type IRule } from "./InfoText"; import useSWR from "swr"; import { InfoSection } from "./components/InfoSection"; export const InfoRules = () => { const { Loading @@ -11,15 +11,11 @@ export const InfoRules = () => { } = useSWR<{ rules: IRule[] }>("/api/info"); return ( <div className="flex flex-col gap-2"> <header className="flex items-center gap-1"> <FontAwesomeIcon icon={faGavel} className="pt-0.5" /> <h2 className="text-xl font-semibold">Rules</h2> </header> <InfoSection icon={faGavel} title="Rules"> {isLoading ? "Loading" : error || ( <section> <> <ol className="list-decimal text-default-800 ml-10 flex flex-col gap-1"> {meta?.rules.map((rule) => ( <li key={rule.id}> Loading @@ -37,8 +33,8 @@ export const InfoRules = () => { have complete discretion on the rules. If you have any questions, ask in the Matrix space or the Discord </p> </section> </> )} </div> </InfoSection> ); };
packages/client/src/components/Info/InfoText.tsx +2 −0 Original line number Diff line number Diff line import { EventDatesCard } from "../EventInfo"; import { InfoCommunity } from "./InfoCommunity"; import { InfoFAQ } from "./InfoFAQ"; import { InfoPrivacy } from "./InfoPrivacy"; import { InfoRules } from "./InfoRules"; import { InfoWelcome } from "./InfoWelcome"; Loading @@ -17,6 +18,7 @@ export const InfoText = () => { <EventDatesCard /> <InfoWelcome /> <InfoRules /> <InfoFAQ /> <InfoPrivacy /> <InfoCommunity /> </div> Loading