"use client"; import { useState, useEffect, useRef } from "react"; import { motion, AnimatePresence } from "framer-motion"; import ActionSearchBar from "@/app/_components/action-search-bar"; export default function FloatingActionSearchBar() { const [isOpen, setIsOpen] = useState(false); const searchBarRef = useRef(null); useEffect(() => { const handleKeyDown = (event: KeyboardEvent) => { if ((event.ctrlKey || event.metaKey) && event.key === "k") { event.preventDefault(); setIsOpen((prev) => !prev); } else if (event.key === "Escape") { setIsOpen(false); } }; window.addEventListener("keydown", handleKeyDown); return () => window.removeEventListener("keydown", handleKeyDown); }, []); useEffect(() => { if (isOpen && searchBarRef.current) { searchBarRef.current.focus(); } }, [isOpen]); return ( {isOpen && ( setIsOpen(false)} > e.stopPropagation()} > )} ); }