UNPKG

tb-react-live-chat-loader

Version:

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

129 lines (119 loc) 14.5 kB
const _excluded = ["color"]; function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } 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); } import React, { memo } from 'react'; import useProvider from "../../hooks/useProvider"; import useChat from "../../hooks/useChat"; const 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 const CustomerChat = /*#__PURE__*/memo(({ providerKey, color, loggedInGreeting, loggedOutGreeting, greetingDialogDisplay, greetingDialogDelay }) => { const 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))); }); const Widget = ({ color }) => { const [state, loadChat] = useChat({ loadWhenIdle: true }); if (state === 'complete') { return null; } return /*#__PURE__*/React.createElement("div", { style: styles, role: "button", "aria-label": "Load Chat", "aria-busy": "true", "aria-live": "polite", onClick: () => loadChat({ open: true }), onMouseEnter: () => loadChat({ open: false }) }, /*#__PURE__*/React.createElement("svg", { width: "60px", height: "60px", viewBox: "0 0 60 60" }, /*#__PURE__*/React.createElement("svg", { x: "0", y: "0", width: "60px", height: "60px" }, /*#__PURE__*/React.createElement("g", { stroke: "none", strokeWidth: "1", fill: "none", fillRule: "evenodd" }, /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("circle", { fill: color ? color : '#0084FF', cx: "30", cy: "30", r: "30" }), /*#__PURE__*/React.createElement("svg", { x: "10", y: "10" }, /*#__PURE__*/React.createElement("g", { transform: "translate(0.000000, -10.000000)", fill: "#FFFFFF" }, /*#__PURE__*/React.createElement("g", { id: "logo", transform: "translate(0.000000, 10.000000)" }, /*#__PURE__*/React.createElement("path", { d: "M20,0 C31.2666,0 40,8.2528 40,19.4 C40,30.5472 31.2666,38.8 20,38.8 C17.9763,38.8 16.0348,38.5327 14.2106,38.0311 C13.856,37.9335 13.4789,37.9612 13.1424,38.1098 L9.1727,39.8621 C8.1343,40.3205 6.9621,39.5819 6.9273,38.4474 L6.8184,34.8894 C6.805,34.4513 6.6078,34.0414 6.2811,33.7492 C2.3896,30.2691 0,25.2307 0,19.4 C0,8.2528 8.7334,0 20,0 Z M7.99009,25.07344 C7.42629,25.96794 8.52579,26.97594 9.36809,26.33674 L15.67879,21.54734 C16.10569,21.22334 16.69559,21.22164 17.12429,21.54314 L21.79709,25.04774 C23.19919,26.09944 25.20039,25.73014 26.13499,24.24744 L32.00999,14.92654 C32.57369,14.03204 31.47419,13.02404 30.63189,13.66324 L24.32119,18.45264 C23.89429,18.77664 23.30439,18.77834 22.87569,18.45674 L18.20299,14.95224 C16.80079,13.90064 14.79959,14.26984 13.86509,15.75264 L7.99009,25.07344 Z" }))))))))); }; const Messenger = _ref => { let { color = '' } = _ref, props = _objectWithoutProperties(_ref, _excluded); const { providerKey: provKey } = useProvider(); return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomerChat, _extends({ color: color, providerKey: provKey }, props)), /*#__PURE__*/React.createElement(Widget, { color: color })); }; export default Messenger; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL01lc3Nlbmdlci9pbmRleC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJtZW1vIiwidXNlUHJvdmlkZXIiLCJ1c2VDaGF0Iiwic3R5bGVzIiwiYXBwZWFyYW5jZSIsImJhY2tncm91bmQiLCJib3JkZXJSYWRpdXMiLCJib3R0b20iLCJkaXNwbGF5IiwiaGVpZ2h0IiwicGFkZGluZyIsInBvc2l0aW9uIiwicmlnaHQiLCJ0b3AiLCJ3aWR0aCIsInpJbmRleCIsIm92ZXJmbG93IiwiYm94U2hhZG93IiwidHJhbnNpdGlvbiIsImN1cnNvciIsIm91dGxpbmUiLCJ1c2VyU2VsZWN0IiwiQ3VzdG9tZXJDaGF0IiwicHJvdmlkZXJLZXkiLCJjb2xvciIsImxvZ2dlZEluR3JlZXRpbmciLCJsb2dnZWRPdXRHcmVldGluZyIsImdyZWV0aW5nRGlhbG9nRGlzcGxheSIsImdyZWV0aW5nRGlhbG9nRGVsYXkiLCJmaWVsZHMiLCJwYWdlX2lkIiwidGhlbWVfY29sb3IiLCJsb2dnZWRfaW5fZ3JlZXRpbmciLCJsb2dnZWRfb3V0X2dyZWV0aW5nIiwiZ3JlZXRpbmdfZGlhbG9nX2Rpc3BsYXkiLCJncmVldGluZ19kaWFsb2dfZGVsYXkiLCJXaWRnZXQiLCJzdGF0ZSIsImxvYWRDaGF0IiwibG9hZFdoZW5JZGxlIiwib3BlbiIsIk1lc3NlbmdlciIsInByb3BzIiwicHJvdktleSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQStCQyxJQUEvQixRQUEyQyxPQUEzQztBQUdBLE9BQU9DLFdBQVA7QUFDQSxPQUFPQyxPQUFQO0FBRUEsTUFBTUMsTUFBcUIsR0FBRztBQUM1QkMsRUFBQUEsVUFBVSxFQUFFLE1BRGdCO0FBRTVCQyxFQUFBQSxVQUFVLEVBQUUsTUFGZ0I7QUFHNUJDLEVBQUFBLFlBQVksRUFBRSxLQUhjO0FBSTVCQyxFQUFBQSxNQUFNLEVBQUUsTUFKb0I7QUFLNUJDLEVBQUFBLE9BQU8sRUFBRSxR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WSxJQUFBLENBQUMsRUFBQztBQUFkLGtCQUNFO0FBQUcsSUFBQSxTQUFTLEVBQUMsaUNBQWI7QUFBK0MsSUFBQSxJQUFJLEVBQUM7QUFBcEQsa0JBQ0U7QUFBRyxJQUFBLEVBQUUsRUFBQyxNQUFOO0FBQWEsSUFBQSxTQUFTLEVBQUM7QUFBdkIsa0JBQ0U7QUFBTSxJQUFBLENBQUMsRUFBQztBQUFSLElBREYsQ0FERixDQURGLENBRkYsQ0FERixDQURGLENBREYsQ0FURixDQURGO0FBNEJELENBbkNEOztBQXFDQSxNQUFNaUIsU0FBUyxHQUFHLFFBQWtEO0FBQUEsTUFBakQ7QUFBRWpCLElBQUFBLEtBQUssR0FBRztBQUFWLEdBQWlEO0FBQUEsTUFBaENrQixLQUFnQzs7QUFDbEUsUUFBTTtBQUFFbkIsSUFBQUEsV0FBVyxFQUFFb0I7QUFBZixNQUEyQjFDLFdBQVcsRUFBNUM7QUFFQSxzQkFDRSx1REFDRSxvQkFBQyxZQUFEO0FBQWMsSUFBQSxLQUFLLEVBQUV1QixLQUFyQjtBQUE0QixJQUFBLFdBQVcsRUFBRW1CO0FBQXpDLEtBQXNERCxLQUF0RCxFQURGLGVBRUUsb0JBQUMsTUFBRDtBQUFRLElBQUEsS0FBSyxFQUFFbEI7QUFBZixJQUZGLENBREY7QUFNRCxDQVREOztBQVdBLGVBQWVpQixTQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENTU1Byb3BlcnRpZXMsIG1lbW8gfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB1c2VQcm92aWRlciBmcm9tICcuLi8uLi9ob29rcy91c2VQcm92aWRlcidcbmltcG9ydCB1c2VDaGF0IGZyb20gJy4uLy4uL2hvb2tzL3VzZUNoYXQnXG5cbmNvbnN0IHN0eWxlczogQ1NTUHJvcGVydGllcyA9IHtcbiAgYXBwZWFyYW5jZTogJ25vbmUnLFxuICBiYWNrZ3JvdW5kOiAnbm9uZScsXG4gIGJvcmRlclJhZGl1czogJzUwJScsXG4gIGJvdHRvbTogJzE4cHQnLFxuICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgaGVpZ2h0OiAnNDVwdCcsXG4gIHBhZGRpbmc6ICcwcHgnLFxuICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgcmlnaHQ6ICcxOHB0JyxcbiAgdG9wOiAnYXV0bycsXG4gIHdpZHRoOiAnNDVwdCcsXG4gIHpJbmRleDogMjE0NzQ4MzY0NywgLy8gMSBtb3JlIHRoYW4gdGhlIGFjdHVhbCB3aWRnZXRcbiAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICBib3hTaGFkb3c6ICcwIDNweCAxMnB4IHJnYmEoMCwgMCwgMCwgLjE1KScsXG4gIHRyYW5zaXRpb246ICdib3gtc2hhZG93IDE1MG1zIGxpbmVhcicsXG4gIGN1cnNvcjogJ3BvaW50ZXInLFxuICBvdXRsaW5lOiAnbm9uZScsXG4gIHVzZXJTZWxlY3Q6ICdub25lJ1xufVxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBwcm92aWRlcktleTogUHJvdmlkZXIgfCB1bmRlZmluZWRcbiAgdGhlbWVDb2xvcj86IHN0cmluZ1xuICBsb2dnZWRJbkdyZWV0aW5nPzogc3RyaW5nXG4gIGxvZ2dlZE91dEdyZWV0aW5nPzogc3RyaW5nXG4gIHNob3c/OiBzdHJpbmdcbiAgaGlkZT86IHN0cmluZ1xuICBmYWRlPzogc3RyaW5nXG4gIGdyZWV0aW5nRGlhbG9nRGVsYXk/OiBzdHJpbmdcbiAgZ3JlZXRpbmdEaWFsb2dEaXNwbGF5Pzogc3RyaW5nXG4gIGNvbG9yPzogc3RyaW5nXG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9kaXNwbGF5LW5hbWVcbmNvbnN0IEN1c3RvbWVyQ2hhdCA9IG1lbW8oXG4gICh7XG4gICAgcHJvdmlkZXJLZXksXG4gICAgY29sb3IsXG4gICAgbG9nZ2VkSW5HcmVldGluZyxcbiAgICBsb2dnZWRPdXRHcmVldGluZyxcbiAgICBncmVldGluZ0RpYWxvZ0Rpc3BsYXksXG4gICAgZ3JlZXRpbmdEaWFsb2dEZWxheVxuICB9OiBQcm9wcykgPT4ge1xuICAgIGNvbnN0IGZpZWxkcyA9IHtcbiAgICAgIHBhZ2VfaWQ6IHByb3ZpZGVyS2V5LFxuICAgICAgdGhlbWVfY29sb3I6IGNvbG9yLFxuICAgICAgbG9nZ2VkX2luX2dyZWV0aW5nOiBsb2dnZWRJbkdyZWV0aW5nLFxuICAgICAgbG9nZ2VkX291dF9ncmVldGluZzogbG9nZ2VkT3V0R3JlZXRpbmcsXG4gICAgICBncmVldGluZ19kaWFsb2dfZGlzcGxheTogZ3JlZXRpbmdEaWFsb2dEaXNwbGF5LFxuICAgICAgZ3JlZXRpbmdfZGlhbG9nX2RlbGF5OiBncmVldGluZ0RpYWxvZ0RlbGF5XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmItY3VzdG9tZXJjaGF0XCIgey4uLmZpZWxkc30gLz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuKVxuXG5jb25zdCBXaWRnZXQgPSAoeyBjb2xvciB9OiB7IGNvbG9yOiBzdHJpbmcgfSk6IEpTWC5FbGVtZW50IHwgbnVsbCA9PiB7XG4gIGNvbnN0IFtzdGF0ZSwgbG9hZENoYXRdID0gdXNlQ2hhdCh7IGxvYWRXaGVuSWRsZTogdHJ1ZSB9KVxuXG4gIGlmIChzdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHN0eWxlPXtzdHlsZXN9XG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJMb2FkIENoYXRcIlxuICAgICAgYXJpYS1idXN5PVwidHJ1ZVwiXG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgb25DbGljaz17KCkgPT4gbG9hZENoYXQoeyBvcGVuOiB0cnVlIH0pfVxuICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBsb2FkQ2hhdCh7IG9wZW46IGZhbHNlIH0pfVxuICAgID5cbiAgICAgIDxzdmcgd2lkdGg9XCI2MHB4XCIgaGVpZ2h0PVwiNjBweFwiIHZpZXdCb3g9XCIwIDAgNjAgNjBcIj5cbiAgICAgICAgPHN2ZyB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI2MHB4XCIgaGVpZ2h0PVwiNjBweFwiPlxuICAgICAgICAgIDxnIHN0cm9rZT1cIm5vbmVcIiBzdHJva2VXaWR0aD1cIjFcIiBmaWxsPVwibm9uZVwiIGZpbGxSdWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPGc+XG4gICAgICAgICAgICAgIDxjaXJjbGUgZmlsbD17Y29sb3IgPyBjb2xvciA6ICcjMDA4NEZGJ30gY3g9XCIzMFwiIGN5PVwiMzBcIiByPVwiMzBcIiAvPlxuICAgICAgICAgICAgICA8c3ZnIHg9XCIxMFwiIHk9XCIxMFwiPlxuICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjAwMDAwMCwgLTEwLjAwMDAwMClcIiBmaWxsPVwiI0ZGRkZGRlwiPlxuICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJsb2dvXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuMDAwMDAwLCAxMC4wMDAwMDApXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjAsMCBDMzEuMjY2NiwwIDQwLDguMjUyOCA0MCwxOS40IEM0MCwzMC41NDcyIDMxLjI2NjYsMzguOCAyMCwzOC44IEMxNy45NzYzLDM4LjggMTYuMDM0OCwzOC41MzI3IDE0LjIxMDYsMzguMDMxMSBDMTMuODU2LDM3LjkzMzUgMTMuNDc4OSwzNy45NjEyIDEzLjE0MjQsMzguMTA5OCBMOS4xNzI3LDM5Ljg2MjEgQzguMTM0Myw0MC4zMjA1IDYuOTYyMSwzOS41ODE5IDYuOTI3MywzOC40NDc0IEw2LjgxODQsMzQuODg5NCBDNi44MDUsMzQuNDUxMyA2LjYwNzgsMzQuMDQxNCA2LjI4MTEsMzMuNzQ5MiBDMi4zODk2LDMwLjI2OTEgMCwyNS4yMzA3IDAsMTkuNCBDMCw4LjI1MjggOC43MzM0LDAgMjAsMCBaIE03Ljk5MDA5LDI1LjA3MzQ0IEM3LjQyNjI5LDI1Ljk2Nzk0IDguNTI1NzksMjYuOTc1OTQgOS4zNjgwOSwyNi4zMzY3NCBMMTUuNjc4NzksMjEuNTQ3MzQgQzE2LjEwNTY5LDIxLjIyMzM0IDE2LjY5NTU5LDIxLjIyMTY0IDE3LjEyNDI5LDIxLjU0MzE0IEwyMS43OTcwOSwyNS4wNDc3NCBDMjMuMTk5MTksMjYuMDk5NDQgMjUuMjAwMzksMjUuNzMwMTQgMjYuMTM0OTksMjQuMjQ3NDQgTDMyLjAwOTk5LDE0LjkyNjU0IEMzMi41NzM2OSwxNC4wMzIwNCAzMS40NzQxOSwxMy4wMjQwNCAzMC42MzE4OSwxMy42NjMyNCBMMjQuMzIxMTksMTguNDUyNjQgQzIzLjg5NDI5LDE4Ljc3NjY0IDIzLjMwNDM5LDE4Ljc3ODM0IDIyLjg3NTY5LDE4LjQ1Njc0IEwxOC4yMDI5OSwxNC45NTIyNCBDMTYuODAwNzksMTMuOTAwNjQgMTQuNzk5NTksMTQuMjY5ODQgMTMuODY1MDksMTUuNzUyNjQgTDcuOTkwMDksMjUuMDczNDQgWlwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuY29uc3QgTWVzc2VuZ2VyID0gKHsgY29sb3IgPSAnJywgLi4ucHJvcHMgfTogUHJvcHMpOiBKU1guRWxlbWVudCA9PiB7XG4gIGNvbnN0IHsgcHJvdmlkZXJLZXk6IHByb3ZLZXkgfSA9IHVzZVByb3ZpZGVyKClcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Q3VzdG9tZXJDaGF0IGNvbG9yPXtjb2xvcn0gcHJvdmlkZXJLZXk9e3Byb3ZLZXl9IHsuLi5wcm9wc30gLz5cbiAgICAgIDxXaWRnZXQgY29sb3I9e2NvbG9yfSAvPlxuICAgIDwvPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NlbmdlclxuIl19