43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
|
const React = require("react");
|
||
|
|
||
|
module.exports = props => {
|
||
|
const docsVersion = props.version;
|
||
|
const algoliaOptions = props.config.algolia.algoliaOptions
|
||
|
? props.config.algolia.algoliaOptions
|
||
|
: {};
|
||
|
|
||
|
return (
|
||
|
<div className="algoliaSearch">
|
||
|
<img className="icon" src="img/search_icon.svg" />
|
||
|
<input id="searchDocs" type="text" placeholder="Search" title="Search" />
|
||
|
{props.config.algolia && (
|
||
|
<div>
|
||
|
<script
|
||
|
type="text/javascript"
|
||
|
src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"
|
||
|
></script>
|
||
|
<script
|
||
|
dangerouslySetInnerHTML={{
|
||
|
__html: `
|
||
|
docsearch({
|
||
|
${
|
||
|
props.config.algolia.appId
|
||
|
? `appId: '${props.config.algolia.appId}',`
|
||
|
: ""
|
||
|
}
|
||
|
apiKey: '${props.config.algolia.apiKey}',
|
||
|
indexName: '${props.config.algolia.indexName}',
|
||
|
inputSelector: '#searchDocs',
|
||
|
algoliaOptions: ${JSON.stringify(algoliaOptions)
|
||
|
.replace("VERSION", docsVersion)
|
||
|
.replace("LANGUAGE", props.language)}
|
||
|
});
|
||
|
`
|
||
|
}}
|
||
|
/>
|
||
|
</div>
|
||
|
)}
|
||
|
</div>
|
||
|
);
|
||
|
};
|