Part of PAR-357. Needs the Toast primitive from the design-system task.
Problem
- Feedback text moves the layout. Feedback after actions is inline text that shifts it:
- "Saving…" / "Saved." under forms (
DS/Form/Form.tsx:133-137)
- "Comment added." under the composer
- "Saving…" / "Saved." StateBlocks above the grid after a drag
- "Updating results…" under filters
- an "Undo deleted view" button that appears inline
- The new-issue banner "PAR-123 created" appears at the top of the form.
- Archive has no safety net. It runs on one click from the issue header with no confirmation or undo (
issues/[ref]/page.tsx:130-136).
Do
- Add a global toaster in the bottom-left: success with an optional action (View, Undo), error with Retry, and a loading → success promise toast for slow actions.
- Give these an Undo:
- archive
- delete view
- bulk edits
- status changes made with keyboard shortcuts
- removing a label
- Remove every inline Saving/Saved message; pending state lives on the control itself (spinner in the pill or button).
- Show a "Saved" check in the issue header only for autosaving description edits.
PR: https://github.com/ParadauxIO/taskl.ie/pull/74 — archive, bulk and delete-view undo already existed; added undo for removing an issue from a milestone. Triage decisions have no backend inverse; shortcut status changes and label removal not covered.