mirror of
https://github.com/basicswap/basicswap.git
synced 2025-11-05 10:28:10 +01:00
80 lines
2.1 KiB
JavaScript
80 lines
2.1 KiB
JavaScript
|
|
(function() {
|
|
'use strict';
|
|
|
|
const QRCodeManager = {
|
|
|
|
defaultOptions: {
|
|
width: 200,
|
|
height: 200,
|
|
colorDark: "#000000",
|
|
colorLight: "#ffffff",
|
|
correctLevel: QRCode.CorrectLevel.L
|
|
},
|
|
|
|
initialize: function() {
|
|
const qrElements = document.querySelectorAll('[data-qrcode]');
|
|
|
|
qrElements.forEach(element => {
|
|
this.generateQRCode(element);
|
|
});
|
|
},
|
|
|
|
generateQRCode: function(element) {
|
|
const address = element.getAttribute('data-address');
|
|
const width = parseInt(element.getAttribute('data-width')) || this.defaultOptions.width;
|
|
const height = parseInt(element.getAttribute('data-height')) || this.defaultOptions.height;
|
|
|
|
if (!address) {
|
|
console.error('QRCodeManager: No address provided for element', element);
|
|
return;
|
|
}
|
|
|
|
element.innerHTML = '';
|
|
|
|
try {
|
|
new QRCode(element, {
|
|
text: address,
|
|
width: width,
|
|
height: height,
|
|
colorDark: this.defaultOptions.colorDark,
|
|
colorLight: this.defaultOptions.colorLight,
|
|
correctLevel: this.defaultOptions.correctLevel
|
|
});
|
|
} catch (error) {
|
|
console.error('QRCodeManager: Failed to generate QR code', error);
|
|
}
|
|
},
|
|
|
|
generateById: function(elementId, address, options = {}) {
|
|
|
|
const element = window.DOMCache
|
|
? window.DOMCache.get(elementId)
|
|
: document.getElementById(elementId);
|
|
|
|
if (!element) {
|
|
console.error('QRCodeManager: Element not found:', elementId);
|
|
return;
|
|
}
|
|
|
|
element.setAttribute('data-address', address);
|
|
|
|
if (options.width) element.setAttribute('data-width', options.width);
|
|
if (options.height) element.setAttribute('data-height', options.height);
|
|
|
|
this.generateQRCode(element);
|
|
}
|
|
};
|
|
|
|
if (document.readyState === 'loading') {
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
QRCodeManager.initialize();
|
|
});
|
|
} else {
|
|
QRCodeManager.initialize();
|
|
}
|
|
|
|
window.QRCodeManager = QRCodeManager;
|
|
|
|
})();
|