react-instantsearch
Version:
⚡ Lightning-fast search for React, by Algolia
46 lines (43 loc) • 1.83 kB
JavaScript
import { _ } from '@swc/helpers/esm/_object_without_properties.js';
import { createCompareBarComponent } from 'instantsearch-ui-components';
import React, { createElement, Fragment } from 'react';
import { useCompare } from 'react-instantsearch-core';
var CompareBarUiComponent = createCompareBarComponent({
createElement: createElement,
Fragment: Fragment
});
/**
* Renders the comparison selection bar: the records picked for comparison,
* a clear-selection action, and the "Compare" call-to-action that opens the
* `<Chat>` widget with the comparison message.
*
* Select records from your own UI (e.g. a "Compare" button in your hit
* component) with `useCompare().toggleItem(hit)` — the selection is shared
* with this widget.
*/ function CompareBar(_0) {
var classNames = _0.classNames, translations = _0.translations, itemComponent = _0.itemComponent, props = _(_0, [
"classNames",
"translations",
"itemComponent"
]);
var _useCompare = useCompare(props, {
$$widgetType: 'ais.compareBar'
}), items = _useCompare.items, minItems = _useCompare.minItems, maxItems = _useCompare.maxItems, canCompare = _useCompare.canCompare, removeItem = _useCompare.removeItem, clearItems = _useCompare.clearItems, compare = _useCompare.compare;
return /*#__PURE__*/ React.createElement(CompareBarUiComponent, {
items: items,
minItems: minItems,
maxItems: maxItems,
canCompare: canCompare,
onCompare: function onCompare() {
return compare();
},
onRemove: function onRemove(item) {
return removeItem(item.objectID);
},
onClear: clearItems,
itemComponent: itemComponent,
classNames: classNames,
translations: translations
});
}
export { CompareBar };