mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
fix(modal): re-enable swipe gestures when modal is dismissed (#24846)
Resolves #24817
This commit is contained in:
@@ -12,7 +12,7 @@ test('menu: focus trap with overlays', async () => {
|
||||
|
||||
const ionDidOpen = await page.spyOnEvent('ionDidOpen');
|
||||
const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent');
|
||||
const ionModalDidDismiss= await page.spyOnEvent('ionModalDidDismiss');
|
||||
const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss');
|
||||
|
||||
const menu = await page.find('ion-menu');
|
||||
await menu.callMethod('open');
|
||||
@@ -40,7 +40,6 @@ test('menu: focus trap with content inside overlays', async () => {
|
||||
|
||||
const ionDidOpen = await page.spyOnEvent('ionDidOpen');
|
||||
const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent');
|
||||
const ionModalDidDismiss= await page.spyOnEvent('ionModalDidDismiss');
|
||||
|
||||
const menu = await page.find('ion-menu');
|
||||
await menu.callMethod('open');
|
||||
@@ -57,3 +56,36 @@ test('menu: focus trap with content inside overlays', async () => {
|
||||
|
||||
expect(await getActiveElementID(page)).toEqual('other-button');
|
||||
});
|
||||
|
||||
test('menu: should work with swipe gestures after modal is dismissed', async () => {
|
||||
const page = await newE2EPage({
|
||||
url: '/src/components/menu/test/focus-trap?ionic:_testing=true'
|
||||
});
|
||||
|
||||
const ionDidOpen = await page.spyOnEvent('ionDidOpen');
|
||||
const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent');
|
||||
const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss');
|
||||
|
||||
const menu = await page.find('ion-menu');
|
||||
await menu.callMethod('open');
|
||||
await ionDidOpen.next();
|
||||
|
||||
const openModal = await page.find('#open-modal-button');
|
||||
await openModal.click();
|
||||
await ionModalDidPresent.next();
|
||||
|
||||
const modal = await page.find('ion-modal');
|
||||
await modal.callMethod('dismiss');
|
||||
await ionModalDidDismiss.next();
|
||||
|
||||
await page.mouse.move(30, 168);
|
||||
await page.mouse.down();
|
||||
|
||||
await page.mouse.move(384, 168);
|
||||
await page.mouse.up();
|
||||
|
||||
await page.waitForChanges();
|
||||
|
||||
expect(menu.classList.contains('show-menu')).toBeTruthy();
|
||||
|
||||
});
|
||||
|
||||
@@ -527,6 +527,8 @@ export class Modal implements ComponentInterface, OverlayInterface {
|
||||
const { delegate } = this.getDelegate();
|
||||
await detachComponent(delegate, this.usersElement);
|
||||
|
||||
writeTask(() => this.el.classList.remove('show-modal'));
|
||||
|
||||
if (this.animation) {
|
||||
this.animation.destroy();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user