Skip to content

bug: <ion-datetime-button> not rendered inside modal unless <ion-datetime> is pre-defined earlier in DOM #30504

Open
@DwieDima

Description

@DwieDima

Prerequisites

Ionic Framework Version

v8.x

Current Behavior

When using <ion-datetime-button> inside a modal page (created via ModalController), the component does not render anything unless the linked <ion-datetime> and <ion-datetime-button> (e.g. with ID calendar-trigger) is already present in the DOM before the button is initialized.

This seems related to Web Component hydration timing in dynamically loaded views.

However, if a <ion-datetime> with the same ID is rendered earlier (inside a routed page) (even with display: none), the button suddenly works inside the modal, but is rendered from parent page without the possibility to use value binding from modal.

Expected Behavior

<ion-datetime-button> should correctly render and bind to its matching target, regardless of where in the component it appears, as long as the referenced element exists in the DOM at the time of rendering.

Hydration/timing should not cause the component to silently fail.

Steps to Reproduce

  1. open stackblitz
  2. click on "open" button
  3. modal is visible without the ion-datetime-button visible
  4. comment in the html inside example.component.html
  5. safe changes
  6. click on "open" button
  7. modal is visible with ion-datetime-button displaying the date

Code Reproduction URL

https://stackblitz.com/edit/vnczfh3u?file=src%2Fapp%2Fmodal-example.component.ts,src%2Fapp%2Fmodal-example.component.html,src%2Fapp%2Fexample.component.html,src%2Fapp%2Fexample.component.ts

Ionic Info

see stackblitz

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions