fix: make debug mode toggle work at runtime
All checks were successful
check / check (push) Successful in 13s
All checks were successful
check / check (push) Successful in 13s
The debug/insecure warning banner was only controlled by the compile-time DEBUG constant. The settings easter egg checkbox toggled state.debugMode and the runtime log flag, but neither index.js nor helpers.js checked these runtime values — the banner was created/updated based solely on the compile-time constant. Changes: - Extract banner logic into updateDebugBanner() in helpers.js that checks isDebug() (combines compile-time DEBUG and runtime debugMode) - Banner is dynamically created/removed: appears when debug is enabled, removed when disabled (no stale banners) - index.js init() syncs runtime debug flag from persisted state before first render, then delegates to updateDebugBanner() - settings.js calls updateDebugBanner() after the checkbox change so the banner immediately reflects the new state - Debug mode persists across popup close/reopen via state.debugMode Fixes the bug where the settings debug toggle had no visible effect.
This commit is contained in:
@@ -1,18 +1,19 @@
|
||||
// AutistMask popup entry point.
|
||||
// Loads state, initializes views, triggers first render.
|
||||
|
||||
const { DEBUG } = require("../shared/constants");
|
||||
const {
|
||||
state,
|
||||
saveState,
|
||||
loadState,
|
||||
currentNetwork,
|
||||
} = require("../shared/state");
|
||||
const { isDebug, setRuntimeDebug } = require("../shared/log");
|
||||
const { refreshPrices } = require("../shared/prices");
|
||||
const { refreshBalances } = require("../shared/balances");
|
||||
const {
|
||||
$,
|
||||
showView,
|
||||
updateDebugBanner,
|
||||
setRenderMain,
|
||||
pushCurrentView,
|
||||
goBack,
|
||||
@@ -209,21 +210,11 @@ async function init() {
|
||||
await loadState();
|
||||
applyTheme(state.theme);
|
||||
|
||||
const net = currentNetwork();
|
||||
if (DEBUG || net.isTestnet) {
|
||||
const banner = document.createElement("div");
|
||||
banner.id = "debug-banner";
|
||||
if (DEBUG && net.isTestnet) {
|
||||
banner.textContent = "DEBUG / INSECURE [TESTNET]";
|
||||
} else if (net.isTestnet) {
|
||||
banner.textContent = "[TESTNET]";
|
||||
} else {
|
||||
banner.textContent = "DEBUG / INSECURE";
|
||||
}
|
||||
banner.style.cssText =
|
||||
"background:#c00;color:#fff;text-align:center;font-size:10px;padding:1px 0;font-family:monospace;position:sticky;top:0;z-index:9999;";
|
||||
document.body.prepend(banner);
|
||||
}
|
||||
// Sync runtime debug flag from persisted state before first render
|
||||
setRuntimeDebug(state.debugMode);
|
||||
|
||||
// Create the debug/testnet banner if needed (uses runtime debug state)
|
||||
updateDebugBanner();
|
||||
|
||||
// Auto-default active address
|
||||
if (
|
||||
|
||||
Reference in New Issue
Block a user