Immediately remove completed todos from the list

Problem to solve

  • When a to-do is marked as completed, the item remains on the To-Do List until the page is reloaded.
  • This allows users to easily undo their action, but leaves the UI in an unclear state.
  • This behavior will also complicate our work to implement live-reloading, as it will be unclear when to remove a completed todo from the list.

Proposal

  • When a todo changes state due to user action, immediately remove it from the view if it no longer matches the current filters.
    • Said another way, the list of todos shown in the To-Do List should always reflect the state as stored in the server
  • Show a toast providing feedback about the state change with a button to "Undo" the action if the user prefers.
  • (Nice to have) Use CSS transitions to gracefully remove the content to ensure users have sufficient feedback about how the content on the page is changing
Edited by Jeff Tucker