Files
brk/website_next/explore/block/index.js
T
2026-07-05 14:08:57 +02:00

44 lines
1.4 KiB
JavaScript

import { createBlockHeader } from "./header.js";
import { createMinerPane } from "./miner.js";
import { createDifficultyPane } from "./difficulty.js";
import { createRewardsPane } from "./rewards.js";
import { createTransactionPane } from "./transactions.js";
import { createFeeChart } from "./fee-chart.js";
import { appendPane } from "./pane.js";
export function createBlockDetails() {
const element = document.createElement("section");
const header = createBlockHeader();
const content = document.createElement("div");
element.id = "block-details";
element.hidden = true;
element.append(header.element, content);
/** @param {import("../../modules/brk-client/index.js").BlockInfoV1} block */
function update(block) {
const extras = block.extras;
element.hidden = false;
header.update(block);
for (const chart of content.querySelectorAll("[data-fee-chart]")) {
chart.dispatchEvent(new Event("chart:destroy"));
}
content.textContent = "";
appendPane(content, "Mining", [createMinerPane(block)]);
appendPane(content, "Difficulty", [createDifficultyPane(block)]);
appendPane(content, "Rewards", [createRewardsPane(extras)]);
appendPane(content, "Block", [createTransactionPane(block)]);
appendPane(content, "Fees", [
createFeeChart(extras.feeRange, extras.avgFeeRate),
]);
}
return /** @type {const} */ ({
element,
update,
});
}