ui: add Top20 button to market chart fullscreen toolbar
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -92,7 +92,10 @@
|
||||
const elVolRankMeta = document.getElementById("market-vol-rank-meta");
|
||||
const elVolRankList = document.getElementById("market-vol-rank-list");
|
||||
const elVolRankBtn = document.getElementById("market-vol-rank-btn");
|
||||
const elFsVolRankBtn = document.getElementById("market-fs-vol-rank-btn");
|
||||
const elVolRankSheet = document.getElementById("market-vol-rank-sheet");
|
||||
const elVolRankAnchor = document.getElementById("market-vol-rank-anchor");
|
||||
const elVolRankAnchorFs = document.getElementById("market-vol-rank-anchor-fs");
|
||||
const elTf = document.getElementById("market-timeframe");
|
||||
const elRefresh = document.getElementById("market-refresh");
|
||||
const elStatus = document.getElementById("market-status");
|
||||
@@ -952,6 +955,7 @@
|
||||
if (chartFullscreen) elFsExit.classList.remove("hidden");
|
||||
else elFsExit.classList.add("hidden");
|
||||
}
|
||||
mountVolRankSheet(chartFullscreen);
|
||||
if (chartFullscreen) {
|
||||
populateFsExchangeOptions();
|
||||
syncFsToolbarFromMain();
|
||||
@@ -2617,29 +2621,43 @@
|
||||
void postChartUnwatch();
|
||||
}
|
||||
|
||||
function mountVolRankSheet(forFullscreen) {
|
||||
if (!elVolRankSheet) return;
|
||||
const anchor = forFullscreen ? elVolRankAnchorFs : elVolRankAnchor;
|
||||
if (!anchor || elVolRankSheet.parentElement === anchor) return;
|
||||
anchor.appendChild(elVolRankSheet);
|
||||
}
|
||||
|
||||
function setVolRankBtnActive(btn, on) {
|
||||
if (!btn) return;
|
||||
btn.classList.toggle("is-active", on);
|
||||
btn.setAttribute("aria-expanded", on ? "true" : "false");
|
||||
}
|
||||
|
||||
function setVolRankSheetOpen(open) {
|
||||
const on = !!open;
|
||||
if (elVolRankSheet) {
|
||||
elVolRankSheet.classList.toggle("hidden", !on);
|
||||
elVolRankSheet.setAttribute("aria-hidden", on ? "false" : "true");
|
||||
}
|
||||
if (elVolRankBtn) {
|
||||
elVolRankBtn.classList.toggle("is-active", on);
|
||||
elVolRankBtn.setAttribute("aria-expanded", on ? "true" : "false");
|
||||
}
|
||||
setVolRankBtnActive(elVolRankBtn, on);
|
||||
setVolRankBtnActive(elFsVolRankBtn, on);
|
||||
if (on) void loadVolumeRank();
|
||||
}
|
||||
|
||||
function bindVolRankPanel() {
|
||||
if (!elVolRankBtn) return;
|
||||
elVolRankBtn.addEventListener("click", function () {
|
||||
function toggleVolRankSheet() {
|
||||
const open = elVolRankSheet && elVolRankSheet.classList.contains("hidden");
|
||||
setVolRankSheetOpen(open);
|
||||
});
|
||||
}
|
||||
if (elVolRankBtn) elVolRankBtn.addEventListener("click", toggleVolRankSheet);
|
||||
if (elFsVolRankBtn) elFsVolRankBtn.addEventListener("click", toggleVolRankSheet);
|
||||
document.addEventListener("pointerdown", function (ev) {
|
||||
if (!elVolRankSheet || elVolRankSheet.classList.contains("hidden")) return;
|
||||
const t = ev.target;
|
||||
if (elVolRankSheet.contains(t) || (elVolRankBtn && elVolRankBtn.contains(t))) return;
|
||||
if (elVolRankSheet.contains(t)) return;
|
||||
if (elVolRankBtn && elVolRankBtn.contains(t)) return;
|
||||
if (elFsVolRankBtn && elFsVolRankBtn.contains(t)) return;
|
||||
setVolRankSheetOpen(false);
|
||||
});
|
||||
}
|
||||
@@ -2694,8 +2712,9 @@
|
||||
(row.volume_label || "") +
|
||||
"</span>";
|
||||
btn.addEventListener("click", function () {
|
||||
if (!elSymbol || !row.symbol) return;
|
||||
elSymbol.value = row.symbol;
|
||||
if (!row.symbol) return;
|
||||
if (elSymbol) elSymbol.value = row.symbol;
|
||||
if (elFsSymbol) elFsSymbol.value = row.symbol;
|
||||
setVolRankSheetOpen(false);
|
||||
loadChart(false);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user