import { useEffect, useState } from "react"; import { ThemeSelector } from "../Base"; import { SearchContext, SearchField } from "../Search"; import { NavMobile } from "./NavMobile"; import { NavItem } from "./NavItem"; import { NavTitle } from "./NavTitle"; import { NavSocial } from "./NavSocial"; import { NavLink, SocialLink, SearchProviderConfig } from "../types"; export interface ThemeConfig { defaultTheme: "dark" | "light"; themeToggleIcon: string; } export interface NavConfig { title: string; logo?: string; version?: string; links: Array; search?: SearchProviderConfig; social?: Array; } interface Props extends NavConfig, ThemeConfig, React.PropsWithChildren {} export const Nav: React.FC = ({ children, title, logo, version, links, search, social, defaultTheme, themeToggleIcon, }) => { const [modifierKey, setModifierKey] = useState(); const [Search, setSearch] = useState(); // TODO types useEffect(() => { const isMac = /(Mac|iPhone|iPod|iPad)/i.test(navigator.userAgent); setModifierKey(isMac ? "⌘" : "Ctrl "); }, []); useEffect(() => { if (search) { setSearch(SearchContext(search.provider)); } }, [search]); return ( ); };