"use client" import clsx from "clsx" import IconMagnifyingGlass from "../../Icons/MagnifyingGlass" import InputText from "../../Input/Text" import { MouseEvent, useMemo } from "react" import Kbd from "../../MDXComponents/Kbd" import { useSearch } from "../../../providers/search" import { useMobile } from "../../../providers/mobile" import Button from "../../Button" import { usePageLoading } from "../../../providers/page-loading" import useKeyboardShortcut from "../../../hooks/use-keyboard-shortcut" const SearchModalOpener = () => { const { setIsOpen } = useSearch() const { isMobile } = useMobile() const isApple = useMemo(() => { return typeof navigator !== "undefined" ? navigator.userAgent.toLowerCase().indexOf("mac") !== 0 : true }, []) const { isLoading } = usePageLoading() useKeyboardShortcut({ shortcutKeys: ["k"], action: () => setIsOpen((prev) => !prev), }) const handleOpen = ( e: | MouseEvent | MouseEvent | MouseEvent ) => { if (isLoading) { return } e.preventDefault() if ("blur" in e.target && typeof e.target.blur === "function") { e.target.blur() } setIsOpen(true) } return ( <> {isMobile && ( )} {!isMobile && (
e.target.blur()} tabIndex={-1} /> {isApple ? "⌘" : "Ctrl"} K
)} ) } export default SearchModalOpener