import useClickOutside from '@utils/hooks/use-click-outside'; import { FC, useRef, useState } from 'react'; import MainNav, { type MainNavProps } from '../toolbar/main-nav'; import Search, { type SearchProps } from '../toolbar/search'; import Settings, { SettingsProps } from '../toolbar/settings'; import styles from './toolbar.module.scss'; export type ToolbarProps = Pick & Pick & { /** * Set additional classnames to the toolbar wrapper. */ className?: string; /** * The main nav items. */ nav: MainNavProps['items']; }; /** * Toolbar component * * Render the website toolbar. */ const Toolbar: FC = ({ ackeeStorageKey, className = '', motionStorageKey, nav, searchPage, }) => { const [isNavOpened, setIsNavOpened] = useState(false); const [isSearchOpened, setIsSearchOpened] = useState(false); const [isSettingsOpened, setIsSettingsOpened] = useState(false); const mainNavRef = useRef(null); const searchRef = useRef(null); const settingsRef = useRef(null); useClickOutside(mainNavRef, () => isNavOpened && setIsNavOpened(false)); useClickOutside(searchRef, () => isSearchOpened && setIsSearchOpened(false)); useClickOutside( settingsRef, () => isSettingsOpened && setIsSettingsOpened(false) ); return (
); }; export default Toolbar;