UNPKG

@risecx/carespace-chat-ui

Version:

carespace-chat-ui React component

140 lines (105 loc) 6.15 kB
"use strict"; exports.__esModule = true; exports["default"] = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireWildcard(require("react")); var _MessageList = _interopRequireDefault(require("./MessageList")); var _UserInput = _interopRequireDefault(require("./UserInput")); var _Header = _interopRequireDefault(require("./Header")); var _Auth = _interopRequireDefault(require("../components/Auth")); var _Favorites = require("../components/Favorites"); var _Programs = _interopRequireDefault(require("../components/Programs")); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var ChatWindow = /*#__PURE__*/function (_Component) { _inheritsLoose(ChatWindow, _Component); function ChatWindow(props) { var _this; _this = _Component.call(this, props) || this; _defineProperty(_assertThisInitialized(_this), "onSubHeaderMenuItemClickHandler", function (menuItem) { _this.setState({ component: menuItem.key }); }); _defineProperty(_assertThisInitialized(_this), "onProgramSelectHandler", function () { _this.setState({ component: 'MESSAGE_LIST' }); _this.refHeader.onCloseClickHandler(); }); _defineProperty(_assertThisInitialized(_this), "onLoginClickHandler", function () { _this.refAuth.onLoginClickHandler(); }); _defineProperty(_assertThisInitialized(_this), "onLogoutClickHandler", function () { _this.refAuth.onLogoutClickHandler(); }); _this.state = { component: 'MESSAGE_LIST' }; return _this; } var _proto = ChatWindow.prototype; _proto.onUserInputSubmit = function onUserInputSubmit(message) { this.props.onUserInputSubmit(message); }; _proto.onFilesSelected = function onFilesSelected(filesList) { this.props.onFilesSelected(filesList); }; _proto.renderComponent = function renderComponent(component) { switch (component) { case 'FAVORITES': return /*#__PURE__*/_react["default"].createElement(_Favorites.Favorites, this.props); case 'PROGRAMS': return /*#__PURE__*/_react["default"].createElement(_Programs["default"], _extends({}, this.props, { onSelect: this.onProgramSelectHandler })); default: return /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, /*#__PURE__*/_react["default"].createElement(_MessageList["default"], this.props), /*#__PURE__*/_react["default"].createElement(_UserInput["default"], _extends({}, this.props, { onSubmit: this.onUserInputSubmit.bind(this), onFilesSelected: this.onFilesSelected.bind(this), onLoginClick: this.onLoginClickHandler, onLogoutClick: this.onLogoutClickHandler }))); } }; _proto.render = function render() { var _this2 = this; var classList = ['sc-chat-window', this.props.isOpen ? 'opened' : 'closed']; var component = this.state.component; return /*#__PURE__*/_react["default"].createElement("div", { className: classList.join(' ') }, /*#__PURE__*/_react["default"].createElement(_Auth["default"], _extends({}, this.props, { ref: function ref(Auth) { _this2.refAuth = Auth; } }), /*#__PURE__*/_react["default"].createElement(_Header["default"], _extends({ ref: function ref(Header) { _this2.refHeader = Header; } }, this.props, { isAuth: true, teamName: this.props.agentProfile.teamName, avatarImageUrl: this.props.agentProfile.avatarImageUrl, onClose: this.props.onClose, onSubHeaderMenuItemClick: this.onSubHeaderMenuItemClickHandler })), this.renderComponent(component))); }; return ChatWindow; }(_react.Component); ChatWindow.propTypes = process.env.NODE_ENV !== "production" ? { agentProfile: _propTypes["default"].object.isRequired, isOpen: _propTypes["default"].bool.isRequired, onClose: _propTypes["default"].func.isRequired, onFilesSelected: _propTypes["default"].func, onAuth: _propTypes["default"].func, onUserInputSubmit: _propTypes["default"].func.isRequired, showEmoji: _propTypes["default"].bool } : {}; var _default = ChatWindow; exports["default"] = _default; module.exports = exports.default;