From a241e02594b5276d9ef36a33d7d9a668c6f3f102 Mon Sep 17 00:00:00 2001 From: Dermot Duffy Date: Mon, 8 Dec 2025 18:43:28 -0800 Subject: [PATCH] fix: Touch gestures should count as card interactions (#2265) - Closes: #2245 --- src/card-controller/card-element-manager.ts | 16 ++++++++++++++++ .../card-controller/card-element-manager.test.ts | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/card-controller/card-element-manager.ts b/src/card-controller/card-element-manager.ts index 33724238..e115b870 100644 --- a/src/card-controller/card-element-manager.ts +++ b/src/card-controller/card-element-manager.ts @@ -96,6 +96,14 @@ export class CardElementManager { 'wheel', this._api.getInteractionManager().reportInteraction, ); + this._element.addEventListener( + 'touchstart', + this._api.getInteractionManager().reportInteraction, + ); + this._element.addEventListener( + 'touchmove', + this._api.getInteractionManager().reportInteraction, + ); this._element.addEventListener( 'll-custom', this._api.getActionsManager().handleCustomActionEvent, @@ -166,6 +174,14 @@ export class CardElementManager { 'wheel', this._api.getInteractionManager().reportInteraction, ); + this._element.removeEventListener( + 'touchstart', + this._api.getInteractionManager().reportInteraction, + ); + this._element.removeEventListener( + 'touchmove', + this._api.getInteractionManager().reportInteraction, + ); this._element.removeEventListener( 'll-custom', this._api.getActionsManager().handleCustomActionEvent, diff --git a/tests/card-controller/card-element-manager.test.ts b/tests/card-controller/card-element-manager.test.ts index 6910f6cc..589274b7 100644 --- a/tests/card-controller/card-element-manager.test.ts +++ b/tests/card-controller/card-element-manager.test.ts @@ -119,6 +119,14 @@ describe('CardElementManager', () => { 'action', api.getInteractionManager().reportInteraction, ); + expect(addEventListener).toBeCalledWith( + 'touchstart', + api.getInteractionManager().reportInteraction, + ); + expect(addEventListener).toBeCalledWith( + 'touchmove', + api.getInteractionManager().reportInteraction, + ); expect(windowAddEventListener).toBeCalledWith('location-changed', expect.anything()); expect(windowAddEventListener).toBeCalledWith('popstate', expect.anything()); @@ -171,6 +179,14 @@ describe('CardElementManager', () => { 'action', api.getInteractionManager().reportInteraction, ); + expect(removeEventListener).toBeCalledWith( + 'touchstart', + api.getInteractionManager().reportInteraction, + ); + expect(removeEventListener).toBeCalledWith( + 'touchmove', + api.getInteractionManager().reportInteraction, + ); expect(windowRemoveEventListener).toBeCalledWith( 'location-changed', expect.anything(),