From 16c728b0408b4229a1447a97b21a2671e1567b10 Mon Sep 17 00:00:00 2001 From: Tanner Reits Date: Sat, 28 Sep 2024 20:29:03 -0400 Subject: [PATCH] fix(segment): don't trigger scroll listener on segment button click --- core/src/components/segment/segment.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/src/components/segment/segment.tsx b/core/src/components/segment/segment.tsx index 4f49461ed6..534395bd61 100644 --- a/core/src/components/segment/segment.tsx +++ b/core/src/components/segment/segment.tsx @@ -29,6 +29,7 @@ export class Segment implements ComponentInterface { private segmentViewEl?: HTMLIonSegmentViewElement | null = null; private scrolledIndicator?: HTMLDivElement | null = null; + private isScrolling = false; @Element() el!: HTMLIonSegmentElement; @@ -352,6 +353,10 @@ export class Segment implements ComponentInterface { @Listen('ionSegmentViewScroll', { target: 'body' }) handleSegmentViewScroll(ev: CustomEvent) { + if (!this.isScrolling) { + return; + } + const dispatchedFrom = ev.target as HTMLElement; const segmentViewEl = this.segmentViewEl as EventTarget; const segmentEl = this.el; @@ -401,7 +406,9 @@ export class Segment implements ComponentInterface { } @Listen('ionSegmentViewScrollStart', { target: 'body' }) - onScrollStart() {} + onScrollStart() { + this.isScrolling = true; + } @Listen('ionSegmentViewScrollEnd', { target: 'body' }) onScrollEnd(ev: CustomEvent<{ activeContentId: string }>) { @@ -411,6 +418,8 @@ export class Segment implements ComponentInterface { this.scrolledIndicator.style.transition = ''; this.scrolledIndicator.style.transform = ''; } + + this.isScrolling = false; } /**