Async editor close
Flush a dirty draft at the dismissal-request boundary before committing controlled state or starting exit motion.
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.