import { FC, MouseEvent, useRef } from 'react'; import { Box, Image, Text, Heading, Flex, Icon, useDisclosure, Collapse, useMediaQuery, useColorMode, Button, } from '@chakra-ui/react'; import UseAnimations from 'react-useanimations'; import menu3 from 'react-useanimations/lib/menu3'; import { FiHome, FiArchive, FiUser, FiSun, FiMoon, FiSearch, } from 'react-icons/fi'; import useGetColors from '../lib/hooks/useGetColors'; import { useRouter } from 'next/router'; import Search from './search'; const menu = [ { id: 0, name: '首页', path: '/', icon: FiHome, }, { id: 1, name: '归档', path: '/archive', icon: FiArchive, }, // { // id: 2, // name: '闲言', // path: '/message', // icon: FiMessageSquare, // }, // { // id: 3, // name: '密语', // path: '/pgp', // icon: FiLock, // }, { id: 4, name: '关于', path: '/about', icon: FiUser, }, { id: 5, name: '搜索', icon: FiSearch, }, ]; interface MenuListProps { boxBg: string; handleMenuClick: ( // eslint-disable-next-line no-unused-vars e: MouseEvent, // eslint-disable-next-line no-unused-vars path?: string ) => void; } const MenuList: FC = ({ boxBg, handleMenuClick }) => { return ( {menu.map((item) => { return ( handleMenuClick(e, item?.path)} href={item.path} key={item.id} as="a" alignItems="center" justifyContent={['unset', null, 'space-between']} fontSize={['18', null, '22']} my={['0.5rem', null, '0.5rem']} cursor="pointer" > {item.name} ); })} ); }; const NavBar: FC = () => { const router = useRouter(); const [isLargerThan768] = useMediaQuery('(min-width: 768px)'); // Menu toggle const { isOpen, onToggle } = useDisclosure({ defaultIsOpen: false }); // Modal toggle const { isOpen: isModalOpen, onOpen: onModalOpen, onClose: onModalClose, } = useDisclosure(); const { colorMode, toggleColorMode } = useColorMode(); const { boxBg, bioColor, textColor, headingColor } = useGetColors(); const iconRef = useRef(null); // Switch pages const handleMenuClick = ( e: MouseEvent, path?: string ) => { e.preventDefault(); if (path) { !isLargerThan768 && // Click the animate icon. (iconRef.current?.children[0] as HTMLDivElement).click(); router.push(path); } else { onModalOpen(); } }; return ( <> {/* avatar */} Avatar {/* emoji on avatar */} ❤️ 肥羊 一条咸鱼. {/* Menu */} {/* Mobile menu */} {/* Desktop menu */} {/* Mobile menu icon */} ); }; export default NavBar;