UNPKG

react-live-chat-loader

Version:

Implement live chat in your react app without taking a performance hit.

111 lines 14.5 kB
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } import React from 'react'; import useChat from "../../hooks/useChat"; import { ClassNames } from "../../types"; var styles = { container: { zIndex: 2147483648, // one more than provider position: 'fixed', border: '0', width: '64px', height: '64px', boxShadow: 'rgba(0, 0, 0, 0.24) 0px 8px 16px 0px', left: 'auto' }, button: { position: 'relative', display: 'flex', justifyContent: 'center', alignItems: 'center', width: '64px', minWidth: '64px', height: '64px', minHeight: '64px', padding: '0', cursor: 'pointer', border: '0' }, icon: { fontSize: '40px' } }; var Userlike = function Userlike(_ref) { var _ref$color = _ref.color, color = _ref$color === void 0 ? 'white' : _ref$color, _ref$backgroundColor = _ref.backgroundColor, backgroundColor = _ref$backgroundColor === void 0 ? '#0d8cff' : _ref$backgroundColor, _ref$position = _ref.position, position = _ref$position === void 0 ? 'right' : _ref$position, _ref$vOffset = _ref.vOffset, vOffset = _ref$vOffset === void 0 ? 'calc(0% + 20px)' : _ref$vOffset, _ref$hOffset = _ref.hOffset, hOffset = _ref$hOffset === void 0 ? 'calc(0% + 24px)' : _ref$hOffset, _ref$style = _ref.style, style = _ref$style === void 0 ? 'round' : _ref$style, _ref$containerClass = _ref.containerClass, containerClass = _ref$containerClass === void 0 ? ClassNames.container : _ref$containerClass; var _useChat = useChat({ loadWhenIdle: true }), _useChat2 = _slicedToArray(_useChat, 2), state = _useChat2[0], loadChat = _useChat2[1]; var positionStyles = { bottom: vOffset, right: position === 'left' ? 'auto' : hOffset, left: position === 'right' ? 'auto' : hOffset }; var shapeStyle = { borderRadius: style === 'round' ? '50%' : '0' }; if (state === 'complete') { return null; } return /*#__PURE__*/React.createElement("div", { className: containerClass, style: _objectSpread(_objectSpread(_objectSpread({}, styles.container), positionStyles), shapeStyle) }, /*#__PURE__*/React.createElement("button", { role: "button", "aria-label": "Load Chat", "aria-busy": "true", "aria-live": "polite", onClick: function onClick() { return loadChat({ open: true }); }, onMouseEnter: function onMouseEnter() { return loadChat({ open: false }); }, style: _objectSpread(_objectSpread(_objectSpread({}, styles.button), shapeStyle), {}, { backgroundColor: backgroundColor }) }, /*#__PURE__*/React.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 40 40", fill: "none", style: _objectSpread(_objectSpread({}, styles.icon), {}, { color: color }) }, /*#__PURE__*/React.createElement("path", { d: "M37.4 30.7c-.1-.5 0-.9.2-1.4 1.5-2.8 2.3-6 2.3-9.4C40 9 31 0 20 0 9 0 0 9 0 20s9 20 20 20c3.3 0 6.5-.9 9.4-2.3.4-.2.9-.3 1.4-.2l6.8 1.3c.7.1 1.3-.5 1.2-1.2l-1.4-6.9zM21 29h-8c-1.1 0-2-.9-2-2s.9-2 2-2h8c1.1 0 2 .9 2 2s-.9 2-2 2zm6-7H13c-1.1 0-2-.9-2-2s.9-2 2-2h14c1.1 0 2 .9 2 2s-.9 2-2 2zm0-7H13c-1.1 0-2-.9-2-2s.9-2 2-2h14c1.1 0 2 .9 2 2s-.9 2-2 2z", fill: "currentColor" })))); }; export default Userlike; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNoYXQiLCJDbGFzc05hbWVzIiwic3R5bGVzIiwiY29udGFpbmVyIiwiekluZGV4IiwicG9zaXRpb24iLCJib3JkZXIiLCJ3aWR0aCIsImhlaWdodCIsImJveFNoYWRvdyIsImxlZnQiLCJidXR0b24iLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIiwibWluV2lkdGgiLCJtaW5IZWlnaHQiLCJwYWRkaW5nIiwiY3Vyc29yIiwiaWNvbiIsImZvbnRTaXplIiwiVXNlcmxpa2UiLCJfcmVmIiwiX3JlZiRjb2xvciIsImNvbG9yIiwiX3JlZiRiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kQ29sb3IiLCJfcmVmJHBvc2l0aW9uIiwiX3JlZiR2T2Zmc2V0Iiwidk9mZnNldCIsIl9yZWYkaE9mZnNldCIsImhPZmZzZXQiLCJfcmVmJHN0eWxlIiwic3R5bGUiLCJfcmVmJGNvbnRhaW5lckNsYXNzIiwiY29udGFpbmVyQ2xhc3MiLCJfdXNlQ2hhdCIsImxvYWRXaGVuSWRsZSIsIl91c2VDaGF0MiIsIl9zbGljZWRUb0FycmF5Iiwic3RhdGUiLCJsb2FkQ2hhdCIsInBvc2l0aW9uU3R5bGVzIiwiYm90dG9tIiwicmlnaHQiLCJzaGFwZVN0eWxlIiwiYm9yZGVyUmFkaXVzIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIl9vYmplY3RTcHJlYWQiLCJyb2xlIiwib25DbGljayIsIm9wZW4iLCJvbk1vdXNlRW50ZXIiLCJ2aWV3Qm94IiwiZmlsbCIsImQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Vc2VybGlrZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENTU1Byb3BlcnRpZXMgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHVzZUNoYXQgZnJvbSAnLi4vLi4vaG9va3MvdXNlQ2hhdCdcbmltcG9ydCB7IFByb3ZpZGVyUHJvcHMsIENsYXNzTmFtZXMgfSBmcm9tICcuLi8uLi90eXBlcydcblxuY29uc3Qgc3R5bGVzOiB7XG4gIGNvbnRhaW5lcjogQ1NTUHJvcGVydGllc1xuICBidXR0b246IENTU1Byb3BlcnRpZXNcbiAgaWNvbjogQ1NTUHJvcGVydGllc1xufSA9IHtcbiAgY29udGFpbmVyOiB7XG4gICAgekluZGV4OiAyMTQ3NDgzNjQ4LCAvLyBvbmUgbW9yZSB0aGFuIHByb3ZpZGVyXG4gICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgYm9yZGVyOiAnMCcsXG4gICAgd2lkdGg6ICc2NHB4JyxcbiAgICBoZWlnaHQ6ICc2NHB4JyxcbiAgICBib3hTaGFkb3c6ICdyZ2JhKDAsIDAsIDAsIDAuMjQpIDBweCA4cHggMTZweCAwcHgnLFxuICAgIGxlZnQ6ICdhdXRvJ1xuICB9LFxuICBidXR0b246IHtcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIHdpZHRoOiAnNjRweCcsXG4gICAgbWluV2lkdGg6ICc2NHB4JyxcbiAgICBoZWlnaHQ6ICc2NHB4JyxcbiAgICBtaW5IZWlnaHQ6ICc2NHB4JyxcbiAgICBwYWRkaW5nOiAnMCcsXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgYm9yZGVyOiAnMCdcbiAgfSxcbiAgaWNvbjoge1xuICAgIGZvbnRTaXplOiAnNDBweCdcbiAgfVxufVxuXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBQcm92aWRlclByb3BzIHtcbiAgY29sb3I/OiBzdHJpbmdcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nXG4gIHBvc2l0aW9uPzogc3RyaW5nXG4gIHZPZmZzZXQ/OiBzdHJpbmdcbiAgaE9mZnNldD86IHN0cmluZ1xuICBzdHlsZT86IHN0cmluZ1xufVxuXG5jb25zdCBVc2VybGlrZSA9ICh7XG4gIGNvbG9yID0gJ3doaXRlJyxcbiAgYmFja2dyb3VuZENvbG9yID0gJyMwZDhjZmYnLFxuICBwb3NpdGlvbiA9ICdyaWdodCcsXG4gIHZPZmZzZXQgPSAnY2FsYygwJSArIDIwcHgpJyxcbiAgaE9mZnNldCA9ICdjYWxjKDAlICsgMjRweCknLFxuICBzdHlsZSA9ICdyb3VuZCcsXG4gIGNvbnRhaW5lckNsYXNzID0gQ2xhc3NOYW1lcy5jb250YWluZXJcbn06IFByb3BzKTogSlNYLkVsZW1lbnQgfCBudWxsID0+IHtcbiAgY29uc3QgW3N0YXRlLCBsb2FkQ2hhdF0gPSB1c2VDaGF0KHsgbG9hZFdoZW5JZGxlOiB0cnVlIH0pXG4gIGNvbnN0IHBvc2l0aW9uU3R5bGVzID0ge1xuICAgIGJvdHRvbTogdk9mZnNldCxcbiAgICByaWdodDogcG9zaXRpb24gPT09ICdsZWZ0JyA/ICdhdXRvJyA6IGhPZmZzZXQsXG4gICAgbGVmdDogcG9zaXRpb24gPT09ICdyaWdodCcgPyAnYXV0bycgOiBoT2Zmc2V0XG4gIH1cbiAgY29uc3Qgc2hhcGVTdHlsZSA9IHtcbiAgICBib3JkZXJSYWRpdXM6IHN0eWxlID09PSAncm91bmQnID8gJzUwJScgOiAnMCdcbiAgfVxuXG4gIGlmIChzdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17Y29udGFpbmVyQ2xhc3N9XG4gICAgICBzdHlsZT17eyAuLi5zdHlsZXMuY29udGFpbmVyLCAuLi5wb3NpdGlvblN0eWxlcywgLi4uc2hhcGVTdHlsZSB9fVxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJMb2FkIENoYXRcIlxuICAgICAgICBhcmlhLWJ1c3k9XCJ0cnVlXCJcbiAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gbG9hZENoYXQoeyBvcGVuOiB0cnVlIH0pfVxuICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IGxvYWRDaGF0KHsgb3BlbjogZmFsc2UgfSl9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgLi4uc3R5bGVzLmJ1dHRvbixcbiAgICAgICAgICAuLi5zaGFwZVN0eWxlLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvclxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8c3ZnXG4gICAgICAgICAgd2lkdGg9XCIxZW1cIlxuICAgICAgICAgIGhlaWdodD1cIjFlbVwiXG4gICAgICAgICAgdmlld0JveD1cIjAgMCA0MCA0MFwiXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHN0eWxlPXt7IC4uLnN0eWxlcy5pY29uLCBjb2xvciB9fVxuICAgICAgICA+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMzcuNCAzMC43Yy0uMS0uNSAwLS45LjItMS40IDEuNS0yLjggMi4zLTYgMi4zLTkuNEM0MCA5IDMxIDAgMjAgMCA5IDAgMCA5IDAgMjBzOSAyMCAyMCAyMGMzLjMgMCA2LjUtLjkgOS40LTIuMy40LS4yLjktLjMgMS40LS4ybDYuOCAxLjNjLjcuMSAxLjMtLjUgMS4yLTEuMmwtMS40LTYuOXpNMjEgMjloLThjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yaDhjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyem02LTdIMTNjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yaDE0YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMnptMC03SDEzYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMmgxNGMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDJ6XCJcbiAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgID48L3BhdGg+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgVXNlcmxpa2VcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxNQUF5QixPQUFP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