diff --git a/src/components/organisms/Honkai3rdNavigator.tsx b/src/components/organisms/Honkai3rdNavigator.tsx index 841fe73b..4d2ff66c 100644 --- a/src/components/organisms/Honkai3rdNavigator.tsx +++ b/src/components/organisms/Honkai3rdNavigator.tsx @@ -8,10 +8,11 @@ import { Text, Box, IconButton, + Link, } from '@theme-ui/components' import NextLink from 'next/link' import { useRouter } from 'next/router' -import { useEffect, useState } from 'react' +import { useCallback, useState } from 'react' import { useTranslation } from '../../lib/i18n' import PageLink from '../atoms/PageLink' import SquareImageBox from '../atoms/SquareImageBox' @@ -23,9 +24,9 @@ const Honkai3rdNavigator = () => { const [hiddenMobileNav, setHiddenMobileNav] = useState(true) - useEffect(() => { + const close = useCallback(() => { setHiddenMobileNav(true) - }, [router.pathname]) + }, []) return ( { - + - - - - - + + + + + { ) } -const Honkai3rdNavMobileItem = ({ target }: NavItemProps) => { +interface Honkai3rdNavMobileItemProps { + target: 'versions' | 'battlesuits' | 'stigmata' | 'weapons' | 'elfs' + close: () => void +} + +const Honkai3rdNavMobileItem = ({ + target, + close, +}: Honkai3rdNavMobileItemProps) => { + const { push } = useRouter() const { t } = useTranslation() + const href = `/honkai3rd/${target}` return ( { overflow: 'hidden', mb: 2, }} + onClick={(event) => { + event.preventDefault() + close() + push(href) + }} > { interface NavMobileItemProps { href: string label: string + close: () => void } -const NavMobileItem = ({ href, label }: NavMobileItemProps) => { +const NavMobileItem = ({ href, label, close }: NavMobileItemProps) => { + const { push } = useRouter() return ( - { fontSize: 3, mb: 2, }} + onClick={(event) => { + event.preventDefault() + close() + push(href) + }} > { {label} - + ) }