29 lines
733 B
TypeScript
29 lines
733 B
TypeScript
import { DocSearch, version } from '@docsearch/react';
|
|
import React, { render } from 'preact/compat';
|
|
|
|
function getHTMLElement(
|
|
value: string | HTMLElement,
|
|
environment: typeof window = window
|
|
): HTMLElement {
|
|
if (typeof value === 'string') {
|
|
return environment.document.querySelector<HTMLElement>(value)!;
|
|
}
|
|
|
|
return value;
|
|
}
|
|
|
|
export function docsearch(props) {
|
|
render(
|
|
<DocSearch
|
|
{...props}
|
|
transformSearchClient={(searchClient) => {
|
|
searchClient.addAlgoliaAgent('docsearch.js', version);
|
|
|
|
return props.transformSearchClient
|
|
? props.transformSearchClient(searchClient)
|
|
: searchClient;
|
|
}}
|
|
/>,
|
|
getHTMLElement(props.container, props.environment)
|
|
);
|
|
}
|