import { useTheme } from 'common/Providers' import Image from 'next/image' import Link from 'next/link' import { useRouter } from 'next/router' import { FC, useEffect, useState } from 'react' import { Button, IconCommand, IconGitHub, IconMoon, IconSearch, IconSun, SearchButton } from 'ui' import { getPageType } from '~/lib/helpers' import { REFERENCES } from './NavigationMenu.constants' const TopNavBarRef: FC = () => { const { isDarkMode, toggleTheme } = useTheme() const [mounted, setMounted] = useState(false) const [mobileMenuOpen, setMobileMenuOpen] = useState(false) const { asPath, push } = useRouter() const pathSegments = asPath.split('/') const library = pathSegments.length >= 3 ? pathSegments[2] : undefined const libraryMeta = REFERENCES?.[library] ?? undefined const versions = libraryMeta?.versions ?? [] const version = versions.includes(pathSegments[pathSegments.indexOf(library) + 1]) ? pathSegments[pathSegments.indexOf(library) + 1] : versions[0] const pageType = getPageType(asPath) useEffect(() => { setMounted(true) }, [isDarkMode]) const pageLinks = [ { text: 'Guides', key: 'docs', link: '/' }, { text: 'Reference', key: 'reference', link: '/reference' }, ] const onSelectVersion = (version: string) => { // [Joshen] Ideally we use but this works for now if (!library) return if (version === versions[0]) { push(`/reference/${library}`) } else { push(`/reference/${library}/${version}`) } } // [Joshen] Kaizen: Use UI library's SidePanel for this const toggleMobileMenu = () => { setMobileMenuOpen(!mobileMenuOpen) const sidebar = document.querySelector('.sidebar-menu-container') const contentPane = document.querySelector('.main-content-pane') sidebar.classList.toggle('hidden') contentPane.classList.toggle('hidden') } return ( ) } export default TopNavBarRef