Quickview (Search Engine)
Quickview (Search Engine)
This is for:
DeveloperExample Implementation
quickview.fn.tsx
import {buildQuickview, Result} from '@coveo/headless';
import {useEffect, useState, useContext, FunctionComponent} from 'react';
import {AppContext} from '../../context/engine';
interface QuickviewProps {
result: Result;
}
export const Quickview: FunctionComponent<QuickviewProps> = (props) => {
const {result} = props;
const {engine} = useContext(AppContext);
const controller = buildQuickview(engine!, {options: {result}});
const [state, setState] = useState(controller.state);
const [isModalOpen, toggleModal] = useState(false);
useEffect(() => controller.subscribe(() => setState(controller.state)), []);
const openModal = () => {
controller.fetchResultContent();
toggleModal(true);
};
const closeModal = () => toggleModal(false);
if (!state.resultHasPreview) {
return null;
}
if (isModalOpen) {
return (
<div>
<button onClick={() => closeModal()}>X</button>
<iframe srcDoc={state.content}></iframe>
</div>
);
}
return <button onClick={() => openModal()}>view</button>;
};
// usage
/**
* ```tsx
* <Quickview result={result} />;
* ```
*/
Methods
fetchResultContent
Retrieves the preview content for the configured result. If options.onlyContentURL
is true
this will update the contentURL
state property rather than content
.
next
Retrieves the preview content for the next available result in the current result set.
If it reaches the last available result in the current result set, it will not perform an additional query to fetch new results.
Instead, it will loop back to the first available result.
If options.onlyContentURL
is true
this will update the contentURL
state property rather than content
.
previous
Retrieves the preview content for the previous available result in the current result set.
If it reaches the first available result in the current result set, it will not perform an additional query to fetch new results.
Instead, it will loop back to the last available result.
If options.onlyContentURL
is true
this will update the contentURL
state property rather than content
.
subscribe
Adds a callback that’s invoked on state change.
Parameters
-
listener:
() => void
A callback that’s invoked on state change.
Returns Unsubscribe
: A function to remove the listener.
Attributes
state
Properties
-
currentResult:
number
The position of the result in the current result set.
Can be used for quickview pagination purpose.
-
totalResults:
number
The number of available results for the current result set.
Can be used for quickview pagination purpose.
-
content:
string
The result preview HTML content.
-
currentResultUniqueId:
string
The current result unique ID,
-
isLoading:
boolean
true
if content is being fetched, andfalse
otherwise. -
resultHasPreview:
boolean
true
if the configured result has a preview, andfalse
otherwise. -
contentURL?:
string
The
src
path to use if rendering the quickview in an iframe.
Initialize
buildQuickview
Creates a Quickview
controller instance.
Parameters
-
engine:
SearchEngine
The headless engine.
-
props:
QuickviewProps
The configurable
Quickview
properties.
Returns Quickview
QuickviewProps
The configurable Quickview
properties.
Properties
-
options:
QuickviewOptions
The options for the
Quickview
controller.
QuickviewOptions
The options for the Quickview
controller.
Properties
-
result:
Result
The result to retrieve a quickview for.
-
maximumPreviewSize?:
number
The maximum preview size to retrieve, in bytes. By default, the full preview is retrieved.
-
onlyContentURL?:
boolean
Whether to only update the
contentURL
attribute when usingfetchResultContent
rather than updatingcontent
. Use this if you are using an iframe withstate.contentURL
as the source url.
Related Types
HighlightKeyword
Properties
-
length:
number
The length of the offset.
-
offset:
number
The 0 based offset inside the string where the highlight should start.
Raw
Properties
-
[key: string]:
unknown
Custom keys that depend on the documents in the index.
Result
Properties
-
absentTerms:
string[]
The basic query expression terms which this query result item does not match. Note: This property is populated by terms from the query pipeline-processed q value (not from the original q value).
-
clickUri:
string
The hyperlinkable item URI. Notes: Use the clickUri value when you want to create hyperlinks to the item, rather than the uri or printableUri value.
-
excerpt:
string
The contextual excerpt generated for the item (see the excerptLength query parameter).
-
excerptHighlights:
HighlightKeyword[]
The length and offset of each word to highlight in the item excerpt string.
-
firstSentences:
string
The first sentences retrieved from the item (see the retrieveFirstSentences query parameter).
-
firstSentencesHighlights:
HighlightKeyword[]
The length and offset of each word to highlight in the item firstSentences string.
-
flags:
string
The flags that are set on the item by the index. Distinct values are separated by semicolons.
-
hasHtmlVersion:
boolean
Whether the index contains an HTML version of this item.
-
isRecommendation:
boolean
Whether the item score was boosted as a Coveo ML recommendation.
-
isTopResult:
boolean
Whether the item score was boosted by a featured result rule in the query pipeline.
-
isUserActionView:
boolean
Whether the result item has been previously viewed by one of the users specified in the
canSeeUserProfileOf
section of the search token generated to perform the search request. -
percentScore:
number
The item ranking score expressed as a percentage (see the sortCriteria and rankingFunctions query parameters).
-
printableUri:
string
The human readable item URI. Note: Avoid using the printableUri value to create hyperlinks to the item. Use the clickUri value instead.
-
printableUriHighlights:
HighlightKeyword[]
The length and offset of each word to highlight in the item printableUri string.
-
rankingInfo:
string | null
The raw debug information generated by the index to detail how the item was ranked. This property is null unless the debug query parameter is set to true.
-
raw:
Raw
The values of the fields which were retrieved for this item (see the fieldsToInclude and fieldsToExclude query parameters).
-
score:
number
The total ranking score computed for the item (see the sortCriteria and rankingFunctions query parameters).
-
summary:
null
The item summary (see the summaryLength query parameter).
-
summaryHighlights:
HighlightKeyword[]
The length and offset of each word to highlight in the item summary string.
-
title:
string
Contains the title of the item.
-
titleHighlights:
HighlightKeyword[]
The length and offset of each word to highlight in the item title string.
-
uniqueId:
string
The unique item identifier. You should consider the uniqueId value as an opaque string.
-
uri:
string
The item URI. Notes: Avoid using the uri value to create hyperlinks to the item. Use the clickUri value instead.
-
rankingModifier?:
string
If applicable, represents the type of ranking modification that was applied to this result.
Unsubscribe
Call signatures
-
(): void;