Back to compare picker

Restore from trash vs Undo vs Destructive action confirmation vs Draft state

Use restore from trash when deletion removes an object from normal views but preserves it in a recoverable deleted-items area for a known retention period.

Decision dimensions

Dimension Restore from trashUndoDestructive action confirmationDraft state
UI or UX UI + UX - Durable deleted-object recoveryUX - Post-action recovery behaviorUI + UX - Final destructive commit reviewUI + UX - Unpublished object version lifecycle
UI guidance Show deleted objects in a dedicated trash, recycle bin, deleted-files, or recoverable-items surface with object name, type, original location, deletion date, deleted-by actor, and remaining recovery window.Show a named recovery affordance after the completed action, such as Undo delete for a specific task, near the result or in a consistent status region.Render a destructive confirmation after the user invokes a destructive command, with a title and final action button that repeat the destructive verb and target, such as Delete workspace or Cancel subscription.Label the current version explicitly as Draft, Unpublished changes, Published, Active, Locked, or Unavailable, and place that label near the object title, list row, editor header, and publish actions.
UX guidance Use restore from trash when users may discover a mistaken deletion after leaving the original workflow and need a durable way to recover the object.Let users move quickly through frequent reversible actions, then recover from mistakes after seeing the result.Use destructive action confirmation to create one informed stop before permanent or externally visible loss, not to slow every routine cleanup action.Use draft state when users need to pause work on an object, return later, and decide whether to publish, activate, discard, or keep editing an unpublished version.
Good UI A Deleted files table lists Quarterly budget.xlsx with original folder Finance/Q2, deleted yesterday by Maya, 29 days left, and a Restore to Finance/Q2 action.Deleting Quarterly report removes it from the list and shows a recovery panel saying Quarterly report deleted with an Undo task button.Delete Payments project? lists 4 dashboards, 12 saved views, 3 webhooks, and 8 shared links, offers Keep project, and labels the danger action Delete Payments project.A knowledge article header says Draft saved today, shows the currently published title, and offers Resume draft, Compare with published, Discard draft, and Publish.
Bad UI A trash page lists File 1, File 2, and File 3 with no path, deletion time, owner, or recovery deadline.A tiny x removes an item with no object-specific recovery label.A modal says Are you sure? with OK and Cancel after the user clicks Delete, without naming the project or what disappears.An editor opens directly into draft text but the header only says Saved, so users cannot tell whether viewers see the changes.
Good UX A user opens Trash, filters to spreadsheets deleted this week, previews the original folder, restores one file, and gets a link to the restored location.Undo restores the deleted task to the list and reports Quarterly report restored.A user opens Delete workspace, reviews the object count and webhooks, cancels, and returns to the same workspace with nothing changed.A user opens a published article that has an unpublished version, chooses Resume draft, reviews a change summary, publishes, and sees the page become visible to viewers.
Bad UX A user restores a shared folder but cannot find it because permissions or parent location changed silently.A second delete overwrites the first recoverable item without explaining which action Undo affects.A user confirms deletion because OK looks like the primary next step, then discovers shared links and child reports were lost.A user closes an editor after seeing Saved, later discovers the page was never published, and cannot find the draft in the content list.
Best fit Deleted objects remain recoverable after the user leaves the original workflow.The action is common and mistakes are likely.A user has initiated a destructive command that can permanently remove, revoke, reset, deactivate, or cancel something valuable.Users create or edit objects that should not become visible, active, submitted, or externally effective until a later action.
Avoid when The action is immediately reversible through a short undo window and no durable recovery surface exists.The action has external side effects that cannot be recalled.The action is a routine reversible archive, hide, dismiss, move, reorder, or trash move.The change is a small one-field edit that should be saved or canceled immediately.
Required state Normal active-object state before deletion.Normal state before the user action.Idle state where the destructive command is visible but not committed.Published or active state with no draft.
Accessibility burden Expose deleted item name, type, original location, retention deadline, and restore availability as text in each row.Make the undo control keyboard reachable and programmatically identifiable.Use alertdialog semantics or platform equivalent when the destructive decision requires an immediate response.Expose Draft, Published, Unpublished changes, Locked, and Unavailable as text in the page title area and list rows, not only by color or icon.
Common misuse Showing deleted objects without enough metadata to identify the right item.Offering undo for an action that cannot actually be reversed.Using a vague Are you sure prompt that does not name the object, count, or consequence.Using Saved to mean both saved draft and published content.

Restore from trash

UI or UX
UI + UX - Durable deleted-object recovery
UI guidance
Show deleted objects in a dedicated trash, recycle bin, deleted-files, or recoverable-items surface with object name, type, original location, deletion date, deleted-by actor, and remaining recovery window.
UX guidance
Use restore from trash when users may discover a mistaken deletion after leaving the original workflow and need a durable way to recover the object.
Good UI
A Deleted files table lists Quarterly budget.xlsx with original folder Finance/Q2, deleted yesterday by Maya, 29 days left, and a Restore to Finance/Q2 action.
Bad UI
A trash page lists File 1, File 2, and File 3 with no path, deletion time, owner, or recovery deadline.
Good UX
A user opens Trash, filters to spreadsheets deleted this week, previews the original folder, restores one file, and gets a link to the restored location.
Bad UX
A user restores a shared folder but cannot find it because permissions or parent location changed silently.
Best fit
Deleted objects remain recoverable after the user leaves the original workflow.
Avoid when
The action is immediately reversible through a short undo window and no durable recovery surface exists.
Required state
Normal active-object state before deletion.
Accessibility burden
Expose deleted item name, type, original location, retention deadline, and restore availability as text in each row.
Common misuse
Showing deleted objects without enough metadata to identify the right item.

