fix: add QR code to full-screen node detail view, bump cache buster

This commit is contained in:
you
2026-03-19 22:11:04 +00:00
parent 84b817745f
commit 58531e5da7
2 changed files with 18 additions and 1 deletions
+1 -1
View File
@@ -80,7 +80,7 @@
<script src="packets.js?v=1773958048"></script>
<script src="map.js?v=1773958048" onerror="console.error('Failed to load:', this.src)"></script>
<script src="channels.js?v=1773958048" onerror="console.error('Failed to load:', this.src)"></script>
<script src="nodes.js?v=1773958123" onerror="console.error('Failed to load:', this.src)"></script>
<script src="nodes.js?v=1773958264" onerror="console.error('Failed to load:', this.src)"></script>
<script src="traces.js?v=1773958048" onerror="console.error('Failed to load:', this.src)"></script>
<script src="analytics.js?v=1773958048" onerror="console.error('Failed to load:', this.src)"></script>
<script src="live.js?v=1773958048" onerror="console.error('Failed to load:', this.src)"></script>
+17
View File
@@ -108,6 +108,7 @@
<div class="node-detail-name" style="font-size:20px">${escapeHtml(n.name || '(unnamed)')}</div>
<div style="margin:6px 0 12px"><span class="badge" style="background:${roleColor}20;color:${roleColor}">${n.role}</span> ${statusLabel}</div>
<div class="node-detail-key mono" style="font-size:11px;word-break:break-all;margin-bottom:12px">${n.public_key}</div>
<div class="node-qr" id="nodeFullQrCode"></div>
</div>
<div class="node-full-card">
@@ -182,6 +183,22 @@
}).catch(() => {});
});
// QR code for full-screen view
const qrFullEl = document.getElementById('nodeFullQrCode');
if (qrFullEl && typeof qrcode === 'function') {
try {
const typeMap = { companion: 1, repeater: 2, room: 3, sensor: 4 };
const contactType = typeMap[(n.role || '').toLowerCase()] || 2;
const meshcoreUrl = `meshcore://contact/add?name=${encodeURIComponent(n.name || 'Unknown')}&public_key=${n.public_key}&type=${contactType}`;
const qr = qrcode(0, 'M');
qr.addData(meshcoreUrl);
qr.make();
qrFullEl.innerHTML = `<div style="font-size:11px;color:var(--text-muted);margin-bottom:4px">Scan with MeshCore app to add contact</div>` + qr.createSvgTag(3, 0);
const svg = qrFullEl.querySelector('svg');
if (svg) { svg.style.display = 'block'; svg.style.margin = '0 auto'; }
} catch {}
}
} catch (e) {
body.innerHTML = `<div class="text-muted" style="padding:40px">Failed to load node: ${e.message}</div>`;
}