instantsearch-ui-components
Version:
Common UI components for InstantSearch.
35 lines • 1.48 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["open", "onClick", "toggleIconComponent", "classNames", "className"];
import { cx } from "../../lib/cx.js";
import { createButtonComponent } from "../Button.js";
import { SparklesIcon, ChevronUpIcon } from "./icons.js";
export function createChatToggleButtonComponent(_ref) {
var createElement = _ref.createElement;
var 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 = _objectWithoutProperties(userProps, _excluded);
var defaultIcon = open ? createElement(ChevronUpIcon, {
createElement: createElement
}) : createElement(SparklesIcon, {
createElement: createElement
});
return createElement(Button, _extends({
variant: "primary",
size: "md",
iconOnly: true,
className: cx('ais-ChatToggleButton', open && 'ais-ChatToggleButton--open', classNames.root, className),
onClick: onClick
}, props), ToggleIcon ? createElement(ToggleIcon, {
isOpen: open
}) : defaultIcon);
};
}