Skip to content

Commit ec6615d

Browse files
committed
fix(item): sliding item should not close when clicking an option button
fixes #8481
1 parent 14e668c commit ec6615d

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

src/components/item/item-sliding-gesture.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,9 @@ export class ItemSlidingGesture extends PanGesture {
7373
}
7474

7575
notCaptured(ev: any) {
76-
this.closeOpened();
76+
if (!clickedOptionButton(ev)) {
77+
this.closeOpened();
78+
}
7779
}
7880

7981
closeOpened(): boolean {
@@ -99,9 +101,14 @@ export class ItemSlidingGesture extends PanGesture {
99101
}
100102

101103
function getContainer(ev: any): ItemSliding {
102-
let ele = ev.target.closest('ion-item-sliding', true);
104+
let ele = ev.target.closest('ion-item-sliding');
103105
if (ele) {
104106
return (<any>ele)['$ionComponent'];
105107
}
106108
return null;
107109
}
110+
111+
function clickedOptionButton(ev: any): boolean {
112+
let ele = ev.target.closest('ion-item-options>button');
113+
return !!ele;
114+
}

src/components/item/test/sliding/app-module.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ export class E2EPage {
3939
this.list.closeSlidingItems();
4040
}
4141

42+
noclose(item: ItemSliding) {
43+
console.log('no close', item);
44+
}
45+
4246
unread(item: ItemSliding) {
4347
if (item) {
4448
item.close();

src/components/item/test/sliding/main.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ <h2>HubStruck Notifications</h2>
3131
</a>
3232

3333
<ion-item-options side="left">
34-
<button ion-button icon-only (click)="unread(item100)">
35-
<ion-icon name="mail"></ion-icon>
34+
<button ion-button icon-only (click)="noclose(item100)">
35+
No close
3636
</button>
3737
</ion-item-options>
3838
<ion-item-options side="right">

0 commit comments

Comments
 (0)