diff --git a/frontend-react/src/components/home/HomePage.tsx b/frontend-react/src/components/home/HomePage.tsx index df904f6e3..29bf4d9cc 100644 --- a/frontend-react/src/components/home/HomePage.tsx +++ b/frontend-react/src/components/home/HomePage.tsx @@ -7,6 +7,7 @@ import MyThemeContext from "../../themeContext" import "./HomePage.css" import { Helmet } from "react-helmet-async" import Stats from "./Stats" +import WeeksTournaments from "./WeeksTournaments" const HomePage: React.FC = () => { const { colorMode, grayWithShade } = useContext(MyThemeContext) @@ -15,7 +16,7 @@ const HomePage: React.FC = () => { sendou.ink | Competitive Splatoon Hub - + = () => { + ) } diff --git a/frontend-react/src/components/home/Stats.tsx b/frontend-react/src/components/home/Stats.tsx index 9b5cd7acb..4bce60560 100644 --- a/frontend-react/src/components/home/Stats.tsx +++ b/frontend-react/src/components/home/Stats.tsx @@ -40,13 +40,13 @@ const Stats: React.FC = () => { const { stats } = data return ( <> - + Featuring... { - + As well as diff --git a/frontend-react/src/components/home/WeeksTournaments.tsx b/frontend-react/src/components/home/WeeksTournaments.tsx new file mode 100644 index 000000000..261f8127b --- /dev/null +++ b/frontend-react/src/components/home/WeeksTournaments.tsx @@ -0,0 +1,63 @@ +import React, { useContext } from "react" +import Loading from "../common/Loading" +import Error from "../common/Error" +import { useQuery } from "@apollo/react-hooks" +import { + UpcomingEventsData, + UPCOMING_EVENTS, +} from "../../graphql/queries/upcomingEvents" +import { getWeek } from "../../utils/helperFunctions" +import SubHeader from "../common/SubHeader" +import { Heading, Flex, Box } from "@chakra-ui/core" +import { FiClock, FiInfo } from "react-icons/fi" +import MyThemeContext from "../../themeContext" +import Button from "../elements/Button" +import { Link } from "@reach/router" + +const WeeksTournaments: React.FC = () => { + const { themeColorWithShade, grayWithShade } = useContext(MyThemeContext) + const { data, error, loading } = useQuery(UPCOMING_EVENTS) + + if (loading) return + if (error) return + + const thisWeekNumber = getWeek(new Date()) + + const events = data!.upcomingEvents.filter( + (event) => getWeek(new Date(parseInt(event.date))) === thisWeekNumber + ) + + if (events.length === 0) return null + + return ( + <> + Play in competitive events this week + + {events.map((tournament) => ( + + + {tournament.name} + + + + {new Date(parseInt(tournament.date)).toLocaleString()} + + + ))} + + + + + + + + ) +} + +export default WeeksTournaments