mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-17 18:54:11 +08:00
fix(datetime): switching presentation closes month/year picker (#25667)
This commit is contained in:
@ -1027,6 +1027,13 @@ export class Datetime implements ComponentInterface {
|
|||||||
this.destroyInteractionListeners();
|
this.destroyInteractionListeners();
|
||||||
|
|
||||||
this.initializeListeners();
|
this.initializeListeners();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The month/year picker from the date interface
|
||||||
|
* should be closed as it is not available in non-date
|
||||||
|
* interfaces.
|
||||||
|
*/
|
||||||
|
this.showMonthAndYear = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private processValue = (value?: string | null) => {
|
private processValue = (value?: string | null) => {
|
||||||
|
@ -83,6 +83,27 @@ test.describe('datetime: presentation', () => {
|
|||||||
|
|
||||||
expect(ionChangeSpy.length).toBe(1);
|
expect(ionChangeSpy.length).toBe(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('switching presentation should close month/year picker', async ({ page }, testInfo) => {
|
||||||
|
await test.skip(testInfo.project.metadata.rtl === true, 'This feature does not have RTL specific behaviors.');
|
||||||
|
|
||||||
|
await page.setContent(`
|
||||||
|
<ion-datetime presentation="date"></ion-datetime>
|
||||||
|
`);
|
||||||
|
|
||||||
|
await page.waitForSelector('.datetime-ready');
|
||||||
|
|
||||||
|
const datetime = page.locator('ion-datetime');
|
||||||
|
const monthYearButton = page.locator('ion-datetime .calendar-month-year');
|
||||||
|
await monthYearButton.click();
|
||||||
|
|
||||||
|
await expect(datetime).toHaveClass(/show-month-and-year/);
|
||||||
|
|
||||||
|
await datetime.evaluate((el: HTMLIonDatetimeElement) => (el.presentation = 'time'));
|
||||||
|
await page.waitForChanges();
|
||||||
|
|
||||||
|
await expect(datetime).not.toHaveClass(/show-month-and-year/);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test.describe('datetime: presentation: time', () => {
|
test.describe('datetime: presentation: time', () => {
|
||||||
|
Reference in New Issue
Block a user