Async editor close

Flush a dirty draft at the dismissal-request boundary before committing controlled state or starting exit motion.

Local preview
Play in StackBlitz

Closing is a request.

Try Close or Escape. Pending edits finish saving before exit begins.

Draft has local changes.

What stays true

  • Request precedes commit
  • One pending dismissal
  • Exit begins after save

Try it deliberately

  • Try Escape as well as the close button; both carry a dismissal reason.
  • Reject by resolving false when validation or persistence fails.