import type { ContentFieldDef } from "@/lib/content-registry"; /** * Reiter von Admin → Einstellungen und welche Inhaltsgruppen * (lib/content-registry.ts) sie tragen. "system" hat keine Inhaltsfelder, * sondern Anbindungsstatus und E-Mail-Test. */ export const SETTINGS_TABS = [ { id: "firma", groups: ["company", "shipping"] }, { id: "marke", groups: ["brand"] }, { id: "startseite", groups: ["home"] }, { id: "seiten", groups: ["pages"] }, { id: "social", groups: ["social"] }, { id: "recht", groups: ["legal"] }, { id: "system", groups: [] }, ] as const satisfies readonly { id: string; groups: readonly ContentFieldDef["group"][] }[]; export type SettingsTabId = (typeof SETTINGS_TABS)[number]["id"]; export const SETTINGS_PATH = "/admin/einstellungen"; /** Reiter aus ?reiter=…; alles Unbekannte (auch Mehrfachwerte) faellt auf den ersten Reiter zurueck. */ export function parseSettingsTab(value: string | string[] | undefined): SettingsTabId { const match = SETTINGS_TABS.find((tab) => tab.id === value); return match ? match.id : SETTINGS_TABS[0].id; } /** * Ziel nach dem Speichern: derselbe Reiter. Der group-Wert kommt aus dem * Formular und ist damit Nutzereingabe — nur bekannte Gruppen fuehren zu * einem Reiter, alles andere zur Uebersicht. */ export function settingsPathForGroup(group: string): string { const tab = SETTINGS_TABS.find((t) => (t.groups as readonly string[]).includes(group)); return tab ? `${SETTINGS_PATH}?reiter=${tab.id}` : SETTINGS_PATH; }