react-live-chat-loader
Version:
Implement live chat in your react app without taking a performance hit.
121 lines • 16.7 kB
JavaScript
var _excluded = ["color", "containerClass"];
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return 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; }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React, { memo } from 'react';
import useProvider from "../../hooks/useProvider";
import useChat from "../../hooks/useChat";
import { ClassNames } from "../../types";
var styles = {
appearance: 'none',
background: 'none',
borderRadius: '50%',
bottom: '18pt',
display: 'inline',
height: '45pt',
padding: '0px',
position: 'fixed',
right: '18pt',
top: 'auto',
width: '45pt',
zIndex: 2147483647,
// 1 more than the actual widget
overflow: 'hidden',
boxShadow: '0 3px 12px rgba(0, 0, 0, .15)',
transition: 'box-shadow 150ms linear',
cursor: 'pointer',
outline: 'none',
userSelect: 'none'
};
// eslint-disable-next-line react/display-name
var CustomerChat = /*#__PURE__*/memo(function (_ref) {
var providerKey = _ref.providerKey,
color = _ref.color,
loggedInGreeting = _ref.loggedInGreeting,
loggedOutGreeting = _ref.loggedOutGreeting,
greetingDialogDisplay = _ref.greetingDialogDisplay,
greetingDialogDelay = _ref.greetingDialogDelay;
var fields = {
page_id: providerKey,
theme_color: color,
logged_in_greeting: loggedInGreeting,
logged_out_greeting: loggedOutGreeting,
greeting_dialog_display: greetingDialogDisplay,
greeting_dialog_delay: greetingDialogDelay
};
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", _extends({
className: "fb-customerchat"
}, fields)));
});
var Widget = function Widget(_ref2) {
var color = _ref2.color,
containerClass = _ref2.containerClass;
var _useChat = useChat({
loadWhenIdle: true
}),
_useChat2 = _slicedToArray(_useChat, 2),
state = _useChat2[0],
loadChat = _useChat2[1];
if (state === 'complete') {
return null;
}
return /*#__PURE__*/React.createElement("div", {
className: containerClass,
style: styles,
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
});
}
}, /*#__PURE__*/React.createElement("div", {
style: {
width: '60px',
height: '60px',
backgroundColor: color ? color : '#0A7CFF',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
borderRadius: '60px'
}
}, /*#__PURE__*/React.createElement("svg", {
width: "36",
height: "36",
viewBox: "0 0 36 36"
}, /*#__PURE__*/React.createElement("path", {
fill: "white",
d: "M1 17.99C1 8.51488 8.42339 1.5 18 1.5C27.5766 1.5 35 8.51488 35 17.99C35 27.4651 27.5766 34.48 18 34.48C16.2799 34.48 14.6296 34.2528 13.079 33.8264C12.7776 33.7435 12.4571 33.767 12.171 33.8933L8.79679 35.3828C7.91415 35.7724 6.91779 35.1446 6.88821 34.1803L6.79564 31.156C6.78425 30.7836 6.61663 30.4352 6.33893 30.1868C3.03116 27.2287 1 22.9461 1 17.99ZM12.7854 14.8897L7.79161 22.8124C7.31238 23.5727 8.24695 24.4295 8.96291 23.8862L14.327 19.8152C14.6899 19.5398 15.1913 19.5384 15.5557 19.8116L19.5276 22.7905C20.7193 23.6845 22.4204 23.3706 23.2148 22.1103L28.2085 14.1875C28.6877 13.4272 27.7531 12.5704 27.0371 13.1137L21.673 17.1847C21.3102 17.4601 20.8088 17.4616 20.4444 17.1882L16.4726 14.2094C15.2807 13.3155 13.5797 13.6293 12.7854 14.8897Z"
}))));
};
var Messenger = function Messenger(_ref3) {
var _ref3$color = _ref3.color,
color = _ref3$color === void 0 ? '' : _ref3$color,
_ref3$containerClass = _ref3.containerClass,
containerClass = _ref3$containerClass === void 0 ? ClassNames.container : _ref3$containerClass,
props = _objectWithoutProperties(_ref3, _excluded);
var _useProvider = useProvider(),
providerKey = _useProvider.providerKey;
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomerChat, _extends({
color: color,
providerKey: providerKey
}, props)), /*#__PURE__*/React.createElement(Widget, {
color: color,
containerClass: containerClass
}));
};
export default Messenger;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIm1lbW8iLCJ1c2VQcm92aWRlciIsInVzZUNoYXQiLCJDbGFzc05hbWVzIiwic3R5bGVzIiwiYXBwZWFyYW5jZSIsImJhY2tncm91bmQiLCJib3JkZXJSYWRpdXMiLCJib3R0b20iLCJkaXNwbGF5IiwiaGVpZ2h0IiwicGFkZGluZyIsInBvc2l0aW9uIiwicmlnaHQiLCJ0b3AiLCJ3aWR0aCIsInpJbmRleCIsIm92ZXJmbG93IiwiYm94U2hhZG93IiwidHJhbnNpdGlvbiIsImN1cnNvciIsIm91dGxpbmUiLCJ1c2VyU2VsZWN0IiwiQ3VzdG9tZXJDaGF0IiwiX3JlZiIsInByb3ZpZGVyS2V5IiwiY29sb3IiLCJsb2dnZWRJbkdyZWV0aW5nIiwibG9nZ2VkT3V0R3JlZXRpbmciLCJncmVldGluZ0RpYWxvZ0Rpc3BsYXkiLCJncmVldGluZ0RpYWxvZ0RlbGF5IiwiZmllbGRzIiwicGFnZV9pZCIsInRoZW1lX2NvbG9yIiwibG9nZ2VkX2luX2dyZWV0aW5nIiwibG9nZ2VkX291dF9ncmVldGluZyIsImdyZWV0aW5nX2RpYWxvZ19kaXNwbGF5IiwiZ3JlZXRpbmdfZGlhbG9nX2RlbGF5IiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzIiwiY2xhc3NOYW1lIiwiV2lkZ2V0IiwiX3JlZjIiLCJjb250YWluZXJDbGFzcyIsIl91c2VDaGF0IiwibG9hZFdoZW5JZGxlIiwiX3VzZUNoYXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJzdGF0ZSIsImxvYWRDaGF0Iiwic3R5bGUiLCJyb2xlIiwib25DbGljayIsIm9wZW4iLCJvbk1vdXNlRW50ZXIiLCJiYWNrZ3JvdW5kQ29sb3IiLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJ2aWV3Qm94IiwiZmlsbCIsImQiLCJNZXNzZW5nZXIiLCJfcmVmMyIsIl9yZWYzJGNvbG9yIiwiX3JlZjMkY29udGFpbmVyQ2xhc3MiLCJjb250YWluZXIiLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIl91c2VQcm92aWRlciIsIkZyYWdtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTWVzc2VuZ2VyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ1NTUHJvcGVydGllcywgbWVtbyB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdXNlUHJvdmlkZXIgZnJvbSAnLi4vLi4vaG9va3MvdXNlUHJvdmlkZXInXG5pbXBvcnQgdXNlQ2hhdCBmcm9tICcuLi8uLi9ob29rcy91c2VDaGF0J1xuaW1wb3J0IHsgUHJvdmlkZXJQcm9wcywgQ2xhc3NOYW1lcyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5jb25zdCBzdHlsZXM6IENTU1Byb3BlcnRpZXMgPSB7XG4gIGFwcGVhcmFuY2U6ICdub25lJyxcbiAgYmFja2dyb3VuZDogJ25vbmUnLFxuICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICBib3R0b206ICcxOHB0JyxcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIGhlaWdodDogJzQ1cHQnLFxuICBwYWRkaW5nOiAnMHB4JyxcbiAgcG9zaXRpb246ICdmaXhlZCcsXG4gIHJpZ2h0OiAnMThwdCcsXG4gIHRvcDogJ2F1dG8nLFxuICB3aWR0aDogJzQ1cHQnLFxuICB6SW5kZXg6IDIxNDc0ODM2NDcsIC8vIDEgbW9yZSB0aGFuIHRoZSBhY3R1YWwgd2lkZ2V0XG4gIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgYm94U2hhZG93OiAnMCAzcHggMTJweCByZ2JhKDAsIDAsIDAsIC4xNSknLFxuICB0cmFuc2l0aW9uOiAnYm94LXNoYWRvdyAxNTBtcyBsaW5lYXInLFxuICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgb3V0bGluZTogJ25vbmUnLFxuICB1c2VyU2VsZWN0OiAnbm9uZSdcbn1cblxuaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgUHJvdmlkZXJQcm9wcyB7XG4gIHRoZW1lQ29sb3I/OiBzdHJpbmdcbiAgbG9nZ2VkSW5HcmVldGluZz86IHN0cmluZ1xuICBsb2dnZWRPdXRHcmVldGluZz86IHN0cmluZ1xuICBzaG93Pzogc3RyaW5nXG4gIGhpZGU/OiBzdHJpbmdcbiAgZmFkZT86IHN0cmluZ1xuICBncmVldGluZ0RpYWxvZ0RlbGF5Pzogc3RyaW5nXG4gIGdyZWV0aW5nRGlhbG9nRGlzcGxheT86IHN0cmluZ1xuICBjb2xvcj86IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgQ2hhdFByb3BzIGV4dGVuZHMgUHJvcHMge1xuICBwcm92aWRlcktleTogc3RyaW5nXG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9kaXNwbGF5LW5hbWVcbmNvbnN0IEN1c3RvbWVyQ2hhdCA9IG1lbW8oXG4gICh7XG4gICAgcHJvdmlkZXJLZXksXG4gICAgY29sb3IsXG4gICAgbG9nZ2VkSW5HcmVldGluZyxcbiAgICBsb2dnZWRPdXRHcmVldGluZyxcbiAgICBncmVldGluZ0RpYWxvZ0Rpc3BsYXksXG4gICAgZ3JlZXRpbmdEaWFsb2dEZWxheVxuICB9OiBDaGF0UHJvcHMpID0+IHtcbiAgICBjb25zdCBmaWVsZHMgPSB7XG4gICAgICBwYWdlX2lkOiBwcm92aWRlcktleSxcbiAgICAgIHRoZW1lX2NvbG9yOiBjb2xvcixcbiAgICAgIGxvZ2dlZF9pbl9ncmVldGluZzogbG9nZ2VkSW5HcmVldGluZyxcbiAgICAgIGxvZ2dlZF9vdXRfZ3JlZXRpbmc6IGxvZ2dlZE91dEdyZWV0aW5nLFxuICAgICAgZ3JlZXRpbmdfZGlhbG9nX2Rpc3BsYXk6IGdyZWV0aW5nRGlhbG9nRGlzcGxheSxcbiAgICAgIGdyZWV0aW5nX2RpYWxvZ19kZWxheTogZ3JlZXRpbmdEaWFsb2dEZWxheVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZiLWN1c3RvbWVyY2hhdFwiIHsuLi5maWVsZHN9IC8+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbilcblxuY29uc3QgV2lkZ2V0ID0gKHtcbiAgY29sb3IsXG4gIGNvbnRhaW5lckNsYXNzXG59OiB7XG4gIGNvbG9yOiBzdHJpbmdcbiAgY29udGFpbmVyQ2xhc3M6IHN0cmluZ1xufSk6IEpTWC5FbGVtZW50IHwgbnVsbCA9PiB7XG4gIGNvbnN0IFtzdGF0ZSwgbG9hZENoYXRdID0gdXNlQ2hhdCh7IGxvYWRXaGVuSWRsZTogdHJ1ZSB9KVxuXG4gIGlmIChzdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17Y29udGFpbmVyQ2xhc3N9XG4gICAgICBzdHlsZT17c3R5bGVzfVxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICBhcmlhLWxhYmVsPVwiTG9hZCBDaGF0XCJcbiAgICAgIGFyaWEtYnVzeT1cInRydWVcIlxuICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgIG9uQ2xpY2s9eygpID0+IGxvYWRDaGF0KHsgb3BlbjogdHJ1ZSB9KX1cbiAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4gbG9hZENoYXQoeyBvcGVuOiBmYWxzZSB9KX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgd2lkdGg6ICc2MHB4JyxcbiAgICAgICAgICBoZWlnaHQ6ICc2MHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yID8gY29sb3IgOiAnIzBBN0NGRicsXG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6ICc2MHB4J1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8c3ZnIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHZpZXdCb3g9XCIwIDAgMzYgMzZcIj5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgIGQ9XCJNMSAxNy45OUMxIDguNTE0ODggOC40MjMzOSAxLjUgMTggMS41QzI3LjU3NjYgMS41IDM1IDguNTE0ODggMzUgMTcuOTlDMzUgMjcuNDY1MSAyNy41NzY2IDM0LjQ4IDE4IDM0LjQ4QzE2LjI3OTkgMzQuNDggMTQuNjI5NiAzNC4yNTI4IDEzLjA3OSAzMy44MjY0QzEyLjc3NzYgMzMuNzQzNSAxMi40NTcxIDMzLjc2NyAxMi4xNzEgMzMuODkzM0w4Ljc5Njc5IDM1LjM4MjhDNy45MTQxNSAzNS43NzI0IDYuOTE3NzkgMzUuMTQ0NiA2Ljg4ODIxIDM0LjE4MDNMNi43OTU2NCAzMS4xNTZDNi43ODQyNSAzMC43ODM2IDYuNjE2NjMgMzAuNDM1MiA2LjMzODkzIDMwLjE4NjhDMy4wMzExNiAyNy4yMjg3IDEgMjIuOTQ2MSAxIDE3Ljk5Wk0xMi43ODU0IDE0Ljg4OTdMNy43OTE2MSAyMi44MTI0QzcuMzEyMzggMjMuNTcyNyA4LjI0Njk1IDI0LjQyOTUgOC45NjI5MSAyMy44ODYyTDE0LjMyNyAxOS44MTUyQzE0LjY4OTkgMTkuNTM5OCAxNS4xOTEzIDE5LjUzODQgMTUuNTU1NyAxOS44MTE2TDE5LjUyNzYgMjIuNzkwNUMyMC43MTkzIDIzLjY4NDUgMjIuNDIwNCAyMy4zNzA2IDIzLjIxNDggMjIuMTEwM0wyOC4yMDg1IDE0LjE4NzVDMjguNjg3NyAxMy40MjcyIDI3Ljc1MzEgMTIuNTcwNCAyNy4wMzcxIDEzLjExMzdMMjEuNjczIDE3LjE4NDdDMjEuMzEwMiAxNy40NjAxIDIwLjgwODggMTcuNDYxNiAyMC40NDQ0IDE3LjE4ODJMMTYuNDcyNiAxNC4yMDk0QzE1LjI4MDcgMTMuMzE1NSAxMy41Nzk3IDEzLjYyOTMgMTIuNzg1NCAxNC44ODk3WlwiXG4gICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBNZXNzZW5nZXIgPSAoe1xuICBjb2xvciA9ICcnLFxuICBjb250YWluZXJDbGFzcyA9IENsYXNzTmFtZXMuY29udGFpbmVyLFxuICAuLi5wcm9wc1xufTogUHJvcHMpOiBKU1guRWxlbWVudCA9PiB7XG4gIGNvbnN0IHsgcHJvdmlkZXJLZXkgfSA9IHVzZVByb3ZpZGVyKClcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Q3VzdG9tZXJDaGF0IGNvbG9yPXtjb2xvcn0gcHJvdmlkZXJLZXk9e3Byb3ZpZGVyS2V5fSB7Li4ucHJvcHN9IC8+XG4gICAgICA8V2lkZ2V0IGNvbG9yPXtjb2xvcn0gY29udGFpbmVyQ2xhc3M9e2NvbnRhaW5lckNsYXNzfSAvPlxuICAgIDwvPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NlbmdlclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFtQkMsSUFBSSxRQUFRLE9BQU87QUFFbEQsT0FBT0MsV0FBVztBQUNsQixPQUFPQyxPQUFPO0FBQ2QsU0FBd0JDLFVBQVU7QUFFbEMsSUFBTUMsTUFBcUIsR0FBRztFQUM1QkMsVUFBVSxFQUFFLE1BQU07RUFDbEJDLFVBQVUsRUFBRSxNQUFNO0VBQ2xCQyxZQUFZLEVBQUUsS0FBSztFQUNuQkMsTUFBTSxFQUFFLE1BQU07RUFDZEMsT0FBTyxFQUFFLFFBQVE7RUFDakJDLE1BQU0sRUFBRSxNQUFNO0VBQ2RDLE9BQU8sRUFBRSxLQUFLO0VBQ2RDLFFBQVEsRUFBRSxPQUFPO0VBQ2pCQyxLQUFLLEVBQUUsTUFBTTtFQUNiQyxHQUFHLEVBQUUsTUFBTTtFQUNYQyxLQUFLLEVBQUUsTUFBTTtFQUNiQyxNQUFNLEVBQUUsVUFBVTtFQUFFO0VBQ3BCQyxRQUFRLEVBQUUsUUFBUTtFQUNsQkMsU0FBUyxFQUFFLCtCQUErQjtFQUMxQ0MsVUFBVSxFQUFFLHlCQUF5QjtFQUNyQ0MsTUFBTSxFQUFFLFNBQVM7RUFDakJDLE9BQU8sRUFBRSxNQUFNO0VBQ2ZDLFVBQVUsRUFBRTtBQUNkLENBQUM7QUFrQkQ7QUFDQSxJQUFNQyxZQUFZLGdCQUFHdkIsSUFBSSxD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