Spaces:
Sleeping
Sleeping
| 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)); | |
| } | |