UNPKG

@apideck/vault-react

Version:

React hook for the Apideck Vault component.

2 lines (1 loc) 1.54 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function h(i,a){if(i==null)return{};var l={},n=Object.keys(i),o,e;for(e=0;e<n.length;e++)o=n[e],!(a.indexOf(o)>=0)&&(l[o]=i[o]);return l}var C=["onClose","onReady","onConnectionChange","onConnectionDelete"],b=function(){var a="https://vaultjs.apideck.com",l=function(){var e=document.createElement("iframe");return e.style.display="none",e.style.position="fixed",e.style.top="0",e.style.left="0",e.style.width="100%",e.style.height="100%",e.style.border="none",e.style.zIndex="9999",e.src=a,e},n=null;return{open:function(e){var d=e.onClose,r=e.onReady,c=e.onConnectionChange,s=e.onConnectionDelete,p=h(e,C);n=l(),document.body.appendChild(n);var m=function g(t){var u;if(n!==null){if(t.data==="on-ready"){var v;n.style.display="block",(v=n.contentWindow)==null||v.postMessage(p,a),r==null||r()}if(t.data==="on-close"&&(window.removeEventListener("message",g),d==null||d(),setTimeout(function(){n!==null&&(document.body.removeChild(n),n=null)},300)),typeof t.data=="object"&&(u=t.data)!=null&&u.data){var y;switch((y=t.data)==null?void 0:y.type){case"on-connection-change":c==null||c(t.data.data);break;case"on-connection-delete":s==null||s(t.data.data);break}}}};window.addEventListener("message",m)},close:function(){var e,d;(e=n)==null||(d=e.contentWindow)==null||d.postMessage({type:"close"},a),setTimeout(function(){n!==null&&(document.body.removeChild(n),n=null)},500)}}},f=b();const k=()=>({open:l=>{f.open(l)},close:()=>{f.close()}});exports.useVault=k;