instantsearch-ui-components
Version:
Common UI components for InstantSearch.
60 lines (58 loc) • 3.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "createDisplayResultsToolComponent", {
enumerable: true,
get: function() {
return createDisplayResultsToolComponent;
}
});
var _object_spread = require("@swc/helpers/_/_object_spread");
var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
var DEFAULT_TRANSLATIONS = {
streamingLabel: 'Curating results…'
};
function createDisplayResultsToolComponent(param) {
var createElement = param.createElement, Fragment = param.Fragment;
return function DisplayResultsTool(userProps) {
var toolProps = userProps.toolProps, GroupCarousel = userProps.groupCarouselComponent, userTranslations = userProps.translations;
var message = toolProps.message, sendEvent = toolProps.sendEvent;
var translations = _object_spread._({}, DEFAULT_TRANSLATIONS, userTranslations);
var output = message === null || message === void 0 ? void 0 : message.output;
var intro = typeof (output === null || output === void 0 ? void 0 : output.intro) === 'string' ? output.intro : undefined;
var groups = Array.isArray(output === null || output === void 0 ? void 0 : output.groups) ? output.groups : [];
var isStreaming = (message === null || message === void 0 ? void 0 : message.state) === 'output-available' && message.preliminary === true;
if (!intro && groups.length === 0) {
return /*#__PURE__*/ createElement(Fragment, null);
}
return /*#__PURE__*/ createElement("div", {
className: "ais-ChatToolDisplayResults"
}, intro && /*#__PURE__*/ createElement("div", {
className: "ais-ChatToolDisplayResults-intro"
}, intro), groups.map(function(group, groupIndex) {
var results = Array.isArray(group.results) ? group.results.filter(function(r) {
return Boolean(r) && typeof r.objectID === 'string' && r.objectID !== '';
}) : [];
if (results.length === 0) return null;
var items = results.map(function(result, idx) {
return _object_spread_props._(_object_spread._({}, result), {
__position: idx + 1
});
});
return /*#__PURE__*/ createElement("div", {
key: groupIndex,
className: "ais-ChatToolDisplayResults-group"
}, group.title && /*#__PURE__*/ createElement("div", {
className: "ais-ChatToolDisplayResults-groupTitle"
}, group.title), group.why && /*#__PURE__*/ createElement("div", {
className: "ais-ChatToolDisplayResults-groupWhy"
}, group.why), /*#__PURE__*/ createElement(GroupCarousel, {
items: items,
sendEvent: sendEvent
}));
}), isStreaming && /*#__PURE__*/ createElement("div", {
className: "ais-ChatToolDisplayResults-streaming"
}, translations.streamingLabel));
};
}