UNPKG

reactjs-freshchat

Version:

A Reactjs component wrapper for Freshchat web-sdk api.

142 lines (121 loc) 3.9 kB
import { useState, useEffect, createElement } from 'react'; 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 _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; } var styles = {"buttonContainer":"_tWHtY","buttonContent":"_MDaB7"}; var _excluded = ["label", "ic_styles"]; function Freshchat(_ref) { var label = _ref.label, ic_styles = _ref.ic_styles, rest = _objectWithoutPropertiesLoose(_ref, _excluded); var _React$useState = useState(false), isWidgetOpen = _React$useState[0], setIsWidgetOpen = _React$useState[1]; var UrlIcon = 'https://firebasestorage.googleapis.com/v0/b/repfinder-450e2.appspot.com/o/chat.svg?alt=media&token=885c5d28-2165-4a24-a96c-c1b0c98fab3f'; var loadScript = function loadScript() { var id = 'freshchat-lib'; if (document.getElementById(id) || window.fcWidget) return; var script = document.createElement('script'); script.async = true; script.type = 'text/javascript'; script.src = 'https://wchat.freshchat.com/js/widget.js'; script.id = id; document.head.appendChild(script); }; var init = function init() { if (label) { if (!rest.config) { rest.config = { headerProperty: { hideChatButton: true } }; } else { rest.config = _extends({}, rest.config, { headerProperty: { hideChatButton: true } }); } } if (!rest.host) rest.host = 'https://wchat.freshchat.com'; window.fcWidget.init(_extends({}, rest)); }; var toggleWidget = function toggleWidget() { window.fcWidget.open(); setIsWidgetOpen(true); var script = document.createElement('script'); script.async = true; script.type = 'text/javascript'; script.src = "" + window.fcWidget.on('widget:closed', function () { setIsWidgetOpen(false); }); document.head.appendChild(script); var script_event = document.createElement('script'); script_event.async = true; script_event.type = 'text/javascript'; script_event.src = "" + window.fcWidget.on('user:created', function () { console.log('User has been created'); }); document.head.appendChild(script_event); }; useEffect(function () { loadScript(); var interval = setInterval(function () { if (window.fcWidget) { clearInterval(interval); try { init(); } catch (error) { console.log(error); } } }, 1000); }); if (!label) { return null; } return !isWidgetOpen ? createElement("div", { className: styles.buttonContainer, onClick: function onClick() { return toggleWidget(); } }, createElement("div", { className: styles.buttonContent, style: { backgroundColor: ic_styles ? ic_styles.backgroundColor : '#002d85', color: ic_styles ? ic_styles.color : '#ffffff', borderColor: ic_styles ? "transparent " + ic_styles.backgroundColor + " transparent transparent" : "transparent #002d85 transparent transparent" } }, createElement("label", null, label), createElement("img", { src: UrlIcon, alt: 'chat icon', width: '22px', height: '22px' }))) : null; } export { Freshchat }; //# sourceMappingURL=index.modern.js.map