From 15da14097afb7f041ff6dbe6d36bbd190a82c17d Mon Sep 17 00:00:00 2001 From: Sendou <38327916+Sendouc@users.noreply.github.com> Date: Fri, 12 Jun 2020 21:10:21 +0300 Subject: [PATCH] fix nav for mobile --- .../src/components/calendar/CalendarPage.tsx | 12 +-- .../src/components/root/MobileNav.tsx | 7 +- .../src/components/root/SideNavBanner.tsx | 36 ++++---- .../src/components/root/SideNavContent.tsx | 83 +++++++++++++------ 4 files changed, 85 insertions(+), 53 deletions(-) diff --git a/frontend-react/src/components/calendar/CalendarPage.tsx b/frontend-react/src/components/calendar/CalendarPage.tsx index 3154d4d2f..89b3e3572 100644 --- a/frontend-react/src/components/calendar/CalendarPage.tsx +++ b/frontend-react/src/components/calendar/CalendarPage.tsx @@ -1,14 +1,9 @@ import { useQuery } from "@apollo/react-hooks" import { Badge, Box, Divider, Flex } from "@chakra-ui/core" import { RouteComponentProps, useLocation } from "@reach/router" -import React, { - useContext, - useState, - useRef, - useEffect, - useLayoutEffect, -} from "react" +import React, { useContext, useEffect, useRef, useState } from "react" import { Helmet } from "react-helmet-async" +import { FaFilter } from "react-icons/fa" import { UpcomingEventsData, UPCOMING_EVENTS, @@ -20,9 +15,8 @@ import Error from "../common/Error" import Loading from "../common/Loading" import PageHeader from "../common/PageHeader" import SubHeader from "../common/SubHeader" -import TournamentInfo from "./TournamentInfo" import Input from "../elements/Input" -import { FaFilter } from "react-icons/fa" +import TournamentInfo from "./TournamentInfo" const badgeColor: { [key: string]: string } = { Friday: "purple", diff --git a/frontend-react/src/components/root/MobileNav.tsx b/frontend-react/src/components/root/MobileNav.tsx index f0dcdd4f5..9cd7f6474 100644 --- a/frontend-react/src/components/root/MobileNav.tsx +++ b/frontend-react/src/components/root/MobileNav.tsx @@ -5,6 +5,7 @@ import { DrawerCloseButton, useColorMode, DrawerOverlay, + Box, } from "@chakra-ui/core" import { SideNavContent } from "./SideNavContent" @@ -27,8 +28,10 @@ const MobileNav: React.FC = ({ btnRef, isOpen, onClose }) => { > - - + + + + ) diff --git a/frontend-react/src/components/root/SideNavBanner.tsx b/frontend-react/src/components/root/SideNavBanner.tsx index 7e581ae92..fdd194a35 100644 --- a/frontend-react/src/components/root/SideNavBanner.tsx +++ b/frontend-react/src/components/root/SideNavBanner.tsx @@ -6,7 +6,11 @@ import { BANNERS, BannersData } from "../../graphql/queries/banners" import IconButton from "../elements/IconButton" import Markdown from "../elements/Markdown" -const SideNavBanner: React.FC = () => { +interface SideNavBannerProps { + showClose?: boolean +} + +const SideNavBanner: React.FC = ({ showClose = true }) => { const [closed, setClosed] = useState(false) const { data } = useQuery(BANNERS) @@ -27,25 +31,27 @@ const SideNavBanner: React.FC = () => { borderRadius="5px" p="1em" backgroundColor={banner.bgColor} - mt="2em" + my="2em" color={banner.textColor} w="200px" mx="auto" textAlign="center" > - - { - setClosed(true) - localStorage.setItem( - "closedBanners", - JSON.stringify(closedBannerIds.concat(banner.id)) - ) - }} - /> - + {showClose && ( + + { + setClosed(true) + localStorage.setItem( + "closedBanners", + JSON.stringify(closedBannerIds.concat(banner.id)) + ) + }} + /> + + )} diff --git a/frontend-react/src/components/root/SideNavContent.tsx b/frontend-react/src/components/root/SideNavContent.tsx index 07e421d51..d9ac04f98 100644 --- a/frontend-react/src/components/root/SideNavContent.tsx +++ b/frontend-react/src/components/root/SideNavContent.tsx @@ -115,10 +115,12 @@ const UserItem: React.FC<{ data?: UserData }> = ({ data }) => { } interface SideNavProps { - showLogo?: boolean + isMobile?: boolean } -export const SideNavContent: React.FC = ({ showLogo = true }) => { +export const SideNavContent: React.FC = ({ + isMobile = false, +}) => { const { colorMode, toggleColorMode } = useColorMode() const { data, error, loading } = useQuery(USER) @@ -133,13 +135,38 @@ export const SideNavContent: React.FC = ({ showLogo = true }) => { alignItems="center" > - {showLogo && ( + {!isMobile && ( )} + {isMobile && ( + + + + + + + + {!loading && !error && } + + )} @@ -159,31 +186,33 @@ export const SideNavContent: React.FC = ({ showLogo = true }) => { )} - - - - - - - - - - {!loading && !error && } + + {!isMobile && ( + + + + + + + + {!loading && !error && } + + )} ) }