"use client" import { IconSubmissionForm } from "@/components/icon-submission-form" import { ThemeSwitcher } from "@/components/theme-switcher" import { REPO_PATH } from "@/constants" import { getIconsArray } from "@/lib/api" import type { IconWithName } from "@/types/icons" import { motion } from "framer-motion" import { Github, Menu, Search } from "lucide-react" import Link from "next/link" import { useEffect, useState } from "react" import { CommandMenu } from "./command-menu" import { HeaderNav } from "./header-nav" import { Button } from "./ui/button" import { Sheet, SheetContent, SheetTrigger } from "./ui/sheet" import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./ui/tooltip" export function Header() { const [iconsData, setIconsData] = useState([]) const [isLoaded, setIsLoaded] = useState(false) const [commandMenuOpen, setCommandMenuOpen] = useState(false) useEffect(() => { async function loadIcons() { try { const icons = await getIconsArray() setIconsData(icons) setIsLoaded(true) } catch (error) { console.error("Failed to load icons:", error) setIsLoaded(true) } } loadIcons() }, []) // Function to open the command menu const openCommandMenu = () => { setCommandMenuOpen(true) } return (
Dashboard Icons
{/* Desktop search button */}
{/* Mobile search button */}

View on GitHub

{/* Mobile menu */}

Dashboard Icons

{/* Single instance of CommandMenu */} {isLoaded && }
) }