Toast action results and confirm destructive actions in one dialog

Inline banners and per-row status text reported action results all over
the app; they are replaced by a small toast stack (bottom-right, Level 3
floating well styling) that only speaks for actions: successes fade,
errors stay until dismissed, and form-field validation stays inline.

Destructive actions no longer use bespoke inline confirm steps (the
library detail's Confirm delete button) or fire immediately (duplicate
copies/items, delete page selections, temp cleanup, upload discard, job
cancellation): they all go through one promise-based confirm dialog
(confirmAction) with a danger variant, Escape/backdrop to cancel.
This commit is contained in:
2026-09-17 22:19:54 -05:00
parent 1053e3ee55
commit e97c3b9da0
21 changed files with 430 additions and 287 deletions
+2 -1
View File
@@ -129,7 +129,8 @@ Files now stage first and are resolved before entering the library.
- [x] 18+ entry screen: an age check gates the app before anything renders
(remembered per browser in `localStorage`)
- [ ] Toasts instead of inline messages / confirm dialogs
- [x] Toasts for action results (success/error) plus a shared confirm dialog for
destructive actions; form-field validation stays inline
- [ ] Mobile drawer polish for metadata panels (design spec §layout)
- [x] Profile pictures: staff Users page sets avatars from library J-IDs
(self-service picker in Account still pending)