diff --git a/themes/fukasawa/components/Collapse.js b/components/Collapse.js similarity index 88% rename from themes/fukasawa/components/Collapse.js rename to components/Collapse.js index 7607b732..e3da9dae 100644 --- a/themes/fukasawa/components/Collapse.js +++ b/components/Collapse.js @@ -28,7 +28,7 @@ const Collapse = props => { } }, [props.isOpen]) return ( -
+
{props.children}
) diff --git a/themes/fukasawa/components/TopNav.js b/themes/fukasawa/components/TopNav.js index 8f9bf89e..ae900604 100644 --- a/themes/fukasawa/components/TopNav.js +++ b/themes/fukasawa/components/TopNav.js @@ -1,5 +1,5 @@ import { useState } from 'react' -import Collapse from './Collapse' +import Collapse from '@/components/Collapse' import GroupMenu from './GroupMenu' import Logo from './Logo' import SearchInput from './SearchInput' diff --git a/themes/medium/LayoutSearch.js b/themes/medium/LayoutSearch.js index e708eb5c..1b329b1c 100644 --- a/themes/medium/LayoutSearch.js +++ b/themes/medium/LayoutSearch.js @@ -17,7 +17,7 @@ export const LayoutSearch = (props) => { container.innerHTML = container.innerHTML.replace(re, `${keyword}`) } }, - 100) + 100) }) return
diff --git a/themes/medium/components/GroupMenu.js b/themes/medium/components/GroupMenu.js new file mode 100644 index 00000000..534f2c78 --- /dev/null +++ b/themes/medium/components/GroupMenu.js @@ -0,0 +1,43 @@ +import React from 'react' +import Link from 'next/link' +import { useRouter } from 'next/router' +import { useGlobal } from '@/lib/global' +import CONFIG_MEDIUM from '../config_medium' + +function GroupMenu ({ customNav }) { + const { locale } = useGlobal() + const router = useRouter() + + let links = [ + { name: locale.NAV.INDEX, to: '/' || '/', show: true }, + { name: locale.COMMON.CATEGORY, to: '/category', show: CONFIG_MEDIUM.MENU_CATEGORY }, + { name: locale.COMMON.TAGS, to: '/tag', show: CONFIG_MEDIUM.MENU_TAG }, + { name: locale.NAV.ARCHIVE, to: '/archive', show: CONFIG_MEDIUM.MENU_ARCHIVE }, + { name: locale.NAV.SEARCH, to: '/search', show: CONFIG_MEDIUM.MENU_SEARCH } + ] + + if (customNav) { + links = links.concat(customNav) + } + + return +} + +export default GroupMenu diff --git a/themes/medium/components/TopNavBar.js b/themes/medium/components/TopNavBar.js index 2c48ec7b..1ade1b77 100644 --- a/themes/medium/components/TopNavBar.js +++ b/themes/medium/components/TopNavBar.js @@ -1,40 +1,60 @@ import Link from 'next/link' import { useRouter } from 'next/router' import LogoBar from './LogoBar' - +import React from 'react' +import Collapse from '@/components/Collapse' +import GroupMenu from './GroupMenu' /** * 顶部导航栏 + 菜单 * @param {} param0 * @returns */ -export default function TopNavBar (props) { +export default function TopNavBar(props) { const { className, customNav } = props const router = useRouter() + const [isOpen, changeShow] = React.useState(false) + + const toggleMenuOpen = () => { + changeShow(!isOpen) + } return
-
- + +
+ +
+
- {/* 顶部菜单 */} -
- {customNav && customNav.map(link => { - if (link.show) { - const selected = (router.pathname === link.to) || (router.asPath === link.to) - return - -
- -
{link.name}
+
+ + {/* 顶部菜单 */} +
+ {customNav && customNav.map(link => { + if (link.show) { + const selected = (router.pathname === link.to) || (router.asPath === link.to) + return + +
+ +
{link.name}
+
+ {link.slot} +
+ + } else { + return null + } + })} +
+
-
}