UNPKG

@vechain/connex-wallet-buddy

Version:

to bridge connex sign request to wallet

96 lines 7.32 kB
import html from '../helper.html'; import { detect } from 'detect-browser'; export const browser = detect(); const LITE_WALLET_URL = 'https://lite.sync.vecha.in/'; function openLiteWallet(src) { const options = (() => { switch (browser && browser.os) { case 'iOS': case 'android': case 'Android OS': return {}; default: return { target: `sync|${window.location.host}`, features: 'width=360,height=640,resizable,scrollbars=yes,dependent,modal' }; } })(); setTimeout(() => { window.open(new URL(`#/sign?src=${encodeURIComponent(src)}`, LITE_WALLET_URL).href, options.target, options.features); }); } const getHiddenIframe = (() => { let iframe = null; return () => { if (!iframe || !iframe.parentElement) { iframe = document.createElement("iframe"); iframe.style.display = "none"; document.body.appendChild(iframe); } return iframe; }; })(); function createActionIframe() { const iframe = document.createElement('iframe'); iframe.style.border = 'none'; iframe.style.position = 'fixed'; iframe.style.zIndex = '9999'; iframe.style.width = '100vw'; iframe.style.height = '110px'; iframe.style.left = iframe.style.bottom = '0px'; iframe.src = URL.createObjectURL(new Blob([html], { type: 'text/html' })); return iframe; } export function connect(src) { try { const href = `connex:sign?src=${encodeURIComponent(src)}`; const os = (browser && browser.os) || ''; if (os === 'Mac OS' || os === 'Linux' || os.startsWith('Windows')) { // desktop oses have native sync2 supported, try to launch in hidden iframe getHiddenIframe().contentWindow.location.href = href; } else { openLiteWallet(src); return { show() { }, hide() { } }; } } catch (_a) { } const actionFrame = createActionIframe(); const msgHandler = (ev) => { if (ev.data && ev.data.src === 'connex-helper' && ev.data.action) { switch (ev.data.action) { case 'close': if (actionFrame.parentNode) { actionFrame.parentNode.removeChild(actionFrame); window.removeEventListener('message', msgHandler); } return; case 'lite': openLiteWallet(src); return; case 'install': window.open('https://sync.vecha.in/'); return; } } }; return { show() { if (!actionFrame.parentNode) { document.body.appendChild(actionFrame); window.addEventListener('message', msgHandler); } }, hide() { if (actionFrame.parentNode) { actionFrame.parentNode.removeChild(actionFrame); window.removeEventListener('message', msgHandler); } } }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxnQkFBZ0IsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFdkMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFBO0FBRS9CLE1BQU0sZUFBZSxHQUFHLDZCQUE2QixDQUFBO0FBRXJELFNBQVMsY0FBYyxDQUFDLEdBQVc7SUFDL0IsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUU7UUFDbEIsUUFBUSxPQUFPLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUMzQixLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssU0FBUyxDQUFDO1lBQ2YsS0FBSyxZQUFZO2dCQUNiLE9BQU8sRUFBRSxDQUFBO1lBQ2I7Z0JBQ0ksT0FBTztvQkFDSCxNQUFNLEVBQUUsUUFBUSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtvQkFDdEMsUUFBUSxFQUFFLCtEQUErRDtpQkFDNUUsQ0FBQTtTQUNSO0lBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUVKLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDWixNQUFNLENBQUMsSUFBSSxDQUNQLElBQUksR0FBRyxDQUFDLGNBQWMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUMsQ0FBQyxJQUFJLEVBQ3RFLE9BQU8sQ0FBQyxNQUFNLEVBQ2QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3pCLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQztBQUVELE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFO0lBQzFCLElBQUksTUFBTSxHQUFHLElBQWdDLENBQUE7SUFDN0MsT0FBTyxHQUFHLEVBQUU7UUFDUixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFD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