Skip to content

[Zoneless] Setting Dialog isOpen asynchronously does not display the dialog #17443

Description

@viktorkombov

Description

When IgxDialogComponent.isOpen is set programmatically from an asynchronous
callback in a zoneless Angular application, the dialog does not become visible.

The component state changes to isOpen = true, but the
igx-dialog--hidden class remains applied to the dialog host. The model and
rendered DOM therefore become inconsistent until another Angular render is
triggered.

Framework

Angular

Angular Version

22.0

Ignite UI for Angular Version

22.1.x

Component / Area

Dialog

Browser

Chrome

Operating System

No response

Command Not Working

Steps to Reproduce

  1. Open the provided reproduction sample. - zoneless-dialog-repro.zip
  2. The sample uses zoneless change detection and binds a template-read signal
    to the Dialog's isOpen input:
<igx-dialog [isOpen]="open()"></igx-dialog>
  1. The scenario starts automatically. Alternatively, click Run scenario
    to execute it again.
  2. An asynchronous callback updates the signal:
setTimeout(() => {
    this.open.set(true);
});
  1. Observe the dialog and the displayed component and host states.

Actual Result

The signal update reaches the Dialog and the component reports
isOpen = true, but the dialog remains hidden:

isOpen=true
hostHidden=true
visible=false

Although the application uses a documented zoneless notification mechanism,
the igx-dialog--hidden host class is not synchronized with the component
state after the Dialog's deferred open operation.

Expected Result

The Dialog should become visible after the signal-bound isOpen input changes
to true.

Reproduction URL

No response

Attachments

zoneless-dialog-repro.zip

Metadata

Metadata

Assignees

Labels

🐛 bugAny issue that describes a bug✅ status: resolvedApplies to issues that have pending PRs resolving them, or PRs that have already merged.dialogversion: 22.1.xzoneless

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions