@opensign/react
Version:
This package helps you easily integrate OpenSign into your React/NextJS apps.
1 lines • 2.8 kB
JavaScript
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("react"));else if("function"==typeof define&&define.amd)define(["React"],t);else{var o="object"==typeof exports?t(require("react")):t(e.React);for(var r in o)("object"==typeof exports?exports:e)[r]=o[r]}}(this,(e=>(()=>{"use strict";var t={156:t=>{t.exports=e}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var a=o[e]={exports:{}};return t[e](a,a.exports,r),a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{default:()=>l});var a=r(156),s=r.n(a);const l=e=>{let{templateId:t,onLoad:o,onLoadError:r,baseUrl:n="https://app.opensignlabs.com/api/app",appId:l="opensign"}=e;const[i,c]=(0,a.useState)(!1),[p,d]=(0,a.useState)(null),u=`${new URL(n).origin}/static/js/public-template.bundle.js`;return(0,a.useEffect)((()=>{if(!t){const e="Error: TemplateId is missing";return console.error(e),void r?.(e)}const e=`script-${Math.floor(1e4*Math.random())}`;return(async()=>{try{await((e,t)=>new Promise(((o,r)=>{if(document.getElementById(t))return console.log(`Script ${t} already loaded.`),o();const n=document.createElement("script");n.src=e,n.id=t,n.type="text/javascript",n.async=!0,n.onload=()=>{console.log(`Script ${t} loaded successfully.`),o()},n.onerror=()=>{console.error(`Failed to load script: ${e}`),r(new Error(`Failed to load script: ${e}`))},document.body.appendChild(n)})))(u,e),c(!0);const o=setInterval((()=>{window.updatePublicTemplateProps&&(window.updatePublicTemplateProps({templateId:t||"",baseUrl:n,appId:l,setTemplateStatus:d}),clearInterval(o))}),100);setTimeout((()=>{clearInterval(o),window.updatePublicTemplateProps||(console.error("Script loaded but function is missing."),r?.("updatePublicTemplateProps is not available."))}),5e3)}catch(e){console.error("Error loading script:",e),r?.(e)}})(),()=>{const t=document.getElementById(e);t&&t.remove(),document.getElementById("script-component")&&document.getElementById("script-component").remove()}}),[u,t]),(0,a.useEffect)((()=>{p&&("Invalid"===p.status?r?.("Error: Invalid TemplateId"):"Private"===p.status?r?.("Error: TemplateId is not public"):"Success"===p.status&&o?.())}),[p]),i?s().createElement("div",{id:"script-component"}):s().createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},s().createElement("span",{style:{fontSize:"13px"}},"This might take some time..."))};return n})()));