fix(datetime): switching presentation closes month/year picker (#25667)

This commit is contained in:
Liam DeBeasi
2022-07-26 13:40:05 -04:00
committed by GitHub
parent db28794f0b
commit 57a21adb38
2 changed files with 28 additions and 0 deletions

View File

@ -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) => {

View File

@ -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', () => {