Skip to content

bug: datetime, ios only, looping between months when disabled is set #30571

@mcvendrell

Description

@mcvendrell

If you set disable in the ion-datetime component, the "old" bug of "change automatically to previous selected month" happens (only on iOS).

Steps to reproduce:

  1. Set a calendar
    <ion-datetime
    #calendar
    presentation="date"
    [firstDayOfWeek]="1"
    [disabled]="loading()"
    (ionChange)="dayChange($event)"
    [(ngModel)]="selectedDate"
    />

  2. selectedDate is null by default

  3. Change to a new month and select a new day.

  4. When ionChange, simply do a call to any process consuming time and set a signal to loading.set(true) before load

This will make datetime to go a previous month.

Changing the selected month and clicking on a new day causes the component to go back to previous month and date, no matter the month. This problem happens on iOS only. I tested on iOS 18.5 (real device) and on iOS 18.4 (emulator).

"@angular/core": "^19.0.0",
"@angular/router": "^19.0.0",
"@capacitor/android": "7.4.0",
"@capacitor/app": "7.0.1",
"@capacitor/core": "^7.4.0",
"@capacitor/device": "^7.0.1",
"@capacitor/haptics": "7.0.1",
"@capacitor/keyboard": "7.0.1",
"@capacitor/preferences": "^7.0.1",
"@capacitor/push-notifications": "^7.0.1",
"@capacitor/splash-screen": "^7.0.1",
"@capacitor/status-bar": "7.0.1",
"@capawesome/capacitor-android-edge-to-edge-support": "^7.2.2",

Works fine in Android/web.

As a workaround, I set a div with transparency over the calendar to emulate the disabled state.

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