From 5e734fe8153f0c743ef5ac9128fe94d3ac0942ea Mon Sep 17 00:00:00 2001 From: rudrakshagarwal4200-ai Date: Sat, 17 Oct 2026 02:33:27 +0530 Subject: [PATCH 1/2] Handle open amount in item sliding component Remove closing class and enable gesture if open amount is non-zero. --- core/src/components/item-sliding/item-sliding.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/src/components/item-sliding/item-sliding.tsx b/core/src/components/item-sliding/item-sliding.tsx index d2bce0e0dfd..2c0fbcc2013 100644 --- a/core/src/components/item-sliding/item-sliding.tsx +++ b/core/src/components/item-sliding/item-sliding.tsx @@ -422,6 +422,13 @@ export class ItemSliding implements ComponentInterface { style.transition = ''; } + if (openAmount !== 0) { + el.classList.remove('item-sliding-closing'); + if (this.gesture) { + this.gesture.enable(!this.disabled); + } + } + if (openAmount > 0) { this.state = openAmount >= this.optsWidthRightSide + SWIPE_MARGIN From abef2ff107147e167224ce3cb60033892d8f1976 Mon Sep 17 00:00:00 2001 From: rudrakshagarwal4200-ai Date: Sat, 17 Oct 2026 02:34:09 +0530 Subject: [PATCH 2/2] Implement e2e test for item sliding options Add test for opening opposite side behavior in item sliding --- .../item-sliding/test/basic/item-sliding.e2e.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts index 66797b3ad4e..0ba173e7232 100644 --- a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts +++ b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts @@ -262,5 +262,21 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => await openStartOptions(page, true); }); + + test('opening opposite side should remove item-sliding-closing and keep options clickable', async ({ page }, testInfo) => { + testInfo.annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/29975', + }); + + const slidingItem = page.locator('#item2'); + await slidingItem.evaluate(async (el: HTMLIonItemSlidingElement) => { + await el.open('end'); + await el.open('start'); + }); + await page.waitForChanges(); + + await expect(slidingItem).not.toHaveClass(/item-sliding-closing/); + }); }); });