UNPKG

@logaflow/react

Version:

Streamline user feedback collection with Logaflow. Efficiently collect feedback from your users to accelerate bug fixes and increase product impact.

2 lines (1 loc) 1.45 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("react/jsx-runtime"),e=require("react"),f="logaflow-webcomponent-js";function p({projectKey:o,useCustomTrigger:n,userId:t,name:i,email:a,avatar:r,triggerText:c}){const[d,l]=e.useState(!1),u=e.useCallback(()=>{if(document.querySelector("#"+f)){l(!0);return}const s=document.createElement("script"),g=window._is_logaflow_debug?"http://localhost:4001":"https://widget.logaflow.com";s.crossOrigin="true",s.async=!0,s.type="module",s.src=`${g}/addons/logaflow-widget.es.js?version=3.0.0`,s.onload=function(){l(!0)},document.head.appendChild(s)},[]);return e.useEffect(()=>{o&&u()},[u,o]),d?w.jsx("logaflow-widget",{"project-key":o,"use-custom-trigger":n,avatar:r,email:a,name:i,"user-id":t,"trigger-text":c}):null}function m(){const[o,n]=e.useState(!1),t=e.useCallback(a=>{const{data:r}=a;r.from==="logaflowwidget"&&r.state&&n(r.state.open)},[]),i=e.useCallback(()=>{const a={from:"logaflowlib",action:"open"};window.postMessage(a,window.location.origin)},[]);return e.useEffect(()=>(window.removeEventListener("message",t),window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}),[t]),{isOpen:o,open:i}}function b(){return{setUser:e.useCallback(n=>{window.postMessage({from:"logaflowlib",action:"setuser",payload:{user:n}},window.location.origin)},[])}}exports.LogaflowWidget=p;exports.useLogaflowPopup=m;exports.useLogaflowUser=b;