mirror of
https://github.com/smittix/intercept.git
synced 2026-07-10 02:28:12 -07:00
refactor: registry-driven mode init dispatch in switchMode
A failing mode init now logs instead of aborting the remainder of switchMode (deliberate hardening; previously an exception skipped title/visuals updates). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+6
-86
@@ -4989,92 +4989,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Load interfaces and initialize visualizations when switching modes
|
// Load interfaces and initialize visualizations when switching modes
|
||||||
if (mode === 'wifi') {
|
const modeDef = window.INTERCEPT_MODES[mode];
|
||||||
refreshWifiInterfaces();
|
if (modeDef && typeof modeDef.init === 'function') {
|
||||||
initRadar();
|
try {
|
||||||
initWatchList();
|
modeDef.init();
|
||||||
// Initialize v2 WiFi components
|
} catch (err) {
|
||||||
if (typeof WiFiMode !== 'undefined') {
|
console.error(`Mode init failed for ${mode}:`, err);
|
||||||
WiFiMode.init();
|
|
||||||
}
|
|
||||||
} else if (mode === 'bluetooth') {
|
|
||||||
refreshBtInterfaces();
|
|
||||||
initBtRadar();
|
|
||||||
} else if (mode === 'aprs') {
|
|
||||||
checkAprsTools();
|
|
||||||
initAprsMap();
|
|
||||||
// Fix map sizing on mobile after container becomes visible
|
|
||||||
setTimeout(() => {
|
|
||||||
if (aprsMap) aprsMap.invalidateSize();
|
|
||||||
}, 100);
|
|
||||||
} else if (mode === 'satellite') {
|
|
||||||
initPolarPlot();
|
|
||||||
initSatelliteList();
|
|
||||||
} else if (mode === 'spystations') {
|
|
||||||
SpyStations.init();
|
|
||||||
} else if (mode === 'meshtastic') {
|
|
||||||
Meshtastic.init();
|
|
||||||
// Fix map sizing after container becomes visible
|
|
||||||
setTimeout(() => {
|
|
||||||
Meshtastic.invalidateMap();
|
|
||||||
}, 100);
|
|
||||||
} else if (mode === 'meshcore') {
|
|
||||||
MeshCore.init();
|
|
||||||
setTimeout(() => {
|
|
||||||
MeshCore.invalidateMap();
|
|
||||||
}, 100);
|
|
||||||
} else if (mode === 'sstv') {
|
|
||||||
SSTV.init();
|
|
||||||
setTimeout(() => {
|
|
||||||
if (typeof SSTV !== 'undefined' && SSTV.invalidateMap) SSTV.invalidateMap();
|
|
||||||
}, 120);
|
|
||||||
} else if (mode === 'weathersat') {
|
|
||||||
WeatherSat.init();
|
|
||||||
setTimeout(() => {
|
|
||||||
WeatherSat.invalidateMap();
|
|
||||||
}, 100);
|
|
||||||
} else if (mode === 'sstv_general') {
|
|
||||||
SSTVGeneral.init();
|
|
||||||
} else if (mode === 'gps') {
|
|
||||||
GPS.init();
|
|
||||||
} else if (mode === 'websdr') {
|
|
||||||
if (typeof initWebSDR === 'function') initWebSDR();
|
|
||||||
} else if (mode === 'subghz') {
|
|
||||||
SubGhz.init();
|
|
||||||
} else if (mode === 'bt_locate') {
|
|
||||||
BtLocate.init();
|
|
||||||
setTimeout(() => {
|
|
||||||
if (typeof BtLocate !== 'undefined' && BtLocate.invalidateMap) BtLocate.invalidateMap();
|
|
||||||
}, 100);
|
|
||||||
setTimeout(() => {
|
|
||||||
if (typeof BtLocate !== 'undefined' && BtLocate.invalidateMap) BtLocate.invalidateMap();
|
|
||||||
}, 320);
|
|
||||||
} else if (mode === 'wifi_locate') {
|
|
||||||
WiFiLocate.init();
|
|
||||||
} else if (mode === 'wefax') {
|
|
||||||
WeFax.init();
|
|
||||||
} else if (mode === 'spaceweather') {
|
|
||||||
SpaceWeather.init();
|
|
||||||
} else if (mode === 'waterfall') {
|
|
||||||
if (typeof Waterfall !== 'undefined') Waterfall.init();
|
|
||||||
} else if (mode === 'morse') {
|
|
||||||
MorseMode.init();
|
|
||||||
} else if (mode === 'radiosonde') {
|
|
||||||
initRadiosondeWaveform();
|
|
||||||
initRadiosondeMap();
|
|
||||||
setTimeout(() => {
|
|
||||||
if (radiosondeMap) radiosondeMap.invalidateSize();
|
|
||||||
}, 100);
|
|
||||||
} else if (mode === 'meteor') {
|
|
||||||
MeteorScatter.init();
|
|
||||||
} else if (mode === 'system') {
|
|
||||||
SystemHealth.init();
|
|
||||||
} else if (mode === 'ook') {
|
|
||||||
OokMode.init();
|
|
||||||
} else if (mode === 'drone') {
|
|
||||||
if (typeof DroneMode !== 'undefined') {
|
|
||||||
DroneMode.init();
|
|
||||||
setTimeout(() => { DroneMode.invalidateMap?.(); }, 100);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (requestId !== modeSwitchRequestId) return;
|
if (requestId !== modeSwitchRequestId) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user