Undo

UI or UX
UX - Post-action recovery behavior
UI guidance
Show a named recovery affordance after the completed action, such as Undo delete for a specific task, near the result or in a consistent status region.
UX guidance
Let users move quickly through frequent reversible actions, then recover from mistakes after seeing the result.
Good UI
Deleting Quarterly report removes it from the list and shows a recovery panel saying Quarterly report deleted with an Undo task button.
Bad UI
A tiny x removes an item with no object-specific recovery label.
Good UX
Undo restores the deleted task to the list and reports Quarterly report restored.
Bad UX
A second delete overwrites the first recoverable item without explaining which action Undo affects.
Best fit
The action is common and mistakes are likely.
Avoid when
The action has external side effects that cannot be recalled.
Required state
Normal state before the user action.
Accessibility burden
Make the undo control keyboard reachable and programmatically identifiable.
Common misuse
Offering undo for an action that cannot actually be reversed.

Destructive action confirmation

UI or UX
UI + UX - Final destructive commit review
UI guidance
Render a destructive confirmation after the user invokes a destructive command, with a title and final action button that repeat the destructive verb and target, such as Delete workspace or Cancel subscription.
UX guidance
Use destructive action confirmation to create one informed stop before permanent or externally visible loss, not to slow every routine cleanup action.
Good UI
Delete Payments project? lists 4 dashboards, 12 saved views, 3 webhooks, and 8 shared links, offers Keep project, and labels the danger action Delete Payments project.
Bad UI
A modal says Are you sure? with OK and Cancel after the user clicks Delete, without naming the project or what disappears.
Good UX
A user opens Delete workspace, reviews the object count and webhooks, cancels, and returns to the same workspace with nothing changed.
Bad UX
A user confirms deletion because OK looks like the primary next step, then discovers shared links and child reports were lost.
Best fit
A user has initiated a destructive command that can permanently remove, revoke, reset, deactivate, or cancel something valuable.
Avoid when
The action is a routine reversible archive, hide, dismiss, move, reorder, or trash move.
Required state
Idle state where the destructive command is visible but not committed.
Accessibility burden
Use alertdialog semantics or platform equivalent when the destructive decision requires an immediate response.
Common misuse
Using a vague Are you sure prompt that does not name the object, count, or consequence.

Draft state

UI or UX
UI + UX - Unpublished object version lifecycle
UI guidance
Label the current version explicitly as Draft, Unpublished changes, Published, Active, Locked, or Unavailable, and place that label near the object title, list row, editor header, and publish actions.
UX guidance
Use draft state when users need to pause work on an object, return later, and decide whether to publish, activate, discard, or keep editing an unpublished version.
Good UI
A knowledge article header says Draft saved today, shows the currently published title, and offers Resume draft, Compare with published, Discard draft, and Publish.
Bad UI
An editor opens directly into draft text but the header only says Saved, so users cannot tell whether viewers see the changes.
Good UX
A user opens a published article that has an unpublished version, chooses Resume draft, reviews a change summary, publishes, and sees the page become visible to viewers.
Bad UX
A user closes an editor after seeing Saved, later discovers the page was never published, and cannot find the draft in the content list.
Best fit
Users create or edit objects that should not become visible, active, submitted, or externally effective until a later action.
Avoid when
The change is a small one-field edit that should be saved or canceled immediately.
Required state
Published or active state with no draft.
Accessibility burden
Expose Draft, Published, Unpublished changes, Locked, and Unavailable as text in the page title area and list rows, not only by color or icon.
Common misuse
Using Saved to mean both saved draft and published content.
Decision rules
  • Use restore from trash when deletion removes an object from normal views but preserves it in a recoverable deleted-items area for a known retention period.
  • Use undo when the user needs immediate reversal of a just-completed low-risk action and the recovery control belongs near the result.
  • Use destructive action confirmation when the next action commits irreversible loss, broad scope, external effects, or permanent removal from trash.
  • Use draft state when the recoverable object is an unpublished or inactive version, not a deleted object awaiting restore or purge.
  • A trash restore UI must show object name, type, original location, deletion time, retention or purge status, and whether restore will recreate parent folders or permissions.
  • If the original location no longer exists or the user lacks permission there, route restore through a choose-location or permission recovery state instead of silently failing.
  • Keep permanent delete, empty trash, and purge actions visually and semantically separate from Restore, and escalate them to destructive confirmation when loss is final.
  • Do not rely on a short toast undo for important deleted records that users may need to recover hours or days later.
  • Do not use trash restore to handle unsaved drafts, publish/discard decisions, or edit-history replay; those need draft state, autosave recovery, undo, or redo.
  • When bulk restoring, preview item count, conflicts, unavailable parents, permission changes, and items that cannot be restored before committing the batch.
Inspect live examples
Failure modes
  • The trash list lacks original location or deletion time, so users cannot identify which object to restore.
  • Restore silently returns a file to an unavailable folder, hidden shared drive, or permission scope the user cannot find.
  • Permanent delete sits beside Restore with the same visual weight and no final-loss confirmation.
  • The interface promises recovery after retention has expired or after an administrator purge.
  • Bulk restore recreates stale parents, duplicates names, or changes permissions without review.
  • The product treats restore from trash as the same as undo, so users lose recovery after leaving the route.