From 2a6f0076ba4eceb653cfe81445cc7cda68f29f3e Mon Sep 17 00:00:00 2001 From: Sendou Date: Sat, 21 Mar 2020 02:15:53 +0200 Subject: [PATCH] in the zone dynamic header fun --- frontend-react/src/assets/icons.tsx | 9 +++ .../src/components/events/EventsPage.tsx | 39 +++++++++ .../src/components/events/InTheZoneBanner.tsx | 80 +++++++++++++++++++ .../src/components/root/NavItem.tsx | 10 ++- frontend-react/src/components/root/Routes.tsx | 2 + .../src/components/root/SideNavContent.tsx | 16 ++-- 6 files changed, 146 insertions(+), 10 deletions(-) create mode 100644 frontend-react/src/components/events/EventsPage.tsx create mode 100644 frontend-react/src/components/events/InTheZoneBanner.tsx diff --git a/frontend-react/src/assets/icons.tsx b/frontend-react/src/assets/icons.tsx index 3e88c9a81..9442207d1 100644 --- a/frontend-react/src/assets/icons.tsx +++ b/frontend-react/src/assets/icons.tsx @@ -46,6 +46,15 @@ const customIcons = { ), viewBox: "0 0 128 128", }, + itz: { + path: ( + + {" "} + {" "} + + ), + viewBox: "0 0 128 128", + }, } export default customIcons diff --git a/frontend-react/src/components/events/EventsPage.tsx b/frontend-react/src/components/events/EventsPage.tsx new file mode 100644 index 000000000..1633cab84 --- /dev/null +++ b/frontend-react/src/components/events/EventsPage.tsx @@ -0,0 +1,39 @@ +import React, { useState } from "react" +import PageHeader from "../common/PageHeader" +import { RouteComponentProps } from "@reach/router" +import InTheZoneBanner from "./InTheZoneBanner" +import { Box, Flex, Heading } from "@chakra-ui/core" +import Button from "../elements/Button" + +const EventsPage: React.FC = () => { + const [runningNumber, setRunningNumber] = useState(10) + return ( + <> + + + In The Zone + + + The premier western Splatoon Splat Zones tournament + + + + + + + + + ) +} + +export default EventsPage diff --git a/frontend-react/src/components/events/InTheZoneBanner.tsx b/frontend-react/src/components/events/InTheZoneBanner.tsx new file mode 100644 index 000000000..b324e4514 --- /dev/null +++ b/frontend-react/src/components/events/InTheZoneBanner.tsx @@ -0,0 +1,80 @@ +import React from "react" +import { Flex, Icon, Box } from "@chakra-ui/core" + +//https://stackoverflow.com/a/9083076 +function romanize(num: number) { + if (isNaN(num)) return NaN + let digits = String(+num).split(""), + key = [ + "", + "C", + "CC", + "CCC", + "CD", + "D", + "DC", + "DCC", + "DCCC", + "CM", + "", + "X", + "XX", + "XXX", + "XL", + "L", + "LX", + "LXX", + "LXXX", + "XC", + "", + "I", + "II", + "III", + "IV", + "V", + "VI", + "VII", + "VIII", + "IX", + ], + roman = "", + i = 3 + while (i--) roman = (key[+digits.pop()! + i * 10] || "") + roman + return Array(+digits.join("") + 1).join("M") + roman +} + +//https://stackoverflow.com/a/23603772 +function getRandomColor(runningNumber: number) { + const color = "hsl(" + random(runningNumber) * 360 + ", 100%, 75%)" + return color +} + +//https://stackoverflow.com/a/19303725 +function random(seed: number) { + var x = Math.sin(seed++) * 10000 + return x - Math.floor(x) +} + +interface InTheZoneBannerProps { + runningNumber: number +} + +const InTheZoneBanner: React.FC = ({ runningNumber }) => { + return ( + + + + {runningNumber} + + + ) +} + +export default InTheZoneBanner diff --git a/frontend-react/src/components/root/NavItem.tsx b/frontend-react/src/components/root/NavItem.tsx index 7a280dcfb..2f4725b1a 100644 --- a/frontend-react/src/components/root/NavItem.tsx +++ b/frontend-react/src/components/root/NavItem.tsx @@ -6,11 +6,11 @@ import MyThemeContext from "../../themeContext" interface NavItemProps { to: string - Icon: IconType + icon: IconType | string title: string } -const NavItem: React.FC = ({ to, Icon, title }) => { +const NavItem: React.FC = ({ to, icon, title }) => { const { themeColorWithShade, colorMode, themeColor } = useContext( MyThemeContext ) @@ -42,7 +42,11 @@ const NavItem: React.FC = ({ to, Icon, title }) => { _hover: {}, })} > - {" "} + {" "} {title} diff --git a/frontend-react/src/components/root/Routes.tsx b/frontend-react/src/components/root/Routes.tsx index 5b1cb44dc..a42605644 100644 --- a/frontend-react/src/components/root/Routes.tsx +++ b/frontend-react/src/components/root/Routes.tsx @@ -12,6 +12,7 @@ const TournamentsPage = lazy(() => import("../tournaments/TournamentsPage")) const TournamentsDetailsPage = lazy(() => import("../tournaments/TournamentDetailsPage") ) +const EventsPage = lazy(() => import("../events/EventsPage")) const MapPlannerPage = lazy(() => import("../plans/MapPlannerPage")) const FreeAgentsPage = lazy(() => import("../freeagents/FreeAgentsPage")) const TeamPage = lazy(() => import("../team/TeamPage")) @@ -37,6 +38,7 @@ const Routes: React.FC = () => { + diff --git a/frontend-react/src/components/root/SideNavContent.tsx b/frontend-react/src/components/root/SideNavContent.tsx index 75161a323..499667e52 100644 --- a/frontend-react/src/components/root/SideNavContent.tsx +++ b/frontend-react/src/components/root/SideNavContent.tsx @@ -12,6 +12,7 @@ import { MenuItem, MenuList, Box, + Icon, } from "@chakra-ui/core" import { Link } from "@reach/router" import { @@ -139,18 +140,19 @@ export const SideNavContent: React.FC = ({ showLogo = true }) => { )} - - - - + + + + - + + {data?.user?.plus?.membership_status && ( - + )}