+
+
{t("cycle.title")}
-
+
{t("cycle.subtitle")}
-
diff --git a/src/components/measurement-reminders/vorsorge-section.tsx b/src/components/measurement-reminders/vorsorge-section.tsx
index 945ef0fb0..43bd02fa6 100644
--- a/src/components/measurement-reminders/vorsorge-section.tsx
+++ b/src/components/measurement-reminders/vorsorge-section.tsx
@@ -65,7 +65,21 @@ function relativeDueKey(
return { key: "nextDue.inDays", days: deltaDays };
}
-export function VorsorgeSection({ enabled = true }: { enabled?: boolean }) {
+export function VorsorgeSection({
+ enabled = true,
+ variant = "settings",
+}: {
+ enabled?: boolean;
+ /**
+ * `"settings"` renders the compact `SettingsCardHeader` for the embedded
+ * settings card; `"page"` renders the canonical feature-page header
+ * (`
` + subtitle + primary add button) so the standalone `/vorsorge`
+ * surface matches its peers (labs, mood, medications, cycle). The
+ * add-entry affordance is identical in both — a primary button with a
+ * `Plus` glyph that toggles the inline create form.
+ */
+ variant?: "settings" | "page";
+}) {
const { t } = useTranslations();
const { data: reminders, isLoading } = useMeasurementReminders(enabled);
const { create, remove, satisfy } = useMeasurementReminderMutations();
@@ -116,28 +130,49 @@ export function VorsorgeSection({ enabled = true }: { enabled?: boolean }) {
);
}
+ // The shared primary add-entry affordance — identical in both variants so
+ // the control reads the same on the standalone page and the settings card.
+ const addButton = (
+ setShowForm((v) => !v)}
+ >
+
+ {t("measurementReminders.addButton")}
+
+ );
+
return (
- setShowForm((v) => !v)}
- >
-
- {t("measurementReminders.addButton")}
-
- }
- />
+ {variant === "page" ? (
+
+
+
+ {t("measurementReminders.sectionTitle")}
+
+
+ {t("measurementReminders.sectionDescription")}
+
+
+ {addButton}
+
+ ) : (
+
+ )}
{showForm && (