Tighten the setup flow after a review of the whole diff

The done screen moves focus to its heading like every other screen; the
confirm screen's preference list holds only dt/dd pairs and the settings
link stands beside it; Back from Q1 is not offered once the flow has
been entered, because the front door would resume past the welcome and
bounce straight back; the medication task records no target on the
ledger, as the contract says, and keeps the id on the screen; and the
two success affordances go through the outcome module rather than a
hand-rolled tick. The error-code catalogue lists the answers and restart
codes and no longer the retired step ones, and the session-surface guard
learns the one new deriving helper the onboarding pages read through.
This commit is contained in:
Marc-André Bombeck committed 2026-09-10 16:09:18 +02:00
1 parent 2686da2803
commit 8c7cdcfc2b
9 files changed
+78 -89

No files matched your search

@@ -4,6 +4,8 @@ import { useRouter } from "next/navigation";
import { toast } from "sonner";
import { ListChecks, Loader2 } from "lucide-react";
import { toastWrittenOutcome } from "@/components/outcome/outcome-toast";
import { Button } from "@/components/ui/button";
import { SettingsCard } from "@/components/settings/settings-card";
import { SettingsCardActions } from "@/components/settings/_card-actions";
@@ -40,12 +42,13 @@ export function SetupCard() {
}
function showChecklist() {
const hadState = resetChecklistDismissals();
toast.success(
hadState
? t("settings.setup.checklistShown")
: t("settings.setup.checklistNothingHidden"),
);
// Something was hidden and is back: a written outcome. Nothing was
// hidden: an empty one — there was nothing to bring back.
if (resetChecklistDismissals()) {
toastWrittenOutcome("success", t("settings.setup.checklistShown"));
} else {
toastWrittenOutcome("empty", t("settings.setup.checklistNothingHidden"));
}
}
return (