Add async `DialogView.openAndWait()` for easier dialog management.

Review Request #14685 — Created Nov. 11, 2025 and updated

Information

Ink
master

Reviewers

DialogView.openAndWait() provides a simpler way of working with a
dialog in an async function. It returns a promise that opens the dialog
as normal, but then waits until it's closed before resolving. With this,
it's easier to create utility dialogs without a lot of micro-management.

The resolved promise contains the dialog's closed reason, which can be
used to determine if the dialog is canceled or to access state specific
to an action or its handler.

The Error and Confirm utility dialogs now use this to simplify code
and, in the case of the Confirm dialog, to avoid resolving the promise
until the dialog is closed.

Tested this via the stories, with updates to tie the lifecycle and
results to the button states.

Tested with in-progress changes in Review Board.

Summary ID
Add async `DialogView.openAndWait()` for easier dialog management.
`DialogView.openAndWait()` provides a simpler way of working with a dialog in an async function. It returns a promise that opens the dialog as normal, but then waits until it's closed before resolving. With this, it's easier to create utility dialogs without a lot of micro-management. The resolved promise contains the dialog's closed reason, which can be used to determine if the dialog is canceled or to access state specific to an action or its handler. The Error and Confirm utility dialogs now use this to simplify code and, in the case of the Confirm dialog, to avoid resolving the promise until the dialog is closed.
42ddd7974697eff3964ccaa203abd57a78fb062f
Checks run (2 succeeded)
flake8 passed.
JSHint passed.
david
  1. Ship It!
  2.