instantsearch-ui-components
Version:
Common UI components for InstantSearch.
37 lines • 1.76 kB
JavaScript
import { cx } from "../../lib/index.js";
import { SubmitIcon, ApplyIcon } from "./icons.js";
export function createAutocompleteSuggestionComponent(_ref) {
var createElement = _ref.createElement;
return function AutocompleteSuggestion(userProps) {
var item = userProps.item,
children = userProps.children,
onSelect = userProps.onSelect,
onApply = userProps.onApply,
_userProps$classNames = userProps.classNames,
classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames;
return createElement("div", {
onClick: onSelect,
className: cx('ais-AutocompleteItemWrapper', 'ais-AutocompleteSuggestionWrapper', classNames.root)
}, createElement("div", {
className: cx('ais-AutocompleteItemContent', 'ais-AutocompleteSuggestionItemContent', classNames.content)
}, createElement("div", {
className: cx('ais-AutocompleteItemIcon', 'ais-AutocompleteSuggestionItemIcon', classNames.content)
}, createElement(SubmitIcon, {
createElement: createElement
})), createElement("div", {
className: cx('ais-AutocompleteItemContentBody', 'ais-AutocompleteSuggestionItemContentBody', classNames.content)
}, children)), createElement("div", {
className: cx('ais-AutocompleteItemActions', 'ais-AutocompleteSuggestionItemActions', classNames.actions)
}, createElement("button", {
className: cx('ais-AutocompleteItemActionButton', 'ais-AutocompleteSuggestionItemApplyButton', classNames.applyButton),
type: "button",
title: "Apply ".concat(item.query, " as search"),
onClick: function onClick(evt) {
evt.stopPropagation();
onApply();
}
}, createElement(ApplyIcon, {
createElement: createElement
}))));
};
}