fix: use div container for QRCode.js, show element before rendering
Browse files- public/app.js +5 -3
- public/index.html +1 -1
public/app.js
CHANGED
|
@@ -227,8 +227,11 @@ async function fetchAndRenderQR() {
|
|
| 227 |
const qrData = json.qrData;
|
| 228 |
if (!qrData) continue;
|
| 229 |
|
| 230 |
-
//
|
| 231 |
-
|
|
|
|
|
|
|
|
|
|
| 232 |
|
| 233 |
new QRCode(qrCanvas, {
|
| 234 |
text: qrData,
|
|
@@ -239,7 +242,6 @@ async function fetchAndRenderQR() {
|
|
| 239 |
correctLevel: QRCode.CorrectLevel.M,
|
| 240 |
});
|
| 241 |
qrRendered = true;
|
| 242 |
-
setQrState('ready');
|
| 243 |
return;
|
| 244 |
} catch (err) {
|
| 245 |
console.warn('fetchAndRenderQR attempt', i, err);
|
|
|
|
| 227 |
const qrData = json.qrData;
|
| 228 |
if (!qrData) continue;
|
| 229 |
|
| 230 |
+
// Show the container FIRST so the div has real dimensions when QRCode renders
|
| 231 |
+
setQrState('ready');
|
| 232 |
+
|
| 233 |
+
// Wipe any previous render
|
| 234 |
+
qrCanvas.innerHTML = '';
|
| 235 |
|
| 236 |
new QRCode(qrCanvas, {
|
| 237 |
text: qrData,
|
|
|
|
| 242 |
correctLevel: QRCode.CorrectLevel.M,
|
| 243 |
});
|
| 244 |
qrRendered = true;
|
|
|
|
| 245 |
return;
|
| 246 |
} catch (err) {
|
| 247 |
console.warn('fetchAndRenderQR attempt', i, err);
|
public/index.html
CHANGED
|
@@ -93,7 +93,7 @@
|
|
| 93 |
<!-- QR code rendered on canvas via qrcode.js -->
|
| 94 |
<div id="qr-ready" class="qr-state hidden">
|
| 95 |
<div class="qr-frame">
|
| 96 |
-
<
|
| 97 |
</div>
|
| 98 |
<p class="qr-hint">Point your Shellular app camera at the code above</p>
|
| 99 |
</div>
|
|
|
|
| 93 |
<!-- QR code rendered on canvas via qrcode.js -->
|
| 94 |
<div id="qr-ready" class="qr-state hidden">
|
| 95 |
<div class="qr-frame">
|
| 96 |
+
<div id="qr-canvas"></div>
|
| 97 |
</div>
|
| 98 |
<p class="qr-hint">Point your Shellular app camera at the code above</p>
|
| 99 |
</div>
|