fix(settings): finish the D0-D8 settings/admin frame cleanup

- Drop the leading blurb paragraph from the Channels + Integrations
  connection panels so each body starts at its first card (D0 alignment).
- Correct three stale CORE/always-on comments: medications has been a
  fail-open toggleable module since D3; CORE is now weight/BP/pulse only.
- Remove the dead variant/isSubtab branch from SourcesSection — no callers
  after the D4 split; render the standalone header unconditionally.
- Render the admin AI-quality card frame + header once and branch only the
  body across loading/error/empty/data, matching the coach-feedback card.
- Rename the Coach activation card's section id from the legacy
  settings-ai-* namespace to settings-coach-activate-* after the S5 move.
- Gate the medication low-stock reminder card on the medications module so
  it hides when the account turns medications off, mirroring mood/coach.
This commit is contained in:
Marc-André Bombeck committed 2026-06-16 23:12:36 +02:00
1 parent a3217ff767
commit dadb6e2d34
8 files changed
+99 -122

No files matched your search

@@ -242,10 +242,6 @@ export function ConnectionsPanel() {
return (
<div className="space-y-6" data-slot="connections-panel">
<p className="text-muted-foreground text-sm">
{t("settings.sections.integrations.connections.description")}
</p>
<WithingsCard viewModel={withingsViewModel} />
<WhoopCard viewModel={whoopViewModel} />
<FitbitCard viewModel={fitbitViewModel} />
@@ -18,7 +18,6 @@
import { useQuery } from "@tanstack/react-query";
import { useAuth } from "@/hooks/use-auth";
import { useTranslations } from "@/lib/i18n/context";
import { queryKeys } from "@/lib/query-keys";
import { NotificationStatusCard } from "@/components/settings/notification-status-card";
import { NtfyCard } from "@/components/settings/ntfy-card";
@@ -37,7 +36,6 @@ interface GlobalServiceAvailability {
}
export function NotificationChannelsPanel() {
const { t } = useTranslations();
const { isAuthenticated } = useAuth();
const { data: globalServices } = useQuery({
@@ -54,10 +52,6 @@ export function NotificationChannelsPanel() {
return (
<div className="space-y-6" data-slot="notification-channels-panel">
<p className="text-muted-foreground text-sm">
{t("settings.sections.integrations.channels.description")}
</p>
<NotificationStatusCard />
{/* v1.4.27 MB3 — `scroll-mt-28` keeps each channel card's anchor