instantsearch-ui-components
Version:
Common UI components for InstantSearch.
42 lines (41 loc) • 1.79 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createChatToggleButtonComponent = createChatToggleButtonComponent;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _cx = require("../../lib/cx");
var _Button = require("../Button");
var _icons = require("./icons");
var _excluded = ["open", "onClick", "toggleIconComponent", "classNames", "className"];
function createChatToggleButtonComponent(_ref) {
var createElement = _ref.createElement;
var Button = (0, _Button.createButtonComponent)({
createElement: createElement
});
return function ChatToggleButton(userProps) {
var open = userProps.open,
onClick = userProps.onClick,
ToggleIcon = userProps.toggleIconComponent,
_userProps$classNames = userProps.classNames,
classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
className = userProps.className,
props = (0, _objectWithoutProperties2.default)(userProps, _excluded);
var defaultIcon = open ? createElement(_icons.ChevronUpIcon, {
createElement: createElement
}) : createElement(_icons.SparklesIcon, {
createElement: createElement
});
return createElement(Button, (0, _extends2.default)({
variant: "primary",
size: "md",
iconOnly: true,
className: (0, _cx.cx)('ais-ChatToggleButton', open && 'ais-ChatToggleButton--open', classNames.root, className),
onClick: onClick
}, props), ToggleIcon ? createElement(ToggleIcon, {
isOpen: open
}) : defaultIcon);
};
}