website: fixes

This commit is contained in:
nym21
2026-04-20 18:11:30 +02:00
parent 08175009d2
commit 327873d010
9 changed files with 140 additions and 96 deletions

View File

@@ -18,6 +18,9 @@ export function formatBtc(sats) {
/** @param {number} rate */
export function formatFeeRate(rate) {
if (rate >= 1_000_000) return `${(rate / 1_000_000).toFixed(1)}M`;
if (rate >= 100_000) return `${Math.round(rate / 1_000)}k`;
if (rate >= 1_000) return `${(rate / 1_000).toFixed(1)}k`;
if (rate >= 100) return Math.round(rate).toLocaleString();
if (rate >= 10) return rate.toFixed(1);
return rate.toFixed(2);
@@ -39,6 +42,11 @@ export function setAddrContent(text, el) {
el.append(head, tail);
}
/** @param {number} height */
export function formatHeightPrefix(height) {
return "#" + "0".repeat(Math.max(0, 7 - String(height).length));
}
/** @param {number} height */
export function createHeightElement(height) {
const container = document.createElement("span");
@@ -46,29 +54,39 @@ export function createHeightElement(height) {
const prefix = document.createElement("span");
prefix.classList.add("dim");
prefix.style.userSelect = "none";
prefix.textContent = "#" + "0".repeat(7 - str.length);
prefix.textContent = formatHeightPrefix(height);
const num = document.createElement("span");
num.textContent = str;
container.append(prefix, num);
return container;
}
/**
* @param {string} label
* @param {boolean} [isLink]
* @returns {{ row: HTMLDivElement, valueEl: HTMLElement }}
*/
export function createRow(label, isLink = false) {
const row = document.createElement("div");
row.classList.add("row");
const labelEl = document.createElement("span");
labelEl.classList.add("label");
labelEl.textContent = label;
const valueEl = document.createElement(isLink ? "a" : "span");
valueEl.classList.add("value");
row.append(labelEl, valueEl);
return { row, valueEl };
}
/**
* @param {[string, string, (string | null)?][]} rows
* @param {HTMLElement} parent
*/
export function renderRows(rows, parent) {
for (const [label, value, href] of rows) {
const row = document.createElement("div");
row.classList.add("row");
const labelEl = document.createElement("span");
labelEl.classList.add("label");
labelEl.textContent = label;
const valueEl = document.createElement(href ? "a" : "span");
valueEl.classList.add("value");
const { row, valueEl } = createRow(label, Boolean(href));
valueEl.textContent = value;
if (href) /** @type {HTMLAnchorElement} */ (valueEl).href = href;
row.append(labelEl, valueEl);
parent.append(row);
}
}