You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Destructive actions currently behave three different ways, one has no confirmation at all, and one is missing entirely:
Recipe-row removal uses a click-to-arm confirm (routes/block.$id.tsx).
Task/subtask/note deletion and project removal use raw window.confirm (routes/tasks.tsx, components/project-switcher.tsx).
Companion-mod Remove fires immediately with no confirmation (components/companion-mod-card.tsx).
There is no UI path to delete a non-empty block: deleteBlockFn is only reachable through tab-close, which silently deletes empty blocks only (routes/block.tsx).
What to do
Pick one pattern per severity and apply it everywhere: small reversible deletes (recipe row, note, subtask) happen immediately with no confirm — the undo system (Undo system: trigger-based undo log with multi-level Ctrl+Z #90) covers regret, with a brief post-delete toast whose Undo button is just a shortcut to it; big deletes (block, project, companion mod) get a proper confirm dialog (shadcn AlertDialog, not window.confirm) that names what's being deleted.
Add an explicit Delete block action (block context menu and/or the block page) that works for non-empty blocks, with the confirm dialog stating the recipe/goal count being destroyed.
Destructive actions currently behave three different ways, one has no confirmation at all, and one is missing entirely:
routes/block.$id.tsx).window.confirm(routes/tasks.tsx,components/project-switcher.tsx).components/companion-mod-card.tsx).deleteBlockFnis only reachable through tab-close, which silently deletes empty blocks only (routes/block.tsx).What to do
window.confirm) that names what's being deleted.Part of the polish epic #35.