fix(ux): confirm modal's Cancel/Confirm were dead on the promise-API path
Release / build-and-push (push) Successful in 3m29s
Release / build-and-push (push) Successful in 3m29s
User report: the Purge Archived dialog ('Permanently delete all
archived items?...') opened, and Cancel did nothing — and Confirm
would have been equally dead, leaving the page stuck behind the
overlay until a reload.
Root cause: confirm.ts wired the modal's buttons ONLY inside the
htmx:confirm interceptor. confirmDialog() — the promise API used by
purgeArchivedItems, remove-account, and other TS call sites — never
wired them. So whenever a page's first confirm interaction came from
the promise path (no hx-confirm element clicked first), both buttons
had no listeners. The 2026-10-30 confirm_probe spec only exercised the
hx-confirm path, which is why it survived.
Fix: wireButtons() now runs at module init (the header renders before
deferred modules) and inside confirmDialog() — both idempotent via the
existing data-wired guard.
Pinned by tests/ui/promise_confirm_probe.spec.ts (no env gating): the
purge POST is route-intercepted, so the probe asserts Cancel closes
the modal and Confirm issues the guarded request without deleting any
dev data. hx-confirm path re-pinned green (confirm_probe with BH_FEED).
Verified manually at 390x844: open -> cancelWired=true -> Cancel
closes -> Confirm fires the intercepted request.
This commit is contained in:
1 parent
04e855e691
commit
2165829d0e
3 files changed
+74
-1
No files matched your search
@@ -40,6 +40,15 @@ Gate: every line below executes for BOTH personas unless marked
|
||||
- Row 23 chains by page navigation — assert the URL becomes the next
|
||||
episode's reader and progress carries over.
|
||||
|
||||
## 2026-11-02 — promise-API confirm probe
|
||||
|
||||
`promise_confirm_probe.spec.ts` (no env gating): the confirmDialog()
|
||||
promise path (purge archived, remove account, …) must wire the global
|
||||
modal's buttons even when no hx-confirm element fired first — the
|
||||
Purge All Archived dialog opened with dead Cancel/Confirm otherwise
|
||||
(user report; confirm.ts now wires at init + on every confirmDialog).
|
||||
The probe intercepts the purge POST, so nothing is deleted.
|
||||
|
||||
## 2026-10-30 — round-3 regression probes (live-server, env-gated)
|
||||
|
||||
Two specs added against a RUNNING dev server (skip unless
|
||||
|
||||
Reference in new issue
Block a user