import { useCallback, useEffect, useState } from "react";
import { createPortal } from "react-dom";
import Link from "next/link";
import Router from "next/router";
import { DocSearchModal, useDocSearchKeyboardEvents } from "@docsearch/react";
const docSearchConfig = {
appId: process.env.NEXT_PUBLIC_DOCSEARCH_APP_ID || "",
apiKey: process.env.NEXT_PUBLIC_DOCSEARCH_API_KEY || "",
indexName: process.env.NEXT_PUBLIC_DOCSEARCH_INDEX_NAME || "",
};
interface HitProps {
hit: { url: string };
children: React.ReactNode;
}
function Hit({ hit, children }: HitProps) {
return {children};
}
function SearchIcon(props: any) {
return (
);
}
export function Search() {
let [isOpen, setIsOpen] = useState(false);
let [modifierKey, setModifierKey] = useState();
const onOpen = useCallback(() => {
setIsOpen(true);
}, [setIsOpen]);
const onClose = useCallback(() => {
setIsOpen(false);
}, [setIsOpen]);
useDocSearchKeyboardEvents({ isOpen, onOpen, onClose });
useEffect(() => {
setModifierKey(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform) ? "⌘" : "Ctrl ");
}, []);
return (
<>
{isOpen &&
createPortal(
,
document.body
)}
>
);
}