<Snippet>
<Snippet attribute={keyof THit|string[]} hit={THit} // Optional props highlightedTagName={React.ReactType<any>} nonHighlightedTagName={React.ReactType<any>} separator={React.ReactNode} classNames={Partial<SnippetClassNames>} ...props={React.ComponentProps<'span'>} />
About this widget # A
<Snippet>
is a widget that displays snippeted attributes of a search result. A snippet is an excerpt of a longer piece of text, truncated to a fixed size around the match.
Snippeted attributes are also highlighted.
Requirements#
The required hit
prop is an Algolia hit provided by <Hits>
, <InfiniteHits>
or their Hooks. You can pass a custom object that doesn’t come from Algolia, as long as you follow the expected structure.
1
2
3
4
5
6
7
{
"_snippetResult": {
"attributeName": {
"value": "..."
}
}
}
The attribute
must be set up in attributesToSnippet
either inside the Algolia dashboard or at runtime.
1
<Configure attributesToSnippet={['description']} />
Examples # A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import React from 'react';
import algoliasearch from 'algoliasearch/lite';
import { InstantSearch, Hits, Snippet } from 'react-instantsearch-hooks-web';
const searchClient = algoliasearch('AJ0P3S7DWQ', '90dfaaf5755e694f341fe68f6e41a6d4');
function Hit({ hit }) {
return (
<article>
<Snippet hit={hit} attribute="description" />
</article>
);
}
function App() {
return (
<InstantSearch indexName="instant_search" searchClient={searchClient}>
<Hits hitComponent={Hit} />
</InstantSearch>
);
}
Props # A
attribute
# |
type: keyof THit|string[]
Required
The attribute to highlight in the record. For deeply nested objects, you can specify a dot-separated value like |
||
Copy
|
|||
hit
# |
type: THit
Required
The original The object must have a |
||
Copy
|
|||
highlightedTagName
# |
type: React.ReactType<any>
default: "mark"
Optional
The name of the HTML element to wrap the highlighted parts of the string with. |
||
Copy
|
|||
nonHighlightedTagName
# |
type: React.ReactType<any>
default: "span"
Optional
The name of the HTML element to wrap the non-highlighted parts of the string with. |
||
Copy
|
|||
separator
# |
type: React.ReactNode
default: ", "
Optional
The character between each item when the attribute to snippet is an array. |
||
Copy
|
|||
classNames
# |
type: Partial<SnippetClassNames>
Optional
CSS classes to pass to the widget’s elements. This is useful to style widgets with class-based CSS frameworks like Bootstrap or Tailwind CSS.
|
||
Copy
|
|||
...props
# |
type: React.ComponentProps<'span'>
Optional
Any |
||
Copy
|