From 3fb11eed9a166ebab23b778662f54c449fcffad0 Mon Sep 17 00:00:00 2001 From: Timothy Yung Date: Wed, 17 Mar 2021 13:46:43 -0700 Subject: [PATCH] React Native: Touch Instrumentation Interface (#21024) --- .../src/legacy-events/ResponderTouchHistoryStore.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/react-native-renderer/src/legacy-events/ResponderTouchHistoryStore.js b/packages/react-native-renderer/src/legacy-events/ResponderTouchHistoryStore.js index 643e2c130a..24d35b52a4 100644 --- a/packages/react-native-renderer/src/legacy-events/ResponderTouchHistoryStore.js +++ b/packages/react-native-renderer/src/legacy-events/ResponderTouchHistoryStore.js @@ -184,8 +184,21 @@ function printTouchBank(): string { return printed; } +let instrumentationCallback: ?(string, TouchEvent) => void; + const ResponderTouchHistoryStore = { + /** + * Registers a listener which can be used to instrument every touch event. + */ + instrument(callback: (string, TouchEvent) => void): void { + instrumentationCallback = callback; + }, + recordTouchTrack(topLevelType: string, nativeEvent: TouchEvent): void { + if (instrumentationCallback != null) { + instrumentationCallback(topLevelType, nativeEvent); + } + if (isMoveish(topLevelType)) { nativeEvent.changedTouches.forEach(recordTouchMove); } else if (isStartish(topLevelType)) {