[fix](trx-frontend-http): fix WEFAX toggle button and bookmark decoder wiring
Per-entry caching in _ensureDecoderToggles prevents stale guard from blocking re-scan. Direct syncWefaxToggle path ensures dataset.enabled stays current for bookmark prefill. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
@@ -469,10 +469,11 @@ let decodeHistoryRetentionMin = 24 * 60;
|
||||
// field name (e.g. "ft8_decode_enabled"). Lazily populated on first SSE.
|
||||
const _decoderToggles = {};
|
||||
function _ensureDecoderToggles() {
|
||||
if (Object.keys(_decoderToggles).length > 0) return;
|
||||
if (decoderRegistry.length === 0) return;
|
||||
for (const d of decoderRegistry) {
|
||||
if (d.activation !== "toggle") continue;
|
||||
const key = d.id.replace(/-/g, "_") + "_decode_enabled";
|
||||
if (_decoderToggles[key]) continue;
|
||||
const el = document.getElementById(d.id + "-decode-toggle-btn");
|
||||
if (el) _decoderToggles[key] = { el, last: null, label: d.label };
|
||||
}
|
||||
@@ -3368,6 +3369,10 @@ function render(update) {
|
||||
for (const [key, entry] of Object.entries(_decoderToggles)) {
|
||||
syncDecoderToggle(entry, !!update[key], entry.label);
|
||||
}
|
||||
// WEFAX toggle sync (plugin-owned, belt-and-suspenders alongside _decoderToggles).
|
||||
if (typeof update.wefax_decode_enabled === "boolean" && window.syncWefaxToggle) {
|
||||
window.syncWefaxToggle(update.wefax_decode_enabled);
|
||||
}
|
||||
// Recorder state sync.
|
||||
if (typeof update.recorder_enabled === "boolean" && window._syncRecorderState) {
|
||||
window._syncRecorderState(update.recorder_enabled);
|
||||
|
||||
Reference in New Issue
Block a user