practice live-test fixes — scroll containers, session math delimiters, header guidance, sweep heartbeat (owner live test 2026-09-29)

This commit is contained in:
amosblomqvist
2026-09-29 21:03:46 +03:00
parent 88eb4b2ec0
commit ddce919f9b
5 changed files with 38 additions and 10 deletions
+3 -1
View File
@@ -85,7 +85,8 @@ export function PracticeExamBody({
const answerable = set.problems.filter((p) => !p.grade);
const anyDraft = answerable.some((p) => (drafts[p.id] ?? p.answer ?? "") !== "");
return (
<div className="mx-auto flex w-full max-w-3xl flex-col gap-6 p-6" data-testid="practice-exam">
<div className="h-dvh overflow-y-auto" data-testid="practice-exam-scroll">
<div className="mx-auto flex w-full max-w-3xl flex-col gap-6 p-6" data-testid="practice-exam">
<div className="flex flex-col gap-1">
<h1 className="font-title text-3xl tracking-tight">{set.title}</h1>
<p className="text-xs text-muted-foreground/80" data-testid="practice-exam-levels">
@@ -177,6 +178,7 @@ export function PracticeExamBody({
)}
</div>
)}
</div>
</div>
);
}
+3 -1
View File
@@ -35,7 +35,8 @@ export function PracticeListBody({
onNew: () => void;
}) {
return (
<div className="mx-auto flex w-full max-w-3xl flex-col gap-3 p-6" data-testid="practice-list">
<div className="h-dvh overflow-y-auto" data-testid="practice-list-scroll">
<div className="mx-auto flex w-full max-w-3xl flex-col gap-3 p-6" data-testid="practice-list">
<div className="flex items-center justify-between">
<h1 className="font-title text-3xl tracking-tight">Practice</h1>
<button
@@ -97,6 +98,7 @@ export function PracticeListBody({
})}
</div>
</div>
</div>
);
}