Carry the setup answers into the checklist, Settings and the module pages

The getting-started checklist reads the answers: a visit named within a
month adds a "prepare the visit" row that is done once one is on the
calendar, and the data-source row names the wearable that was chosen.
Its per-browser state moves to one module so the done screen, the skip
and Settings write the same keys.

Settings → Account gains the two ways back in: "Set up again" through
the restart route, which resets the ledger, keeps the answers as
prefill and touches no module; and "Show the checklist again", which
forgets what this browser hid.

A page whose module is off now answers with the shared notice and the
one action that helps, in one place for every module page: the shell
maps the route to the module through the navigation model's own gate,
so a page and its nav entry cannot disagree about which switch they
follow. And the tour's two dead stops get their anchors on the
integrations and health-record group headings.
This commit is contained in:
Marc-André Bombeck committed 2026-09-10 15:41:06 +02:00
1 parent a062610895
commit ec82ad3a93
13 files changed
+325 -16

No files matched your search

+8
View File
@@ -53,6 +53,12 @@ interface SectionHeadingProps {
action?: ReactNode;
/** Optional id on the `<h2>`, e.g. for an `aria-labelledby` link. */
id?: string;
/**
* Stable spotlight-tour anchor, rendered as `data-tour-id` on the root.
* The nav model carries the same field for its entries; a stop whose
* anchor is a settings group heading names it here.
*/
tourId?: string;
className?: string;
}
@@ -62,11 +68,13 @@ export function SectionHeading({
subtitle,
action,
id,
tourId,
className,
}: SectionHeadingProps) {
return (
<div
data-slot="section-heading"
data-tour-id={tourId}
className={cn(
"flex flex-wrap items-center justify-between gap-2",
className,