// Files app preferences, kept in localStorage and edited in Settings > Files. export interface FilesSettings { defaultViewMode: "list" | "grid"; showIcons: boolean; coloredIcons: boolean; defaultSortKey: "name" | "size" | "modified"; defaultSortDir: "asc" | "desc"; showHiddenFiles: boolean; showThumbnails: boolean; } export const DEFAULT_FILES_SETTINGS: FilesSettings = { defaultViewMode: "list", showIcons: true, coloredIcons: true, defaultSortKey: "name", defaultSortDir: "asc", showHiddenFiles: false, showThumbnails: true, }; export function loadFilesSettings(): FilesSettings { if (typeof window === "undefined") return DEFAULT_FILES_SETTINGS; try { const raw = localStorage.getItem("files-settings"); if (raw) return { ...DEFAULT_FILES_SETTINGS, ...JSON.parse(raw) }; } catch { /* ignore */ } return DEFAULT_FILES_SETTINGS; } export function saveFilesSettings(settings: FilesSettings) { localStorage.setItem("files-settings", JSON.stringify(settings)); // Dispatch custom event for same-tab listeners (StorageEvent only fires cross-tab) window.dispatchEvent(new CustomEvent("files-settings-changed")); }