diff --git a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/app.js b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/app.js index 80cc958..2c96d5c 100644 --- a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/app.js +++ b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/app.js @@ -927,10 +927,7 @@ function drawSignalOverlay() { } } - const _bwCenterHz = (typeof vchanIsOnVirtual === "function" && vchanIsOnVirtual() && - typeof vchanActiveChannel === "function") - ? (vchanActiveChannel()?.freq_hz ?? lastFreqHz) - : lastFreqHz; + const _bwCenterHz = activeBandwidthCenterHz(); if (_bwCenterHz != null && currentBandwidthHz > 0) { for (const spec of visibleBandwidthSpecs(_bwCenterHz)) { const span = displaySpanForBandwidthSpec(spec); @@ -1298,6 +1295,11 @@ function activeChannelFreqHz() { return lastFreqHz; } +function activeBandwidthCenterHz() { + const freqHz = activeChannelFreqHz(); + return Number.isFinite(freqHz) ? freqHz : lastFreqHz; +} + function buildRdsOverlayHtml(rds) { const ps = rds?.program_service; const hasPs = !!(ps && ps.length > 0); @@ -7791,12 +7793,13 @@ if (overviewCanvas) { // ── BW strip edge hit-test (CSS pixels) ────────────────────────────────────── function getBwEdgeHit(cssX, cssW, range) { - if (!lastFreqHz || !currentBandwidthHz || !lastSpectrumData) return null; + const bwCenterHz = activeBandwidthCenterHz(); + if (!Number.isFinite(bwCenterHz) || !currentBandwidthHz || !lastSpectrumData) return null; const HIT = 8; let bestEdge = null; let bestDist = Number.POSITIVE_INFINITY; - for (const spec of visibleBandwidthSpecs(lastFreqHz)) { + for (const spec of visibleBandwidthSpecs(bwCenterHz)) { const span = displaySpanForBandwidthSpec(spec); const xL = ((span.loHz - range.visLoHz) / range.visSpanHz) * cssW; const xR = ((span.hiHz - range.visLoHz) / range.visSpanHz) * cssW;