Skip to content

[FEATURE] Reset all settings button wipes all user settings instantly with no confirmation or undo #684

@vdadheech

Description

@vdadheech

Feature description
The "Reset all settings" button on the editor page destroys all configured settings — preset, framing, trim in/out points, rotation, speed, audio, and CRF quality — in a single click, with no confirmation dialog, no undo, and no way to recover. This is a destructive action that can easily happen by accident, especially on mobile where the button sits close to other controls

Problem this solves
The core issue is that "Reset all settings" is irreversible and once clicked, there is no path back. This violates the basic UX principle that destructive actions should be either reversible or confirmed

Proposed solution
Show a browser confirm() or a small inline modal before resetting:

"Reset all settings to defaults? This cannot be undone."
[Cancel] [Reset]

Alternatives considered
Execute the reset immediately (fast feedback), but show a toast notification for ~5 seconds:

"Settings reset. [Undo]"

Clicking Undo restores the previous state from a saved snapshot. This is the pattern used by Gmail ("Message deleted. Undo"), Google Drive, Notion, and most modern web apps. It feels snappy and non-blocking while still being safe.

// In useVideoEditor.ts
const handleReset = () => {
  const snapshot = { ...currentRecipe }; // save current state
  applyDefaults();                        // reset immediately
  showToast({
    message: "Settings reset.",
    action: { label: "Undo", onClick: () => restoreRecipe(snapshot) },
    duration: 5000,
  });
};

Additional context
The button currently lives between the controls and the Export button, which means it's in the most frequently clicked zone of the UI.
On mobile (narrow viewport), the touch targets are close together — accidental taps on Reset instead of Export are likely.
The feature request for undo support more broadly (not just for reset) is a natural extension of this fix.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions