Files
brk/website_next/wallets/amount/index.js
T
2026-07-06 11:15:39 +02:00

47 lines
1.0 KiB
JavaScript

import { renderBtcAmount as renderVisibleBtcAmount } from "../../btc/index.js";
import { redaction } from "../redaction/index.js";
const FIXED_PRIVATE_TEXT = "*****";
/**
* @typedef {Object} BtcAmountOptions
* @property {boolean} [signed]
*
* @typedef {Object} BtcAmount
* @property {number} sats
* @property {boolean} signed
*/
/**
* @param {HTMLElement} element
* @param {BtcAmount} amount
*/
function renderBtcAmount(element, amount) {
element.dataset.btcAmount = "";
if (redaction.isHidden()) {
element.textContent = FIXED_PRIVATE_TEXT;
return;
}
renderVisibleBtcAmount(element, amount.sats, amount);
}
/**
* @template {keyof HTMLElementTagNameMap} Tag
* @param {Tag} tag
* @param {number} sats
* @param {BtcAmountOptions} [options]
*/
export function createBtcAmount(tag, sats, options = {}) {
const element = document.createElement(tag);
const amount = {
sats,
signed: options.signed === true,
};
redaction.addEffect(element, () => renderBtcAmount(element, amount));
return element;
}