mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-10 21:32:18 +00:00
Introduce a shared SettingsSectionFrame (the settings twin of the admin renderer's SectionFrame) that emits the canonical visible heading + subheading, and route all 19 settings sections through it. Every settings page now shows a real h1 + subtitle in the reference Übersicht style instead of an invisible sr-only title; the section bodies drop their own headings and off-style intro paragraphs (the explanatory copy folds into the frame subtitle). - Route the admin About page through SectionFrame so it carries the same visible heading as every other admin section. - Rename the AI settings section from KI-Auswertung to KI-Anbieter across six locales: the page configures the provider and key, not an analysis. - Add a heading-block spacer to the settings and admin sidebars so the first menu item lines up with the top of the first card. - Remove the always-on core-domains card from Module: a tracking area that can't be turned off doesn't need listing. - Move the proactive-coach control out of Benachrichtigungen into Coach. - Move admin module availability out of the Coach section into its own page: it gates every module, not just the coach. - Give the Layout Insights editor a proper Insights heading. Adds settings.sections.<slug>.subtitle and the new admin keys across all six locales; removes the now-unused module core-domain strings.
52 lines
2.0 KiB
TypeScript
52 lines
2.0 KiB
TypeScript
/**
|
|
* Server-safe constants for the v1.5 admin split. Mirrors the pattern in
|
|
* `src/components/settings/section-slugs.ts` so server-rendered code paths
|
|
* (`generateStaticParams()`, the page guard, route-existence tests) can
|
|
* import the slug list without dragging the `<AdminShell>` client bundle
|
|
* into the server graph.
|
|
*
|
|
* Order is the in-app navigation order — sidebar nav, mobile strip, and
|
|
* `generateStaticParams()` all consume it directly.
|
|
*/
|
|
|
|
export const ADMIN_SECTION_SLUGS = [
|
|
"system-status",
|
|
"general",
|
|
"services",
|
|
"integrations",
|
|
// v1.18.1 — the former `ai-quality`, `assistant`, and `coach-feedback`
|
|
// sections collapse into one "Coach" area. It holds the assistant
|
|
// surface toggles, the server-key operator config, and both
|
|
// feedback-quality tables (Coach + Insights). Three navigation entries
|
|
// for one coherent coach-quality concern read as clutter; one card opens
|
|
// the full picture.
|
|
"coach",
|
|
// v1.18.6 (W9) — server-wide module availability is its own section now
|
|
// (was stacked under Coach). It gates every module, not just the coach,
|
|
// so it reads better next to Coach than buried inside it.
|
|
"module-availability",
|
|
"feedback",
|
|
"reminders",
|
|
"users",
|
|
// v1.16.0 — registration invites get their own section. They started
|
|
// as a card inside Users, but the invite table (status, redemptions,
|
|
// revocation) is a workflow of its own and was drowning under the
|
|
// account list; "who may join" sits right next to "who is here".
|
|
"invites",
|
|
"api-tokens",
|
|
"login-overview",
|
|
"app-logs",
|
|
"backups",
|
|
"danger-zone",
|
|
// v1.4.36 W4e — About / version / update check folded into Admin
|
|
// Console. Lives at /admin/about; the legacy /settings/about route
|
|
// is unlinked from the user-card dropdown.
|
|
"about",
|
|
] as const;
|
|
|
|
export type AdminSectionSlug = (typeof ADMIN_SECTION_SLUGS)[number];
|
|
|
|
export function isAdminSectionSlug(value: string): value is AdminSectionSlug {
|
|
return (ADMIN_SECTION_SLUGS as readonly string[]).includes(value);
|
|
}
|