Skip to content

Conversation

@ShaneK
Copy link
Member

@ShaneK ShaneK commented Dec 12, 2025

Issue number: resolves #30706


What is the current behavior?

When ion-datetime is rendered inside a modal or popover, it may appear invisible (opacity: 0) because the datetime-ready class is not applied. This occurs because IntersectionObserver doesn't reliably detect visibility changes in some browsers (particularly WebKit/Safari) when the datetime is inside an overlay that is presented after page load.

What is the new behavior?

The datetime now uses multiple strategies to reliably detect visibility:

  1. ResizeObserver - Detects when the element transitions between having dimensions (visible) and zero dimensions (hidden)
  2. Overlay event listeners - Listens for didPresent/didDismiss events when datetime is inside a modal or popover
  3. Polling fallback - Uses requestAnimationFrame-based polling for browsers where ResizeObserver doesn't fire reliably (WebKit)

The .intersection-tracker element has been removed as it's no longer needed.

Does this introduce a breaking change?

  • Yes
  • No

Other information

Current dev build:

8.7.13-dev.11765560568.1a8772e8

@ShaneK ShaneK requested a review from a team as a code owner December 12, 2025 14:57
@ShaneK ShaneK requested a review from OS-jacobbell December 12, 2025 14:57
@vercel
Copy link

vercel bot commented Dec 12, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
ionic-framework Ready Ready Preview Comment Dec 12, 2025 5:20pm

@github-actions github-actions bot added the package: core @ionic/core package label Dec 12, 2025
@ShaneK ShaneK force-pushed the fix/datetime-visibility branch from 7c8b35e to a8772e8 Compare December 12, 2025 17:19
@ShaneK ShaneK marked this pull request as ready for review December 12, 2025 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package: core @ionic/core package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: IonDateTime sometimes show invisible calendar

2 participants