docs: update algolia (#8625)
Update algolia to fix issues with highlighting and snippets
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
"use client"
|
||||
|
||||
import React, { useEffect, useMemo, useRef, useState } from "react"
|
||||
import React, { useEffect, useRef, useState } from "react"
|
||||
import { InstantSearch, SearchBox } from "react-instantsearch"
|
||||
import clsx from "clsx"
|
||||
import { SearchEmptyQueryBoundary } from "./EmptyQueryBoundary"
|
||||
@@ -30,19 +30,6 @@ export const Search = ({
|
||||
const { isOpen, setIsOpen, defaultFilters, searchClient, modalRef } =
|
||||
useSearch()
|
||||
const [filters, setFilters] = useState<string[]>(defaultFilters)
|
||||
const formattedFilters: string = useMemo(() => {
|
||||
let formatted = ""
|
||||
filters.forEach((filter) => {
|
||||
const split = filter.split("_")
|
||||
split.forEach((f) => {
|
||||
if (formatted.length) {
|
||||
formatted += " OR "
|
||||
}
|
||||
formatted += `_tags:${f}`
|
||||
})
|
||||
})
|
||||
return formatted
|
||||
}, [filters])
|
||||
const searchBoxRef = useRef<HTMLFormElement>(null)
|
||||
|
||||
const focusSearchInput = () =>
|
||||
@@ -140,19 +127,7 @@ export const Search = ({
|
||||
>
|
||||
<SearchHitsWrapper
|
||||
configureProps={{
|
||||
filters: formattedFilters,
|
||||
attributesToSnippet: [
|
||||
"content",
|
||||
"hierarchy.lvl1",
|
||||
"hierarchy.lvl2",
|
||||
"hierarchy.lvl3",
|
||||
],
|
||||
attributesToHighlight: [
|
||||
"content",
|
||||
"hierarchy.lvl1",
|
||||
"hierarchy.lvl2",
|
||||
"hierarchy.lvl3",
|
||||
],
|
||||
tagRefinements: filters,
|
||||
}}
|
||||
indices={algolia.indices}
|
||||
checkInternalPattern={checkInternalPattern}
|
||||
|
||||
@@ -10,7 +10,10 @@ import React, {
|
||||
} from "react"
|
||||
import { BadgeProps, Modal, Search, SearchProps } from "@/components"
|
||||
import { checkArraySameElms } from "../../utils"
|
||||
import algoliasearch, { SearchClient } from "algoliasearch/lite"
|
||||
import {
|
||||
liteClient as algoliasearch,
|
||||
LiteClient as SearchClient,
|
||||
} from "algoliasearch/lite"
|
||||
import clsx from "clsx"
|
||||
import { CSSTransition, SwitchTransition } from "react-transition-group"
|
||||
|
||||
@@ -72,8 +75,15 @@ export const SearchProvider = ({
|
||||
const algoliaClient = algoliasearch(algolia.appId, algolia.apiKey)
|
||||
return {
|
||||
...algoliaClient,
|
||||
async search(requests) {
|
||||
if (requests.every(({ params }) => !params?.query)) {
|
||||
async search(searchParams) {
|
||||
const requests =
|
||||
"requests" in searchParams ? searchParams.requests : searchParams
|
||||
const noQueries = requests.every(
|
||||
(item) =>
|
||||
("facetQuery" in item && !item.facetQuery) ||
|
||||
("query" in item && !item.query)
|
||||
)
|
||||
if (noQueries) {
|
||||
return Promise.resolve({
|
||||
results: requests.map(() => ({
|
||||
hits: [],
|
||||
@@ -89,7 +99,7 @@ export const SearchProvider = ({
|
||||
})
|
||||
}
|
||||
|
||||
return algoliaClient.search(requests)
|
||||
return algoliaClient.search(searchParams)
|
||||
},
|
||||
}
|
||||
}, [algolia.appId, algolia.apiKey])
|
||||
|
||||
Reference in New Issue
Block a user