parent
d1446c6d6f
commit
6898959fce
@ -0,0 +1,69 @@ |
|||||||
|
console.log("main.js started"); |
||||||
|
|
||||||
|
// For asynchronously loading the qr code library, loadQRLib returns a promise
|
||||||
|
// which will be resolved when the library is loaded.
|
||||||
|
var qrLibProm; |
||||||
|
var loadQRLib = () => { |
||||||
|
if (qrLibProm) { return qrLibProm; } |
||||||
|
qrLibProm = new Promise((resolve, reject) => { |
||||||
|
console.log("loading qrcode.min.js"); |
||||||
|
var script = document.createElement('script'); |
||||||
|
script.src = "/assets/qrcode.min.js"; |
||||||
|
script.async = true; |
||||||
|
script.onload = () => { resolve(); }; |
||||||
|
document.querySelectorAll('head')[0].appendChild(script); |
||||||
|
}); |
||||||
|
return qrLibProm; |
||||||
|
}; |
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded", () => { |
||||||
|
console.log("DOM loaded"); |
||||||
|
|
||||||
|
var cryptoDisplay = document.querySelector('#crypto-display'); |
||||||
|
var clearCryptoDisplay = () => { |
||||||
|
while(cryptoDisplay.firstChild) { |
||||||
|
cryptoDisplay.removeChild(cryptoDisplay.firstChild); |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
console.log("setting up crypto buttons"); |
||||||
|
document.querySelectorAll('.crypto').forEach((el) => { |
||||||
|
var href = el.href; |
||||||
|
el.href="#"; |
||||||
|
el.onclick = () => { |
||||||
|
var parts = href.split(":"); |
||||||
|
if (parts.length != 2) { |
||||||
|
console.error(el, "href not properly formatted"); |
||||||
|
return; |
||||||
|
} |
||||||
|
var currency = parts[0]; |
||||||
|
var address = parts[1]; |
||||||
|
|
||||||
|
clearCryptoDisplay(); |
||||||
|
|
||||||
|
var cryptoDisplayQR = document.createElement('div'); |
||||||
|
cryptoDisplayQR.id = "crypto-display-qr"; |
||||||
|
|
||||||
|
var cryptoDisplayAddr = document.createElement('div'); |
||||||
|
cryptoDisplayAddr.id = "crypto-display-addr"; |
||||||
|
cryptoDisplayAddr.innerHTML = '<span>'+currency + " address: " + address + '</span>'; |
||||||
|
|
||||||
|
var cryptoDisplayX = document.createElement('div'); |
||||||
|
cryptoDisplayX.id = "crypto-display-x"; |
||||||
|
cryptoDisplayX.onclick = clearCryptoDisplay; |
||||||
|
cryptoDisplayX.innerHTML = '<span>X</span>'; |
||||||
|
|
||||||
|
cryptoDisplay.appendChild(cryptoDisplayQR); |
||||||
|
cryptoDisplay.appendChild(cryptoDisplayAddr); |
||||||
|
cryptoDisplay.appendChild(cryptoDisplayX); |
||||||
|
|
||||||
|
loadQRLib().then(() => { |
||||||
|
new QRCode(cryptoDisplayQR, { |
||||||
|
text: currency, |
||||||
|
width: 512, |
||||||
|
height: 512, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}; |
||||||
|
}); |
||||||
|
}) |
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue