const SETTINGS_KEY = 'decidron-simulator-settings'; export const LAYOUT_MODES = { RANDOM: 'random', FIXED_SEED: 'fixed-seed', EXPLICIT: 'explicit', }; /** Right-column panels in fixed top-to-bottom order. */ export const PANEL_KEYS = ['sensorInput', 'commands', 'results', 'stats']; export const PANEL_LABELS = { sensorInput: 'Sensor Input', commands: 'Processing Commands', results: 'Latest Run Results', stats: 'Performance Statistics', }; export const DEFAULT_SETTINGS = { layoutMode: LAYOUT_MODES.RANDOM, panels: { sensorInput: true, commands: true, results: true, stats: true, }, }; export function loadSettings() { try { const raw = localStorage.getItem(SETTINGS_KEY); if (!raw) return { ...DEFAULT_SETTINGS, panels: { ...DEFAULT_SETTINGS.panels } }; const parsed = JSON.parse(raw); return { layoutMode: Object.values(LAYOUT_MODES).includes(parsed.layoutMode) ? parsed.layoutMode : DEFAULT_SETTINGS.layoutMode, panels: { ...DEFAULT_SETTINGS.panels, ...(parsed.panels || {}), }, }; } catch { return { ...DEFAULT_SETTINGS, panels: { ...DEFAULT_SETTINGS.panels } }; } } export function saveSettings(settings) { localStorage.setItem(SETTINGS_KEY, JSON.stringify(settings)); }