mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-12 14:16:12 +00:00
The Insights overview customise surface now has a home in Settings, analogous to the Dashboard section. It hosts two blocks: - "Arrange the overview" embeds the inline section show/hide + order editor, persisting to insightsLayoutJson.sections. - "Sort the navigation pills" is a dedicated drag-reorder control for the tab-strip pills, persisting to insightsLayoutJson.tiles[].order — a field already separate from the section order in layout v2, so the two concerns stay independent. Both write through the existing /api/insights/layout contract the tab strip and overview share. Wire the new slug into the settings registry, the section router, the mobile/desktop nav, and the placeholder icon map. Adds the section copy and the pill-sort + overview-arrange strings across all six locales.
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
/**
|
|
* Server-safe constants for the v1.4 settings split. Kept in a separate
|
|
* module from `<SettingsShell>` (a client component) so server-rendered code
|
|
* paths — `generateStaticParams()`, the page guard, future tests — can import
|
|
* the slug list without dragging the whole client bundle into the server
|
|
* graph.
|
|
*/
|
|
|
|
// v1.8.7.1 — `thresholds` (Targets) and `sources` (Sources) are again two
|
|
// separate settings pages, each its own left-nav entry and route. They were
|
|
// merged into one "Targets & Sources" page in v1.4.34 IW-D, but the two
|
|
// editors drive distinct mutation flows (`/api/user/thresholds` vs
|
|
// `/api/auth/me/source-priority`) and reading them as one page made the
|
|
// surface long; splitting them back keeps each concern self-contained.
|
|
// Both slugs are served by the dynamic `[section]` route below.
|
|
export const SETTINGS_SECTION_SLUGS = [
|
|
"account",
|
|
"integrations",
|
|
"notifications",
|
|
"dashboard",
|
|
"insights",
|
|
"thresholds",
|
|
"sources",
|
|
"ai",
|
|
"api",
|
|
"export",
|
|
"advanced",
|
|
"about",
|
|
] as const;
|
|
|
|
export type SettingsSectionSlug = (typeof SETTINGS_SECTION_SLUGS)[number];
|
|
|
|
export function isSettingsSectionSlug(
|
|
value: string,
|
|
): value is SettingsSectionSlug {
|
|
return (SETTINGS_SECTION_SLUGS as readonly string[]).includes(value);
|
|
}
|