UNPKG

react-use-intercom

Version:

React Intercom integration without the hassle, driven by hooks.

3 lines 7.09 kB
'use strict';var n=require('react');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var n__namespace=/*#__PURE__*/_interopNamespace(n);var se=Object.defineProperty;var v=Object.getOwnPropertySymbols;var G=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable;var K=(e,o,s)=>o in e?se(e,o,{enumerable:true,configurable:true,writable:true,value:s}):e[o]=s,l=(e,o)=>{for(var s in o||(o={}))G.call(o,s)&&K(e,s,o[s]);if(v)for(var s of v(o))Q.call(o,s)&&K(e,s,o[s]);return e};var X=(e,o)=>{var s={};for(var c in e)G.call(e,c)&&o.indexOf(c)<0&&(s[c]=e[c]);if(e!=null&&v)for(var c of v(e))o.indexOf(c)<0&&Q.call(e,c)&&(s[c]=e[c]);return s};var f=(e,o)=>{let s="[react-use-intercom]";switch(e){case "info":console.log(`${s} ${o}`);break;case "warn":console.warn(`${s} ${o}`);break;case "error":console.error(`${s} ${o}`);break;default:console.log(`${s} ${o}`);}};var I=typeof window=="undefined",C=e=>(Object.keys(e).forEach(o=>{e[o]&&typeof e[o]=="object"?C(e[o]):e[o]===void 0&&delete e[o];}),e);var ce=(e,...o)=>{if(!I&&window.Intercom)return window.Intercom.apply(null,[e,...o]);f("error",`${e} Intercom instance is not initalized yet`);},a=ce;var ie=n__namespace.createContext(void 0),A=ie;var me=(e,o=0,s)=>{var c=window,d=c.Intercom;if(typeof d=="function")d("reattach_activator"),d("update",c.intercomSettings);else {var p=document,u=function(){u.c(arguments);};u.q=[],u.c=function(i){u.q.push(i);},c.Intercom=u;var g=function(){setTimeout(function(){var i=p.createElement("script");i.type="text/javascript",i.async=true,s&&i.setAttribute("nonce",s),i.src="https://widget.intercom.io/widget/"+e;var h=p.getElementsByTagName("script")[0];h.parentNode.insertBefore(i,h);},o);};document.readyState==="complete"?g():c.attachEvent?c.attachEvent("onload",g):c.addEventListener("load",g,false);}},H=me;var le=e=>({custom_launcher_selector:e.customLauncherSelector,alignment:e.alignment,vertical_padding:e.verticalPadding,horizontal_padding:e.horizontalPadding,z_index:e.zIndex,hide_default_launcher:e.hideDefaultLauncher,session_duration:e.sessionDuration,action_color:e.actionColor,background_color:e.backgroundColor}),ee=e=>l({company_id:e.companyId,name:e.name,created_at:e.createdAt,plan:e.plan,monthly_spend:e.monthlySpend,user_count:e.userCount,size:e.size,website:e.website,industry:e.industry},e.customAttributes),ue=e=>({type:e.type,image_url:e.imageUrl}),de=e=>{var o;return l({email:e.email,user_id:e.userId,created_at:e.createdAt,name:e.name,phone:e.phone,last_request_at:e.lastRequestAt,unsubscribed_from_emails:e.unsubscribedFromEmails,language_override:e.languageOverride,utm_campaign:e.utmCampaign,utm_content:e.utmContent,utm_medium:e.utmMedium,utm_source:e.utmSource,utm_term:e.utmTerm,avatar:e.avatar&&ue(e.avatar),user_hash:e.userHash,company:e.company&&ee(e.company),companies:(o=e.companies)==null?void 0:o.map(ee),intercom_user_jwt:e.intercomUserJwt},e.customAttributes)},b=e=>C(l(l({},le(e)),de(e)));var pe=fe=>{var k=fe,{appId:e,autoBoot:o=false,autoBootProps:s,children:c,onHide:d,onShow:p,onUnreadCountChange:u,onUserEmailSupplied:g,shouldInitialize:i=!I,apiBase:h,initializeDelay:oe,cspNonce:re}=k,ne=X(k,["appId","autoBoot","autoBootProps","children","onHide","onShow","onUnreadCountChange","onUserEmailSupplied","shouldInitialize","apiBase","initializeDelay","cspNonce"]);let w=n__namespace.useRef(false),P=n__namespace.useRef(false),[_,x]=n__namespace.useState(false),y=Object.keys(ne).filter(t=>!t.startsWith("data-"));y.length>0&&f("warn",["some invalid props were passed to IntercomProvider. ",`Please check following props: ${y.join(", ")}.`].join(""));let R=n__namespace.useCallback(t=>{if(!window.Intercom&&!i){f("warn","Intercom instance is not initialized because `shouldInitialize` is set to `false` in `IntercomProvider`");return}if(w.current)return;a("onHide",()=>{x(false),d==null||d();}),a("onShow",()=>{x(true),p==null||p();}),a("onUserEmailSupplied",g),u&&a("onUnreadCountChange",u);let m=l(l({app_id:e},h&&{api_base:h}),t&&b(t));window.intercomSettings=m,a("boot",m),w.current=true;},[h,e,d,p,u,g,i]);!I&&i&&!P.current&&(H(e,oe,re),o&&R(s),P.current=true);let r=n__namespace.useCallback((t,m)=>{if(!window.Intercom&&!i){f("warn","Intercom instance is not initialized because `shouldInitialize` is set to `false` in `IntercomProvider`");return}if(!w.current){f("warn",[`"${t}" was called but Intercom has not booted yet. `,`Please call 'boot' before calling '${t}' or `,"set 'autoBoot' to true in the IntercomProvider."].join(""));return}return m()},[i]),S=n__namespace.useCallback(()=>{w.current&&(a("shutdown"),delete window.intercomSettings,w.current=false);},[]),D=n__namespace.useCallback(()=>{w.current&&(a("shutdown"),delete window.Intercom,delete window.intercomSettings,w.current=false);},[]),M=n__namespace.useCallback(()=>{r("update",()=>{let t=Math.floor(new Date().getTime()/1e3);a("update",{last_request_at:t});});},[r]),T=n__namespace.useCallback(t=>{r("update",()=>{if(!t){M();return}let m=b(t);window.intercomSettings=l(l({},window.intercomSettings),m),a("update",m);});},[r,M]),E=n__namespace.useCallback(()=>{r("hide",()=>{a("hide");});},[r]),$=n__namespace.useCallback(()=>{r("show",()=>a("show"));},[r]),z=n__namespace.useCallback(()=>{r("showMessages",()=>{a("showMessages");});},[r]),V=n__namespace.useCallback(t=>{r("showNewMessage",()=>{t?a("showNewMessage",t):a("showNewMessage");});},[r]),N=n__namespace.useCallback(()=>r("getVisitorId",()=>a("getVisitorId")),[r]),L=n__namespace.useCallback(t=>{r("startTour",()=>{a("startTour",t);});},[r]),q=n__namespace.useCallback(t=>{r("startChecklist",()=>{a("startChecklist",t);});},[r]),O=n__namespace.useCallback((t,m)=>{r("trackEvent",()=>{m?a("trackEvent",t,m):a("trackEvent",t);});},[r]),B=n__namespace.useCallback(t=>r("showArticle",()=>{a("showArticle",t);}),[r]),j=n__namespace.useCallback(t=>r("showSpace",()=>{a("showSpace",t);}),[r]),U=n__namespace.useCallback(t=>{r("startSurvey",()=>{a("startSurvey",t);});},[r]),F=n__namespace.useCallback(t=>r("showNews",()=>{a("showNews",t);}),[r]),W=n__namespace.useCallback(t=>r("showTicket",()=>{a("showTicket",t);}),[r]),J=n__namespace.useCallback(t=>r("showConversation",()=>{a("showConversation",t);}),[r]),ae=n__namespace.useMemo(()=>({boot:R,shutdown:S,hardShutdown:D,update:T,hide:E,show:$,isOpen:_,showMessages:z,showNewMessage:V,getVisitorId:N,startTour:L,startChecklist:q,trackEvent:O,showArticle:B,startSurvey:U,showSpace:j,showNews:F,showTicket:W,showConversation:J}),[R,S,D,T,E,$,_,z,V,N,L,q,O,B,U,j,F,W,J]);return n__namespace.createElement(A.Provider,{value:ae},c)},te=()=>{let e=n__namespace.useContext(A);if(e===void 0)throw new Error('"useIntercom" must be used within `IntercomProvider`.');return e};var we=()=>te(); exports.IntercomProvider=pe;exports.useIntercom=we;//# sourceMappingURL=index.cjs.map //# sourceMappingURL=index.cjs.map