From 3e911d716310bb117c714850eb998a7b5a5cc007 Mon Sep 17 00:00:00 2001 From: abmantis Date: Thu, 22 Oct 2020 22:31:09 +0100 Subject: [PATCH 1/2] fix: add onMoveShouldSetResponder to element enabled checking --- src/__tests__/fireEvent.test.js | 25 +++++++++++++++++++++++++ src/fireEvent.js | 8 +++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/__tests__/fireEvent.test.js b/src/__tests__/fireEvent.test.js index 5fef1c806..0b5f72c27 100644 --- a/src/__tests__/fireEvent.test.js +++ b/src/__tests__/fireEvent.test.js @@ -3,6 +3,7 @@ import React from 'react'; import { View, TouchableOpacity, + PanResponder, Pressable, Text, ScrollView, @@ -305,3 +306,27 @@ test('is not fooled by non-responder wrapping host elements', () => { fireEvent.press(screen.getByText('Trigger')); expect(handlePress).not.toHaveBeenCalled(); }); + +function TestDraggableComponent({ onDrag }) { + const responderHandlers = PanResponder.create({ + onMoveShouldSetPanResponder: (_evt, _gestureState) => true, + onPanResponderMove: onDrag, + }).panHandlers; + + return ( + + Trigger + + ); +} + +test('has only onMove', () => { + const handleDrag = jest.fn(); + + const screen = render(); + + fireEvent(screen.getByText('Trigger'), 'responderMove', { + touchHistory: { mostRecentTimeStamp: '2', touchBank: [] }, + }); + expect(handleDrag).toHaveBeenCalled(); +}); diff --git a/src/fireEvent.js b/src/fireEvent.js index f3846c714..f8cda2989 100644 --- a/src/fireEvent.js +++ b/src/fireEvent.js @@ -23,7 +23,13 @@ const isEventEnabled = ( ) => { if (isTextInput(element)) return element?.props.editable !== false; - return touchResponder?.props.onStartShouldSetResponder?.() !== false; + const touchStart = touchResponder?.props.onStartShouldSetResponder?.(); + const touchMove = touchResponder?.props.onMoveShouldSetResponder?.(); + + if (touchStart) return true; + if (touchMove) return true; + + return touchStart === undefined && touchMove === undefined; }; const findEventHandler = ( From 5182d24a5e43e8c0aa6e23be31292e372f8747a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pierzcha=C5=82a?= Date: Tue, 3 Nov 2020 18:50:37 +0100 Subject: [PATCH 2/2] Update src/fireEvent.js Co-authored-by: Maciej Jastrzebski --- src/fireEvent.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/fireEvent.js b/src/fireEvent.js index f8cda2989..7f21f0339 100644 --- a/src/fireEvent.js +++ b/src/fireEvent.js @@ -26,8 +26,7 @@ const isEventEnabled = ( const touchStart = touchResponder?.props.onStartShouldSetResponder?.(); const touchMove = touchResponder?.props.onMoveShouldSetResponder?.(); - if (touchStart) return true; - if (touchMove) return true; + if (touchStart || touchMove) return true; return touchStart === undefined && touchMove === undefined; };