forked from bitcoinafterlife/bal-welist-website
add server url row and live verification check in invoice
This commit is contained in:
29
index.html
29
index.html
@@ -156,6 +156,8 @@ tbody tr:hover{background:color-mix(in srgb,var(--accent-soft) 50%,transparent)}
|
||||
#qrcode img{width:160px;height:160px}
|
||||
.ok-line{color:var(--ok);font-weight:600;font-size:14px;margin-bottom:14px}
|
||||
.err-line{color:#d32f2f;font-weight:600;font-size:14px;margin-bottom:14px}
|
||||
.flag-ok{color:var(--ok);font-weight:600;font-size:13px}
|
||||
.flag-err{color:#d32f2f;font-weight:600;font-size:13px}
|
||||
|
||||
.intro-card{
|
||||
background:var(--panel);border:1px solid var(--line);
|
||||
@@ -287,6 +289,7 @@ footer a{color:var(--accent);text-decoration:none}
|
||||
<div class="row"><span>Address</span><span id="iv-addr">—</span></div>
|
||||
<div class="row"><span>Balance</span><span id="iv-balance">—</span></div>
|
||||
<div class="row"><span>Status</span><span id="iv-status2">—</span></div>
|
||||
<div class="row"><span>Server</span><span><span id="iv-url">—</span> <span id="iv-url-check"></span></span></div>
|
||||
<div id="qrcode"></div>
|
||||
</div>
|
||||
|
||||
@@ -433,6 +436,26 @@ async function fetchData() {
|
||||
}
|
||||
}
|
||||
|
||||
async function checkServer(url, chain) {
|
||||
const flag = document.getElementById('iv-url-check');
|
||||
flag.textContent = 'checking…';
|
||||
flag.className = '';
|
||||
try {
|
||||
const r = await fetch(url + '/' + chain + '/info');
|
||||
const data = await r.json();
|
||||
if (data && data.address && data.base_fee != null) {
|
||||
flag.textContent = '✓ verified';
|
||||
flag.className = 'flag-ok';
|
||||
} else {
|
||||
flag.textContent = '✗ error';
|
||||
flag.className = 'flag-err';
|
||||
}
|
||||
} catch (err) {
|
||||
flag.textContent = '✗ error';
|
||||
flag.className = 'flag-err';
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById('onion').addEventListener('change', e => {
|
||||
withTor = e.target.checked;
|
||||
fetchData();
|
||||
@@ -468,6 +491,9 @@ document.getElementById('submit').addEventListener('click', async () => {
|
||||
document.getElementById('iv-addr').textContent = '—';
|
||||
document.getElementById('iv-balance').textContent = '—';
|
||||
document.getElementById('iv-status2').textContent = '—';
|
||||
document.getElementById('iv-url').textContent = '—';
|
||||
document.getElementById('iv-url-check').textContent = '';
|
||||
document.getElementById('iv-url-check').className = '';
|
||||
document.getElementById('qrcode').innerHTML = '';
|
||||
const chain = getChain();
|
||||
try {
|
||||
@@ -495,6 +521,9 @@ document.getElementById('submit').addEventListener('click', async () => {
|
||||
new QRCode(qrEl, invoiceuri);
|
||||
inv.classList.add('show');
|
||||
inv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
||||
const serverUrl = result.url || url;
|
||||
document.getElementById('iv-url').textContent = serverUrl;
|
||||
checkServer(serverUrl, result.chain || chain);
|
||||
} catch (err) {
|
||||
document.getElementById('iv-status').className = 'err-line';
|
||||
document.getElementById('iv-status').textContent = 'Network error. Please try again.';
|
||||
|
||||
Reference in New Issue
Block a user