Fix 15 UX friction points across modals, navigation, and accessibility
Build and push image / build (push) Successful in 49s

Addresses bulk operation safety (confirmation for consume/gone), drawer
action hierarchy, exit animations, sidebar action distinction, toast
dismissibility and ARIA, retry affordance, sort direction toggle,
sequential audit queue from dashboard, mobile nav separation, price label
disambiguation, grouped-view sort consistency, footer context hints, bin
deletion feedback, segmented control ARIA, and drawer focus trapping.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-08 10:44:19 -04:00
parent 3bdf857099
commit 00a76a10d7
16 changed files with 356 additions and 78 deletions
+4 -2
View File
@@ -166,7 +166,9 @@ export function ConsumeFlow({
</div>
<ModalFooter>
<div />
<div style={{ fontSize: 12, color: "var(--ink-3)" }}>
{item ? `Lasted ${lifespan} day${lifespan === 1 ? "" : "s"} from purchase.` : ""}
</div>
<div style={{ display: "flex", gap: 8 }}>
<Btn variant="ghost" onClick={onClose}>Cancel</Btn>
<Btn
@@ -175,7 +177,7 @@ export function ConsumeFlow({
disabled={finish.isPending || !item}
onClick={() => finish.mutate()}
>
{finish.isPending ? "Saving…" : "Mark consumed"}
{finish.isPending ? "Saving…" : error ? "Try again" : "Mark consumed"}
</Btn>
</div>
</ModalFooter>