/* jsxImportSource: react */ import { useState, useCallback, useRef } from 'react' import { createPortal } from 'react-dom' import { DocSearchModal, useDocSearchKeyboardEvents } from '@docsearch/react' import '@docsearch/css//dist/style.css'; import './Search.css'; export function Search() { const [isOpen, setIsOpen] = useState(false) const searchButtonRef = useRef() const [initialQuery, setInitialQuery] = useState(null) const onOpen = useCallback(() => { setIsOpen(true) }, [setIsOpen]) const onClose = useCallback(() => { setIsOpen(false) }, [setIsOpen]) const onInput = useCallback( (e) => { setIsOpen(true) setInitialQuery(e.key) }, [setIsOpen, setInitialQuery] ) useDocSearchKeyboardEvents({ isOpen, onOpen, onClose, onInput, searchButtonRef, }) return ( <> {isOpen && createPortal( { return items.map((item) => { // We transform the absolute URL into a relative URL to // work better on localhost, preview URLS. const a = document.createElement('a') a.href = item.url console.log(a.hash); const hash = a.hash === '#overview' ? '' : a.hash return { ...item, url: `${a.pathname}${hash}`, } }) }} />, document.body )} ) }