"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

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