mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-10 05:12:14 +00:00
Surface a dedicated settings section for enabling and disabling the secondary tracking domains (mood, sleep, glucose, workouts, recovery, labs, achievements, coach, insights, doctor report, cycle). Each row carries an icon, label, and one-line description with a switch bound to the resolved module map on /auth/me; toggling PATCHes /api/auth/me/modules and invalidates the auth/me query so the navigation, Insights pills, and dashboard tiles re-gate live. Core domains (weight, blood pressure, pulse, medications) render as a read-only always-on group. The entry sits right below Account in the settings navigation.
47 lines
2.0 KiB
TypeScript
47 lines
2.0 KiB
TypeScript
/**
|
|
* Query keys — settings + notification surfaces, version/meta reads,
|
|
* gamification, share links, and feature flags.
|
|
* Part of the centralized factory; aggregated in `./index.ts`.
|
|
*/
|
|
export const settingsKeys = {
|
|
gamificationAchievements: () => ["gamification", "achievements"] as const,
|
|
|
|
notificationsPreferences: () => ["notifications", "preferences"] as const,
|
|
notificationsStatus: () => ["notifications", "status"] as const,
|
|
|
|
settingsGlobalServices: () => ["settings", "global-services"] as const,
|
|
settingsNtfy: () => ["settings", "ntfy"] as const,
|
|
/** v1.17.1 — generic-webhook channel config. */
|
|
settingsWebhook: () => ["settings", "webhook"] as const,
|
|
/** v1.17.1 — SMTP / email channel config. */
|
|
settingsEmail: () => ["settings", "email"] as const,
|
|
settingsReminderThresholds: () =>
|
|
["settings", "reminder-thresholds"] as const,
|
|
|
|
/** v1.8.5 — user-level injection-site preferences (global exclusion). */
|
|
injectionSitePrefs: () => ["settings", "injection-site-prefs"] as const,
|
|
|
|
/**
|
|
* v1.18.0 — the per-user module enable/disable map behind
|
|
* `GET/PATCH /api/auth/me/modules`. Used as the Module-hub mutation key;
|
|
* the resolved map itself rides on `authMe()` (the `/auth/me` payload),
|
|
* so the toggle mutation invalidates `authMe()` to re-gate the nav,
|
|
* Insights pills, and dashboard tiles in lockstep.
|
|
*/
|
|
modulesPrefs: () => ["settings", "modules"] as const,
|
|
|
|
apiVersion: () => ["api", "version"] as const,
|
|
publicVersion: () => ["public", "version"] as const,
|
|
/** v1.15.12 H1 — admin overview "update available" check against the
|
|
* latest GitHub release tag (best-effort, day-stale). */
|
|
versionUpdateCheck: () => ["version", "update-check"] as const,
|
|
researchMode: () => ["research-mode"] as const,
|
|
|
|
/** v1.11.0 — owner's clinician share links (Settings → Sharing). */
|
|
shareLinks: () => ["share-links"] as const,
|
|
|
|
featureFlags: () => ["feature-flags"] as const,
|
|
|
|
bugreportStatus: () => ["bugreport", "status"] as const,
|
|
};
|