What
Deleting a card should show a short "Card deleted — Undo" toast for a few seconds instead of removing it irreversibly on the spot.
Why
The delete button is one click and there is no confirmation. One slip and the card (title, description, category) is gone. A confirm dialog would slow down the common case; undo is the friendlier pattern.
Suggested approach
Simplest version keeps the server untouched: delay the actual DELETE call.
public/app.js — on delete, remove the card from the UI immediately, show a small toast with an Undo button, and only call DELETE /api/cards/:id (see the existing handler around the api("DELETE", ...) call) after ~5s. If Undo is clicked, cancel the timer and re-render — nothing was ever deleted server-side, so the card keeps its id and position.
public/style.css — a fixed-position toast at the bottom, styled for both themes.
Edge case worth handling: if the user deletes a second card while a toast is pending, flush the first delete right away.
Acceptance criteria
Good first issue — frontend only, no server changes.
What
Deleting a card should show a short "Card deleted — Undo" toast for a few seconds instead of removing it irreversibly on the spot.
Why
The delete button is one click and there is no confirmation. One slip and the card (title, description, category) is gone. A confirm dialog would slow down the common case; undo is the friendlier pattern.
Suggested approach
Simplest version keeps the server untouched: delay the actual
DELETEcall.public/app.js— on delete, remove the card from the UI immediately, show a small toast with an Undo button, and only callDELETE /api/cards/:id(see the existing handler around theapi("DELETE", ...)call) after ~5s. If Undo is clicked, cancel the timer and re-render — nothing was ever deleted server-side, so the card keeps its id and position.public/style.css— a fixed-position toast at the bottom, styled for both themes.Edge case worth handling: if the user deletes a second card while a toast is pending, flush the first delete right away.
Acceptance criteria
Good first issue — frontend only, no server changes.