import type { TranslationKey } from "@/lib/i18n"; export const DASHBOARD_SECTION_SETTINGS = [ { id: "weatherBrief", titleKey: "settings.dashboardSections.weatherBrief.title", descriptionKey: "settings.dashboardSections.weatherBrief.description", defaultVisible: true, }, { id: "featuredStations", titleKey: "settings.dashboardSections.featuredStations.title", descriptionKey: "settings.dashboardSections.featuredStations.description", defaultVisible: false, }, ] as const satisfies ReadonlyArray<{ id: string; titleKey: TranslationKey; descriptionKey: TranslationKey; defaultVisible: boolean; }>; export type DashboardSectionId = typeof DASHBOARD_SECTION_SETTINGS[number]["id"]; export type DashboardSectionVisibility = Record; export const DEFAULT_DASHBOARD_SECTION_VISIBILITY = DASHBOARD_SECTION_SETTINGS.reduce((visibility, section) => ({ ...visibility, [section.id]: section.defaultVisible, }), {} as DashboardSectionVisibility); export function normalizeDashboardSectionVisibility(value: unknown): DashboardSectionVisibility { const stored = value && typeof value === "object" ? value as Partial> : {}; return DASHBOARD_SECTION_SETTINGS.reduce((visibility, section) => ({ ...visibility, [section.id]: typeof stored[section.id] === "boolean" ? stored[section.id] : section.defaultVisible, }), {} as DashboardSectionVisibility); }