import React from 'react' import { CommandMenu } from '@/components/command-menu' interface SearchContextType { open: boolean setOpen: React.Dispatch> } const SearchContext = React.createContext(null) interface Props { children: React.ReactNode } export function SearchProvider({ children }: Props) { const [open, setOpen] = React.useState(false) React.useEffect(() => { const down = (e: KeyboardEvent) => { if (e.key === 'k' && (e.metaKey || e.ctrlKey)) { e.preventDefault() setOpen((open) => !open) } } document.addEventListener('keydown', down) return () => document.removeEventListener('keydown', down) }, []) return ( {children} ) } // eslint-disable-next-line react-refresh/only-export-components export const useSearch = () => { const searchContext = React.useContext(SearchContext) if (!searchContext) { throw new Error('useSearch has to be used within ') } return searchContext }