|
- import { Helmet } from 'react-helmet-async'
-
- import PrefetchLink from '@/components/PrefetchLink'
- import { menuOutline } from '@/components/TopNav'
- import SectionTitle from '@/components/common/SectionTitle'
- import MainArea from '@/components/layout/MainArea'
- import { SITE_TITLE } from '@/config'
-
- import type { FC } from 'react'
-
- import type { User } from '@/types'
-
-
- export default (() => {
- const menu = menuOutline (
- { tag: null, wikiId: null, user: { } as User, pathName: location.pathname })
-
- return (
- <MainArea className="md:flex">
- <Helmet>
- <title>{`メニュー | ${ SITE_TITLE }`}</title>
- </Helmet>
-
- {[...Array (Math.ceil (menu.length / 4)).keys ()].map (i => (
- <div key={i} className="flex-1 mx-16">
- {menu.slice (4 * i, 4 * (i + 1)).map ((item, j) => (
- <section key={j}>
- <SectionTitle className="font-bold">{item.name}</SectionTitle>
- <ul>
- {item.subMenu
- .filter (subItem => (subItem.visible ?? true))
- .map ((subItem, k) => ('name' in subItem && (
- <li key={k}>
- <PrefetchLink
- to={subItem.to}
- target={subItem.to.slice (0, 2) === '//'
- ? '_blank'
- : undefined}>
- {subItem.name}
- </PrefetchLink>
- </li>)))}
- </ul>
- </section>))}
- </div>))}
- </MainArea>)
- }) satisfies FC
|