instantsearch-ui-components
Version:
Common UI components for InstantSearch.
66 lines (64 loc) • 3.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "createChatSidePanelLayoutComponent", {
enumerable: true,
get: function() {
return createChatSidePanelLayoutComponent;
}
});
var _object_spread = require("@swc/helpers/_/_object_spread");
var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
var _lib = require("../../lib");
function createChatSidePanelLayoutComponent(param) {
var createElement = param.createElement;
var originalMargins = new WeakMap();
return function ChatSidePanelLayout(userProps) {
var open = userProps.open, maximized = userProps.maximized, headerComponent = userProps.headerComponent, messagesComponent = userProps.messagesComponent, promptComponent = userProps.promptComponent, _userProps_classNames = userProps.classNames, classNames = _userProps_classNames === void 0 ? {} : _userProps_classNames, className = userProps.className, parentElement = userProps.parentElement; // Chat state props (destructured to avoid spreading on div)
userProps.messages; userProps.status; userProps.isClearing; userProps.clearMessages; userProps.onClearTransitionEnd; userProps.suggestions; userProps.tools; userProps.sendMessage; userProps.regenerate; userProps.stop; userProps.error; var rest = _object_without_properties._(userProps, [
"open",
"maximized",
"headerComponent",
"messagesComponent",
"promptComponent",
"classNames",
"className",
"parentElement",
"messages",
"status",
"isClearing",
"clearMessages",
"onClearTransitionEnd",
"suggestions",
"tools",
"sendMessage",
"regenerate",
"stop",
"error"
]);
var element = typeof document !== 'undefined' ? parentElement ? document.querySelector(parentElement) : document.body : null;
if (element) {
if (open && !originalMargins.has(element)) {
originalMargins.set(element, element.style.marginRight);
var chatWidth = getComputedStyle(document.documentElement).getPropertyValue('--ais-chat-width').trim() || '22.5rem';
var original = originalMargins.get(element);
element.style.marginRight = original ? "calc(".concat(original, " + ").concat(chatWidth, ")") : chatWidth;
} else if (!open && originalMargins.has(element)) {
var saved = originalMargins.get(element);
if (saved) {
element.style.marginRight = saved;
} else {
element.style.removeProperty('margin-right');
}
originalMargins.delete(element);
}
}
return /*#__PURE__*/ createElement("div", _object_spread_props._(_object_spread._({}, rest), {
className: (0, _lib.cx)('ais-Chat', 'ais-ChatSidePanelLayout', maximized && 'ais-ChatSidePanelLayout--maximized', classNames.root, className)
}), /*#__PURE__*/ createElement("div", {
className: (0, _lib.cx)('ais-Chat-container', open && 'ais-Chat-container--open', maximized && 'ais-Chat-container--maximized', classNames.container)
}, headerComponent, messagesComponent, promptComponent));
};
}