UNPKG

@livechat/widget-react

Version:

This library allows to render and interact with the LiveChat Chat Widget inside a React application

2 lines (1 loc) 6.08 kB
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react"),require("@livechat/widget-core")):"function"==typeof define&&define.amd?define(["exports","react","@livechat/widget-core"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).LiveChatWidgetReact={},e.React,e.LiveChatWidgetCore)}(this,(function(e,n,t){"use strict";function i(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var r=i(n);function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,i)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){u(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function u(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function c(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var i,r,o=[],a=!0,u=!1;try{for(t=t.call(e);!(a=(i=t.next()).done)&&(o.push(i.value),!n||o.length!==n);a=!0);}catch(e){u=!0,r=e}finally{try{a||null==t.return||t.return()}finally{if(u)throw r}}return o}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return l(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return l(e,n)}(e,n)||function(){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 l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,i=new Array(n);t<n;t++)i[t]=e[t];return i}function s(){var e=c(r.useState(null),2),n=e[0],i=e[1];return r.useEffect((function(){var e=function(e){var n=e.customerData;return i(n)},n=function(){return i(t.getData("customer"))},r=t.lcOnInit((function(){t.assignEventHandlers("once",{onReady:e}),t.assignEventHandlers("on",{onCustomerStatusChanged:n})})),o=t.lcOnDestroy((function(){i(null)}));return function(){t.assignEventHandlers("off",{onReady:e,onCustomerStatusChanged:n}),r(),o()}}),[]),n}e.LiveChatWidget=function(e){var n=r.useRef(null);return r.useEffect((function(){return n.current=t.createWidget(e),window.__lc.integration_name="@livechat/widget-react",n.current.init(),function(){var e;null===(e=n.current)||void 0===e||e.destroy()}}),[e.license,e.group,e.chatBetweenGroups]),r.useEffect((function(){var t;null===(t=n.current)||void 0===t||t.updateVisibility(e.visibility)}),[e.visibility]),r.useEffect((function(){var t;null===(t=n.current)||void 0===t||t.updateSessionVariables(e.sessionVariables)}),[e.sessionVariables]),r.useEffect((function(){var t;null===(t=n.current)||void 0===t||t.updateCustomerData({name:e.customerName,email:e.customerEmail})}),[e.customerName,e.customerEmail]),r.useEffect((function(){var t;null===(t=n.current)||void 0===t||t.updateEventHandlers(a(a(a(a(a(a(a(a(a(a({},e.onReady&&{onReady:e.onReady}),e.onNewEvent&&{onNewEvent:e.onNewEvent}),e.onFormSubmitted&&{onFormSubmitted:e.onFormSubmitted}),e.onGreetingHidden&&{onGreetingHidden:e.onGreetingHidden}),e.onRatingSubmitted&&{onRatingSubmitted:e.onRatingSubmitted}),e.onGreetingDisplayed&&{onGreetingDisplayed:e.onGreetingDisplayed}),e.onVisibilityChanged&&{onVisibilityChanged:e.onVisibilityChanged}),e.onAvailabilityChanged&&{onAvailabilityChanged:e.onAvailabilityChanged}),e.onCustomerStatusChanged&&{onCustomerStatusChanged:e.onCustomerStatusChanged}),e.onRichMessageButtonClicked&&{onRichMessageButtonClicked:e.onRichMessageButtonClicked}))}),[e.onReady,e.onNewEvent,e.onFormSubmitted,e.onGreetingHidden,e.onRatingSubmitted,e.onGreetingDisplayed,e.onVisibilityChanged,e.onAvailabilityChanged,e.onCustomerStatusChanged,e.onRichMessageButtonClicked]),null},e.useWidgetChatData=function(){var e=s(),n=null==e?void 0:e.status,i=c(r.useState(null),2),o=i[0],a=i[1];return r.useEffect((function(){a("chatting"===n?t.getData("chat"):null)}),[n]),o},e.useWidgetCustomerData=s,e.useWidgetGreeting=function(){var e=c(r.useState(null),2),n=e[0],i=e[1];return r.useEffect((function(){var e=function(e){return i(e)},n=function(){return i(null)},r=t.lcOnInit((function(){t.assignEventHandlers("on",{onGreetingDisplayed:e,onGreetingHidden:n})})),o=t.lcOnDestroy((function(){i(null)}));return function(){t.assignEventHandlers("off",{onGreetingDisplayed:e,onGreetingHidden:n}),r(),o()}}),[]),n},e.useWidgetIsReady=function(){var e=c(r.useState(!1),2),n=e[0],i=e[1];return r.useEffect((function(){var e=function(){return i(!0)},n=t.lcOnInit((function(){t.assignEventHandlers("once",{onReady:e})})),r=t.lcOnDestroy((function(){i(!1)}));return function(){t.assignEventHandlers("off",{onReady:e}),n(),r()}}),[]),n},e.useWidgetState=function(){var e=c(r.useState(null),2),n=e[0],i=e[1];return r.useEffect((function(){var e=function(e){var n=e.state;return i(n)},n=function(e){var n=e.visibility;i((function(e){return e?a(a({},e),{},{visibility:n}):e}))},r=function(e){var n=e.availability;i((function(e){return e?a(a({},e),{},{availability:n}):e}))},o=t.lcOnInit((function(){t.assignEventHandlers("once",{onReady:e}),t.assignEventHandlers("on",{onVisibilityChanged:n,onAvailabilityChanged:r})})),u=t.lcOnDestroy((function(){i(null)}));return function(){t.assignEventHandlers("off",{onReady:e,onVisibilityChanged:n,onAvailabilityChanged:r}),o(),u()}}),[]),n},Object.defineProperty(e,"__esModule",{value:!0})}));