import { useState, useRef } from 'react'
import Link from 'next/link'
import { useRouter } from 'next/router'
import algoliasearch from 'algoliasearch/lite'
import { useHotkeys } from 'react-hotkeys-hook'
import {
InstantSearch,
connectHits,
connectHighlight,
connectSearchBox,
} from 'react-instantsearch-dom'
import CloseIcon from 'shared/components/icons/close.js'
import config from 'site/algolia.config.mjs'
const searchClient = algoliasearch(config.algolia.app, config.algolia.key)
const Hits = (props) => {
// When we hit enter in the text field, we want to navigate to the result
// which means we must make the result links available in the input somehow
// so let's stuff them in a data attribute
const links = props.hits.map((hit) => hit.page)
props.input.current.setAttribute('data-links', JSON.stringify(links))
return props.hits.map((hit, index) => (
))
}
const CustomHits = connectHits(Hits)
const Highlight = ({ highlight, attribute, hit, snippet = false }) => {
const parsedHit = highlight({
highlightProperty: snippet ? '_snippetResult' : '_highlightResult',
attribute,
hit,
})
return parsedHit.map((part, index) =>
part.isHighlighted ? (
{part.value}
) : (
{part.value}
)
)
}
const CustomHighlight = connectHighlight(Highlight)
const Hit = (props) => (