@office-iss/react-native-win32 0.72.6 → 0.73.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/.flowconfig +15 -4
  2. package/CHANGELOG.json +531 -87
  3. package/CHANGELOG.md +213 -48
  4. package/IntegrationTests/PromiseTest.js +1 -0
  5. package/IntegrationTests/websocket_integration_test_server.js +1 -1
  6. package/Libraries/Animated/Animated.js +1 -1
  7. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  8. package/Libraries/Animated/NativeAnimatedHelper.js +14 -10
  9. package/Libraries/Animated/NativeAnimatedHelper.win32.js +16 -12
  10. package/Libraries/Animated/NativeAnimatedModule.js +6 -2
  11. package/Libraries/Animated/NativeAnimatedTurboModule.js +7 -4
  12. package/Libraries/Animated/animations/Animation.js +57 -3
  13. package/Libraries/Animated/animations/DecayAnimation.js +9 -0
  14. package/Libraries/Animated/animations/SpringAnimation.js +8 -0
  15. package/Libraries/Animated/animations/TimingAnimation.js +8 -0
  16. package/Libraries/Animated/components/AnimatedFlatList.js +2 -1
  17. package/Libraries/Animated/components/AnimatedScrollView.js +2 -0
  18. package/Libraries/Animated/components/AnimatedSectionList.js +2 -1
  19. package/Libraries/Animated/createAnimatedComponent.js +1 -0
  20. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  21. package/Libraries/Animated/nodes/AnimatedObject.js +146 -0
  22. package/Libraries/Animated/nodes/AnimatedProps.js +19 -7
  23. package/Libraries/Animated/nodes/AnimatedStyle.js +29 -55
  24. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -17
  25. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
  26. package/Libraries/Animated/useAnimatedProps.js +9 -10
  27. package/Libraries/AppState/AppState.d.ts +1 -1
  28. package/Libraries/AppState/NativeAppState.js +8 -4
  29. package/Libraries/BatchedBridge/MessageQueue.js +45 -36
  30. package/Libraries/Blob/Blob.js +6 -2
  31. package/Libraries/Blob/BlobManager.js +9 -10
  32. package/Libraries/Blob/BlobRegistry.js +14 -9
  33. package/Libraries/Blob/File.js +1 -1
  34. package/Libraries/Blob/FileReader.js +1 -2
  35. package/Libraries/Components/Button/ButtonWin32.Props.d.ts +1 -1
  36. package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -1
  37. package/Libraries/Components/Button/ButtonWin32.d.ts +1 -1
  38. package/Libraries/Components/Button/ButtonWin32.js +1 -4
  39. package/Libraries/Components/Button/ButtonWin32.js.map +1 -1
  40. package/Libraries/Components/Clipboard/Clipboard.d.ts +4 -4
  41. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -1
  42. package/Libraries/Components/EnterString.win32.d.ts +1 -1
  43. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +26 -6
  44. package/Libraries/Components/Pressable/Pressable.js +3 -2
  45. package/Libraries/Components/Pressable/Pressable.win32.js +4 -3
  46. package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
  47. package/Libraries/Components/SafeAreaView/SafeAreaView.js +7 -7
  48. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +7 -8
  49. package/Libraries/Components/ScrollView/ScrollView.js +3 -1
  50. package/Libraries/Components/ScrollView/ScrollView.win32.js +3 -1
  51. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +39 -46
  52. package/Libraries/Components/Switch/Switch.js +1 -0
  53. package/Libraries/Components/Text/TextWin32.d.ts +1 -1
  54. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
  55. package/Libraries/Components/TextInput/TextInput.d.ts +49 -7
  56. package/Libraries/Components/TextInput/TextInput.flow.js +43 -10
  57. package/Libraries/Components/TextInput/TextInput.js +62 -10
  58. package/Libraries/Components/TextInput/TextInput.win32.js +953 -206
  59. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +23 -0
  60. package/Libraries/Components/ToastAndroid/{ToastAndroid.ios.js → ToastAndroid.js} +9 -1
  61. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +9 -1
  62. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +2 -2
  63. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  64. package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
  65. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  66. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  67. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -1
  68. package/Libraries/Components/Touchable/TouchableWin32.d.ts +1 -1
  69. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  70. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -0
  71. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +16 -6
  72. package/Libraries/Components/View/ReactNativeStyleAttributes.js +9 -0
  73. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  74. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -0
  75. package/Libraries/Components/View/View.js +46 -32
  76. package/Libraries/Components/View/View.win32.js +37 -6
  77. package/Libraries/Components/View/ViewAccessibility.d.ts +8 -2
  78. package/Libraries/Components/View/ViewNativeComponent.js +1 -0
  79. package/Libraries/Components/View/ViewPropTypes.js +18 -3
  80. package/Libraries/Components/View/ViewPropTypes.win32.js +30 -4
  81. package/Libraries/Components/View/ViewWin32.js +3 -2
  82. package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
  83. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -1
  84. package/Libraries/Core/ExceptionsManager.js +16 -7
  85. package/Libraries/Core/ExtendedError.js +12 -0
  86. package/Libraries/Core/ReactNativeVersion.js +3 -3
  87. package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
  88. package/Libraries/Core/ReactNativeVersionCheck.win32.js +0 -2
  89. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
  90. package/Libraries/Core/setUpDeveloperTools.js +5 -1
  91. package/Libraries/Core/setUpIntersectionObserver.js +16 -0
  92. package/Libraries/{Components/ProgressBarAndroid/ProgressBarAndroid.ios.js → Core/setUpMutationObserver.js} +6 -2
  93. package/Libraries/Core/setUpPerformance.js +6 -13
  94. package/Libraries/Core/setUpPerformanceObserver.js +16 -0
  95. package/Libraries/Core/setUpRegeneratorRuntime.js +4 -2
  96. package/Libraries/DOM/Nodes/ReactNativeElement.js +135 -18
  97. package/Libraries/DOM/Nodes/ReadOnlyCharacterData.js +72 -0
  98. package/Libraries/DOM/Nodes/ReadOnlyElement.js +209 -21
  99. package/Libraries/DOM/Nodes/ReadOnlyNode.js +206 -17
  100. package/Libraries/DOM/Nodes/ReadOnlyText.js +30 -0
  101. package/Libraries/DOM/Nodes/Utilities/Traversal.js +54 -0
  102. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +0 -6
  103. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +15 -4
  104. package/Libraries/Image/Image.android.js +8 -2
  105. package/Libraries/Image/Image.d.ts +1 -1
  106. package/Libraries/Image/Image.ios.js +4 -1
  107. package/Libraries/Image/Image.win32.js +6 -3
  108. package/Libraries/Image/ImageBackground.js +3 -0
  109. package/Libraries/Image/resolveAssetSource.win32.js +1 -1
  110. package/Libraries/Inspector/DevtoolsOverlay.js +6 -3
  111. package/Libraries/Inspector/NetworkOverlay.js +2 -2
  112. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -5
  113. package/Libraries/Interaction/PanResponder.js +1 -4
  114. package/Libraries/IntersectionObserver/IntersectionObserver.js +252 -0
  115. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +140 -0
  116. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +221 -0
  117. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +41 -0
  118. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +162 -0
  119. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
  120. package/Libraries/Lists/FlatList.d.ts +2 -1
  121. package/Libraries/Lists/FlatList.js +15 -5
  122. package/Libraries/Lists/SectionList.js +4 -0
  123. package/Libraries/LogBox/Data/LogBoxLog.js +4 -1
  124. package/Libraries/LogBox/Data/LogBoxSymbolication.js +5 -2
  125. package/Libraries/LogBox/Data/parseLogBoxLog.js +57 -20
  126. package/Libraries/LogBox/UI/AnsiHighlight.js +1 -1
  127. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +24 -31
  128. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  129. package/Libraries/LogBox/UI/LogBoxMessage.js +4 -7
  130. package/Libraries/MutationObserver/MutationObserver.js +184 -0
  131. package/Libraries/MutationObserver/MutationObserverManager.js +218 -0
  132. package/Libraries/MutationObserver/MutationRecord.js +82 -0
  133. package/Libraries/MutationObserver/NativeMutationObserver.js +58 -0
  134. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +327 -0
  135. package/Libraries/NativeComponent/BaseViewConfig.android.js +18 -3
  136. package/Libraries/NativeComponent/BaseViewConfig.ios.js +33 -0
  137. package/Libraries/NativeComponent/BaseViewConfig.win32.js +33 -0
  138. package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -5
  139. package/Libraries/NativeModules/specs/NativeSourceCode.js +6 -6
  140. package/Libraries/Network/RCTNetworking.android.js +2 -1
  141. package/Libraries/Network/XMLHttpRequest.js +1 -1
  142. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -4
  143. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +9 -2
  144. package/Libraries/Performance/QuickPerformanceLogger.js +1 -1
  145. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  146. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +1 -0
  147. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -1
  148. package/Libraries/Pressability/Pressability.js +28 -3
  149. package/Libraries/Pressability/Pressability.win32.js +30 -5
  150. package/Libraries/ReactNative/AppContainer.js +2 -3
  151. package/Libraries/ReactNative/AppRegistry.d.ts +0 -5
  152. package/Libraries/ReactNative/AppRegistry.js +66 -53
  153. package/Libraries/ReactNative/BridgelessUIManager.js +38 -9
  154. package/Libraries/ReactNative/FabricUIManager.js +143 -34
  155. package/Libraries/ReactNative/I18nManager.js +5 -11
  156. package/Libraries/ReactNative/NativeI18nManager.js +7 -5
  157. package/Libraries/ReactNative/PaperUIManager.win32.js +2 -2
  158. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +151 -0
  159. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +81 -0
  160. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
  161. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +32 -0
  162. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +19 -3
  163. package/Libraries/ReactNative/UIManager.js +8 -0
  164. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +648 -0
  165. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +38 -2
  166. package/Libraries/Renderer/implementations/ReactFabric-dev.js +27 -27
  167. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
  168. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
  169. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27 -27
  170. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -3
  171. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -3
  172. package/Libraries/Renderer/shims/ReactFabric.js +5 -6
  173. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -3
  174. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  175. package/Libraries/Renderer/shims/ReactNativeTypes.js +35 -17
  176. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -3
  177. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -3
  178. package/Libraries/Settings/{Settings.android.js → Settings.js} +4 -4
  179. package/Libraries/Share/Share.d.ts +3 -9
  180. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +9 -4
  181. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +28 -13
  182. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +14 -4
  183. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  184. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  185. package/Libraries/StyleSheet/StyleSheet.d.ts +10 -1
  186. package/Libraries/StyleSheet/StyleSheet.js +3 -0
  187. package/Libraries/StyleSheet/StyleSheet.win32.js +3 -0
  188. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +31 -17
  189. package/Libraries/StyleSheet/StyleSheetTypes.js +90 -6
  190. package/Libraries/StyleSheet/flattenStyle.js +4 -0
  191. package/Libraries/StyleSheet/private/_TransformStyle.js +16 -2
  192. package/Libraries/StyleSheet/processColor.js +1 -2
  193. package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
  194. package/Libraries/StyleSheet/splitLayoutProps.js +1 -0
  195. package/Libraries/Text/Text.d.ts +5 -5
  196. package/Libraries/Text/Text.js +17 -10
  197. package/Libraries/Text/Text.win32.js +354 -0
  198. package/Libraries/Text/TextProps.win32.js +281 -0
  199. package/Libraries/TurboModule/TurboModuleRegistry.js +47 -7
  200. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  201. package/Libraries/Types/CoreEventTypes.d.ts +5 -2
  202. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -12
  203. package/Libraries/Utilities/NativeDeviceInfo.js +8 -9
  204. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +23 -18
  205. package/Libraries/Utilities/NativePlatformConstantsIOS.js +16 -13
  206. package/Libraries/Utilities/NativePlatformConstantsWin.js +13 -10
  207. package/Libraries/Utilities/PerformanceLoggerContext.js +1 -1
  208. package/Libraries/Utilities/Platform.android.js +12 -8
  209. package/Libraries/Utilities/Platform.d.ts +1 -0
  210. package/Libraries/Utilities/Platform.flow.js +84 -0
  211. package/Libraries/Utilities/Platform.flow.win32.js +111 -0
  212. package/Libraries/Utilities/Platform.ios.js +12 -8
  213. package/Libraries/Utilities/Platform.win32.js +12 -8
  214. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  215. package/Libraries/Utilities/ReactNativeTestTools.js +1 -2
  216. package/Libraries/Utilities/SceneTracker.js +1 -1
  217. package/Libraries/Utilities/createPerformanceLogger.js +63 -32
  218. package/Libraries/Utilities/useColorScheme.js +7 -8
  219. package/Libraries/WebPerformance/MemoryInfo.js +1 -1
  220. package/Libraries/WebPerformance/NativePerformance.js +3 -8
  221. package/Libraries/WebPerformance/NativePerformanceObserver.js +4 -0
  222. package/Libraries/WebPerformance/Performance.js +42 -15
  223. package/Libraries/WebPerformance/PerformanceEntry.js +14 -6
  224. package/Libraries/WebPerformance/PerformanceEventTiming.js +18 -1
  225. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +40 -14
  226. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +4 -2
  227. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +21 -3
  228. package/Libraries/promiseRejectionTrackingOptions.js +1 -3
  229. package/Libraries/vendor/emitter/EventEmitter.js +20 -18
  230. package/flow/global.js +1 -3
  231. package/flow/jest.js +5 -1
  232. package/{Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js → jest/ReactNativeInternalFeatureFlagsMock.js} +2 -1
  233. package/jest/__tests__/setup-test.js +18 -0
  234. package/jest/mockModal.js +6 -4
  235. package/jest/setup.js +61 -30
  236. package/jest.config.js +1 -1
  237. package/just-task.js +1 -0
  238. package/overrides.json +51 -46
  239. package/package.json +35 -33
  240. package/src/Libraries/Components/Button/ButtonWin32.Props.ts +1 -1
  241. package/src/Libraries/Components/Button/ButtonWin32.tsx +0 -2
  242. package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +2 -2
  243. package/src/Libraries/Components/Touchable/TouchableWin32.tsx +1 -1
  244. package/src/Libraries/Components/View/ViewAccessibility.d.ts +8 -2
  245. package/src/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  246. package/types/experimental.d.ts +44 -0
  247. package/types/index.d.ts +2 -1
  248. package/types/modules/Devtools.d.ts +1 -0
  249. package/types/modules/globals.d.ts +16 -1
  250. package/IntegrationTests/BUCK +0 -32
  251. package/IntegrationTests/PropertiesUpdateTest.js +0 -29
  252. package/IntegrationTests/RCTRootViewIntegrationTestApp.js +0 -86
  253. package/IntegrationTests/ReactContentSizeUpdateTest.js +0 -89
  254. package/IntegrationTests/SizeFlexibilityUpdateTest.js +0 -106
  255. package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +0 -51
  256. package/Libraries/Components/TextInput/TextInput.Types.win32.js +0 -3
  257. package/Libraries/Components/TextInput/TextInput.Types.win32.js.map +0 -1
  258. package/Libraries/Utilities/AcessibilityMapping.js +0 -154
  259. package/Libraries/Utilities/AcessibilityMapping.win32.js +0 -156
  260. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -19
  261. package/Libraries/Utilities/useColorScheme.win32.js +0 -26
  262. package/flow/use-sync-external-store.js +0 -20
  263. package/flow-typed/npm/base64-js_v1.x.x.js +0 -12
  264. package/flow-typed/npm/glob_v7.x.x.js +0 -79
  265. package/flow-typed/npm/pretty-format_v26.x.x.js +0 -49
  266. package/flow-typed/npm/promise_v8.x.x.js +0 -30
  267. package/flow-typed/npm/react-dom_v17.x.x.js +0 -139
  268. package/flow-typed/npm/react-test-renderer_v16.x.x.js +0 -79
  269. package/flow-typed/npm/stacktrace-parser_v0.1.x.js +0 -17
  270. package/flow-typed/npm/yargs_v17.x.x.js +0 -341
  271. package/src/Libraries/Components/TextInput/TextInput.Types.win32.ts +0 -68
  272. /package/Libraries/{Renderer/public → ReactNative/ReactFabricPublicInstance}/ReactFabricPublicInstanceUtils.js +0 -0
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @flow
3
+ * @format
4
+ */
5
+
6
+ import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
7
+
8
+ import requireNativeComponent from '../../ReactNative/requireNativeComponent';
9
+ import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
10
+ import type {TextInputNativeCommands} from './TextInputNativeCommands';
11
+ type NativeType = HostComponent<mixed>;
12
+
13
+ type NativeCommands = TextInputNativeCommands<NativeType>;
14
+
15
+ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
16
+ supportedCommands: ['focus', 'blur', 'setTextAndSelection'],
17
+ });
18
+
19
+ const WindowsTextInputComponent: NativeType =
20
+ requireNativeComponent<mixed>('RCTTextInput');
21
+
22
+ export default WindowsTextInputComponent;
23
+ // [Windows]
@@ -5,12 +5,20 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  * @format
8
- * @noflow
8
+ * @flow strict-local
9
9
  */
10
10
 
11
11
  'use strict';
12
12
 
13
13
  const ToastAndroid = {
14
+ // Dummy fallback toast duration constants
15
+ SHORT: (0: number),
16
+ LONG: (0: number),
17
+ // Dummy fallback toast gravity constants
18
+ TOP: (0: number),
19
+ BOTTOM: (0: number),
20
+ CENTER: (0: number),
21
+
14
22
  show: function (message: string, duration: number): void {
15
23
  console.warn('ToastAndroid is not supported on this platform.');
16
24
  },
@@ -5,12 +5,20 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  * @format
8
- * @noflow
8
+ * @flow strict-local
9
9
  */
10
10
 
11
11
  'use strict';
12
12
 
13
13
  const ToastAndroid = {
14
+ // Dummy fallback toast duration constants
15
+ SHORT: (0: number),
16
+ LONG: (0: number),
17
+ // Dummy fallback toast gravity constants
18
+ TOP: (0: number),
19
+ BOTTOM: (0: number),
20
+ CENTER: (0: number),
21
+
14
22
  show: function (message: string, duration: number): void {
15
23
  console.warn('ToastAndroid is not supported on this platform.');
16
24
  },
@@ -118,7 +118,7 @@ class TouchableWin32WithoutFeedback extends react_1.default.Component {
118
118
  }
119
119
  /**
120
120
  * Example implementation of TouchableHighlight - not meant for use outside these examples
121
- * The main difference between a ful TouchableHiglight implementation and this example is that
121
+ * The main difference between a full TouchableHighlight implementation and this example is that
122
122
  * TouchableHighlight should manipulate the opacity of the wrapped view to display the underlay color.
123
123
  * This example merely uses hard coded color values to distinguish between different control states
124
124
  */
@@ -181,7 +181,7 @@ class TouchableWin32HighlightComponent extends react_1.default.Component {
181
181
  * The generated style uses hard-coded color values,
182
182
  * though it is trivial to pass these values as props.
183
183
  * This is an example of a render style (one that is a
184
- * funtion passed on to TouchableWin32 and resolved according
184
+ * function passed on to TouchableWin32 and resolved according
185
185
  * to the internal state of TouchableWin32).
186
186
  */
187
187
  this._generateStyle = (state) => {
@@ -1 +1 @@
1
- {"version":3,"file":"TouchableWin32Test.js","sourceRoot":"","sources":["../../../../src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport React from 'react'\nimport {NativeSyntheticEvent, StyleSheet, Text, ViewStyle } from 'react-native';\nimport {Insets} from 'react-native/types/public/Insets';\nimport { TextWin32 } from '../../Text/TextWin32';\nimport { ViewWin32 } from '../../View/ViewWin32';\nimport { IViewWin32Props, IKeyboardEvent } from '../../View/ViewPropTypes';\nimport { TouchableWin32 } from '../TouchableWin32';\nimport { IPressEvent, IRenderChild } from '../TouchableWin32.Types';\nimport { ITouchableWin32State } from '../TouchableWin32.Props';\n\n/**\n * Styles used across both examples\n */\nconst styles = StyleSheet.create({\n largeContainer: {\n height: 200,\n width: 600,\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row',\n },\n smallContainer: {\n height: 90,\n width: 90,\n justifyContent: 'center',\n alignContent: 'center',\n },\n highlight: {\n height: 150,\n width: 150,\n justifyContent: 'space-around',\n alignContent: 'center',\n alignItems: 'center',\n flexDirection: 'row',\n },\n outerTouch: {\n height: 150,\n width: 150,\n justifyContent: 'space-around',\n alignContent: 'center',\n alignItems: 'center',\n flexDirection: 'row',\n },\n innerTouch: {\n height: 90,\n width: 90,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\n/**\n * Constant press rect offset, used to demonstrate press geometry\n */\nconst PRESS_RETENTION_OFFSET: Insets = {\n top: 100,\n left: 100,\n right: 100,\n bottom: 100,\n};\n\ninterface ITouchableWin32WithoutFeedbackProps extends IViewWin32Props {\n delayLongPress?: number;\n delayPressIn?: number;\n delayPressOut?: number;\n onPress?: (e: IPressEvent) => void;\n onPressIn?: (e: IPressEvent) => void;\n onPressOut?: (e: IPressEvent) => void;\n onLongPress?: (e: IPressEvent) => void;\n pressRetentionOffset?: Insets;\n rejectResponderTermination?: boolean;\n}\n\ninterface ITouchableWin32WithoutFeedbackState {\n isFocused: boolean;\n}\n\n/**\n * Example implementation of TouchableWithoutFeedback - not meant for use outside these examples\n * This is mainly there to show the ability to respond to touches without providing visual feedback,\n * though we do show a red border on focus to know where starts start and end and whether press rect\n * offsets are respected.\n */\nclass TouchableWin32WithoutFeedback extends React.Component<ITouchableWin32WithoutFeedbackProps, ITouchableWin32WithoutFeedbackState> {\n constructor(props) {\n super(props);\n\n this.state = { isFocused: false };\n }\n\n public render() {\n return (\n <TouchableWin32\n focusable\n rejectResponderTermination={true}\n disabled={false}\n touchableHandleActivePressIn={this._touchableHandleActivePressIn}\n touchableHandleActivePressOut={this._touchableHandleActivePressOut}\n touchableHandlePress={this._touchableHandlePress}\n touchableHandleLongPress={this._touchableHandleLongPress}\n touchableGetHighlightDelayMS={this._touchableGetHighlightDelayMS}\n touchableGetPressRectOffset={this._touchableGetPressRectOffset}\n touchableGetLongPressDelayMS={this._touchableGetLongPressDelayMS}\n touchableGetPressOutDelayMS={this._touchableGetPressOutDelayMS}\n touchableGetHitSlop={this._touchableGetHitSlop}\n onFocus={this._onFocus}\n onBlur={this._onBlur}\n renderStyle={this._generateStyle}\n >\n {React.Children.only(this.props.children)}\n </TouchableWin32>\n );\n }\n\n private readonly _touchableHandlePress = (e: IPressEvent) => {\n this.props.onPress && this.props.onPress(e);\n };\n\n private readonly _touchableHandleActivePressIn = (e: IPressEvent) => {\n this.props.onPressIn && this.props.onPressIn(e);\n };\n\n private readonly _touchableHandleActivePressOut = (e: IPressEvent) => {\n this.props.onPressOut && this.props.onPressOut(e);\n };\n\n private readonly _touchableHandleLongPress = (e: IPressEvent) => {\n this.props.onLongPress && this.props.onLongPress(e);\n };\n\n private readonly _touchableGetPressRectOffset = (): Insets => {\n return this.props.pressRetentionOffset || PRESS_RETENTION_OFFSET;\n };\n\n private readonly _touchableGetHitSlop = (): Insets => {\n return this.props.hitSlop;\n };\n\n private readonly _touchableGetHighlightDelayMS = (): number => {\n return this.props.delayPressIn || 0;\n };\n\n private readonly _touchableGetLongPressDelayMS = (): number => {\n return this.props.delayLongPress === 0 ? 0 : this.props.delayLongPress || 500;\n };\n\n private readonly _touchableGetPressOutDelayMS = (): number => {\n return this.props.delayPressOut || 0;\n };\n\n private readonly _onFocus = () => {\n this.setState({ isFocused: true });\n };\n\n private readonly _onBlur = () => {\n this.setState({ isFocused: false });\n };\n\n /**\n * The generated style uses hard-coded border width values\n */\n private readonly _generateStyle = (state: ITouchableWin32State): ViewStyle => {\n const finalStyle: ViewStyle = {\n borderWidth: state.isFocused ? 5 : 0,\n borderColor: 'red',\n };\n return Object.assign({}, this.props.style, finalStyle);\n };\n}\n\ninterface ITouchableWin32HighlightProps extends Omit <IViewWin32Props, 'children'> {\n delayLongPress?: number;\n delayLongPressIn?: number;\n delayPressOut?: number;\n onPress?: (e: IPressEvent) => void;\n onPressIn?: (e: IPressEvent) => void;\n onPressOut?: (e: IPressEvent) => void;\n onLongPress?: (e: IPressEvent) => void;\n onKeyPress?: (e: IKeyboardEvent) => void;\n onKeyPressDown?: (e: IKeyboardEvent) => void;\n pressRetentionOffset?: Insets;\n rejectResponderTermination?: boolean;\n underlayColor?: string;\n children?: IRenderChild<ITouchableWin32State>;\n}\n\ninterface ITouchableWin32HighlightComponentProps extends ITouchableWin32HighlightProps {\n // Used as an imperative handle to the TouchableWin32 interface - primarily for focus()\n innerRef?: React.Ref<TouchableWin32>;\n}\n\n/**\n * Example implementation of TouchableHighlight - not meant for use outside these examples\n * The main difference between a ful TouchableHiglight implementation and this example is that\n * TouchableHighlight should manipulate the opacity of the wrapped view to display the underlay color.\n * This example merely uses hard coded color values to distinguish between different control states\n */\nclass TouchableWin32HighlightComponent extends React.Component<ITouchableWin32HighlightComponentProps, {}> {\n\n public render() {\n return (\n <TouchableWin32\n focusable\n rejectResponderTermination={this.props.rejectResponderTermination}\n disabled={false}\n touchableHandleActivePressIn={this._touchableHandleActivePressIn}\n touchableHandleActivePressOut={this._touchableHandleActivePressOut}\n touchableHandlePress={this._touchableHandlePress}\n touchableHandleLongPress={this._touchableHandleLongPress}\n touchableGetHighlightDelayMS={this._touchableGetHighlightDelayMS}\n touchableGetPressRectOffset={this._touchableGetPressRectOffset}\n touchableGetLongPressDelayMS={this._touchableGetLongPressDelayMS}\n touchableGetPressOutDelayMS={this._touchableGetPressOutDelayMS}\n touchableGetHitSlop={this._touchableGetHitSlop}\n touchableHandleKeyPress={this._touchableHandleKeyPress}\n touchableHandleKeyPressDown={this._touchableHandleKeyPressDown}\n onFocus={this._onFocus}\n onBlur={this._onBlur}\n onMouseEnter={this._mouseEnter}\n onMouseLeave={this._mouseLeave}\n renderStyle={this._generateStyle}\n children={this.props.children}\n ref={this.props.innerRef}\n />\n );\n }\n\n private readonly _touchableHandlePress = (e: IPressEvent) => {\n this.props.onPress && this.props.onPress(e);\n this.setState({ isPressed: false });\n };\n private readonly _touchableHandleActivePressIn = (e: IPressEvent) => {\n this.props.onPressIn && this.props.onPressIn(e);\n this.setState({ isPressed: true });\n };\n private readonly _touchableHandleActivePressOut = (e: IPressEvent) => {\n this.props.onPressOut && this.props.onPressOut(e);\n this.setState({ isPressed: false });\n };\n private readonly _touchableHandleLongPress = (e: IPressEvent) => {\n this.props.onLongPress && this.props.onLongPress(e);\n };\n private readonly _touchableGetPressRectOffset = (): Insets => {\n return this.props.pressRetentionOffset || PRESS_RETENTION_OFFSET;\n };\n private readonly _touchableGetHitSlop = (): Insets => {\n return { left: 100, right: 100, top: 100, bottom: 100 };\n };\n private readonly _touchableGetHighlightDelayMS = (): number => {\n return this.props.delayLongPressIn || 0;\n };\n private readonly _touchableGetLongPressDelayMS = (): number => {\n return this.props.delayLongPress || 500;\n };\n private readonly _touchableGetPressOutDelayMS = (): number => {\n return this.props.delayPressOut || 0;\n };\n private readonly _touchableHandleKeyPress = (ev: IKeyboardEvent) => {\n this.props.onKeyPress && this.props.onKeyPress(ev);\n }\n private readonly _touchableHandleKeyPressDown = (ev: IKeyboardEvent) => {\n this.props.onKeyPressDown && this.props.onKeyPressDown(ev);\n }\n private readonly _mouseEnter = (mouseEvent): void => {\n this.props.onMouseEnter && this.props.onMouseEnter(mouseEvent);\n this.setState({ isMouseIn: true });\n };\n private readonly _mouseLeave = (mouseEvent): void => {\n this.props.onMouseLeave && this.props.onMouseLeave(mouseEvent);\n this.setState({ isMouseIn: false });\n };\n private readonly _onFocus = (ev: NativeSyntheticEvent<{}>): void => {\n this.props.onFocus && this.props.onFocus(ev);\n this.setState({ isFocused: true });\n };\n private readonly _onBlur = (ev: NativeSyntheticEvent<{}>): void => {\n this.props.onBlur && this.props.onBlur(ev);\n this.setState({ isFocused: false });\n };\n\n /**\n * The generated style uses hard-coded color values,\n * though it is trivial to pass these values as props.\n * This is an example of a render style (one that is a\n * funtion passed on to TouchableWin32 and resolved according\n * to the internal state of TouchableWin32).\n */\n private readonly _generateStyle = (state: ITouchableWin32State): ViewStyle => {\n const finalStyle: ViewStyle = {};\n finalStyle.borderColor = state.isFocused ? 'red' : 'blue';\n finalStyle.borderWidth = state.isFocused ? 10 : 5;\n if (state.isHovered) {\n if (state.isPressed) {\n finalStyle.backgroundColor = 'black';\n } else {\n finalStyle.backgroundColor = 'gray';\n }\n } else {\n if (state.isPressed) {\n finalStyle.backgroundColor = 'green';\n } else {\n finalStyle.backgroundColor = 'white';\n }\n }\n return Object.assign({}, this.props.style, finalStyle);\n };\n}\n\n// Demonstrating ref forwarding - forwarding a ref using an innerRef prop on a class component\nconst TouchableWin32Highlight = React.forwardRef<TouchableWin32, ITouchableWin32HighlightProps>(\n (props, ref) => {\n return (\n <TouchableWin32HighlightComponent innerRef={ref} {...props} />\n );\n }\n);\n\n/**\n * Both examples merely track number of presses\n */\ninterface IExampleState {\n numberOfPresses: number;\n}\n\n/**\n * TouchableHighlightExamples\n */\nclass TouchableWithoutFeedbackExample extends React.Component<{}, IExampleState> {\n constructor(props) {\n super(props);\n this.state = { numberOfPresses: 0 };\n }\n\n public render() {\n return (\n <ViewWin32 style={styles.largeContainer}>\n <TouchableWin32WithoutFeedback style={styles.outerTouch} onPress={this._onPress}>\n <ViewWin32>\n <TextWin32>Press me</TextWin32>\n </ViewWin32>\n </TouchableWin32WithoutFeedback>\n\n <TouchableWin32WithoutFeedback style={styles.outerTouch} onPress={this._onPress}>\n <ViewWin32 style={styles.smallContainer}>\n <TouchableWin32WithoutFeedback style={styles.innerTouch} onPress={this._onPress}>\n <ViewWin32>\n <TextWin32>You can also have nested Touchables</TextWin32>\n </ViewWin32>\n </TouchableWin32WithoutFeedback>\n </ViewWin32>\n </TouchableWin32WithoutFeedback>\n <TextWin32>{'Number of Recognized Presses: ' + this.state.numberOfPresses}</TextWin32>\n </ViewWin32>\n );\n }\n\n private readonly _onPress = () => {\n this.setState({ numberOfPresses: this.state.numberOfPresses + 1 });\n };\n}\n\n/**\n * TouchableHighlightExamples\n */\nclass TouchableHighlightExample extends React.Component<{}, IExampleState> {\n constructor(props) {\n super(props);\n this.state = { numberOfPresses: 0 };\n }\n\n public render() {\n return (\n <ViewWin32 style={styles.largeContainer}>\n <TouchableWin32Highlight style={styles.outerTouch} onPress={this._onPress}>\n <ViewWin32>\n <TextWin32>Press me</TextWin32>\n </ViewWin32>\n </TouchableWin32Highlight>\n\n <TouchableWin32Highlight style={styles.outerTouch} onPress={this._onPress}>\n <ViewWin32 style={styles.smallContainer}>\n <TouchableWin32Highlight style={styles.innerTouch} onPress={this._onPress} children={this._getChildrenOfInnerTouchable} />\n </ViewWin32>\n </TouchableWin32Highlight>\n <TextWin32 style={{ color: 'red' }} textStyle=\"None\">\n {'Number of Recognized Presses: ' + this.state.numberOfPresses}\n </TextWin32>\n </ViewWin32>\n );\n }\n\n /**\n * This is primarily to demonstrate render children as a function\n * of state, here we change text color depending on interaction state.\n */\n private readonly _getChildrenOfInnerTouchable = (state: ITouchableWin32State) => {\n return (\n <ViewWin32\n style={{\n borderColor: state.isFocused ? 'green' : 'pink',\n borderWidth: state.isHovered ? 10 : 5,\n height: 70,\n width: 70,\n }}\n >\n <TextWin32\n style={{\n color: this._pickColor(state.isHovered, state.isPressed),\n fontSize: state.isFocused ? 8 : 10,\n }}\n textStyle=\"None\"\n >\n Press Me!\n </TextWin32>\n </ViewWin32>\n );\n };\n\n private _pickColor(hovered: boolean, pressed: boolean) {\n if (hovered) {\n if (pressed) {\n return 'white';\n } else {\n return 'red';\n }\n } else {\n if (pressed) {\n return 'purple';\n } else {\n return 'black';\n }\n }\n }\n\n private readonly _onPress = () => {\n this.setState({ numberOfPresses: this.state.numberOfPresses + 1 });\n };\n}\n\nconst TouchableFocusExample = () => {\n const [focused, setFocused] = React.useState(false);\n const focusableRef = React.useRef<TouchableWin32>(null);\n\n // onPress callback\n const focusOnPress = React.useCallback(() => {\n focusableRef.current && focusableRef.current.focus();\n focused || setFocused(true);\n }, [focused]);\n\n // onFocus and onBlur callbacks\n const onFocus = React.useCallback(() => {\n setFocused(true);\n }, []);\n const onBlur = React.useCallback(() => {\n setFocused(false);\n }, []);\n\n return (\n <ViewWin32 style={styles.largeContainer}>\n <TouchableWin32Highlight onPress={focusOnPress}>\n <Text>Press me to focus my friend</Text>\n </TouchableWin32Highlight>\n\n <TouchableWin32Highlight\n ref={focusableRef}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n <Text>{'Focused: ' + focused}</Text>\n </TouchableWin32Highlight>\n </ViewWin32>\n );\n}\n\nexport const displayName = 'TouchableWin32 Examples';\nexport const title = 'TouchableWin32';\nexport const description = 'Demonstration of touchable + focus + hover behavior all in one component';\n\nexport const examples = [\n {\n title: 'TouchableWithoutFeedback Example',\n description: 'A simple example implementation of without feedback behavior',\n render(): JSX.Element {\n return <TouchableWithoutFeedbackExample />;\n },\n },\n {\n title: 'TouchableHighlight Example',\n description: 'A simple example implementation of highlight behavior',\n render(): JSX.Element {\n return <TouchableHighlightExample />;\n },\n },\n {\n title: 'Imperative Focus on TouchableWin32 Example',\n description: 'A simple example implementation of imperative focus behavior',\n render(): JSX.Element {\n return <TouchableFocusExample />;\n },\n }\n];\n"]}
1
+ {"version":3,"file":"TouchableWin32Test.js","sourceRoot":"","sources":["../../../../src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport React from 'react'\nimport {NativeSyntheticEvent, StyleSheet, Text, ViewStyle } from 'react-native';\nimport {Insets} from 'react-native/types/public/Insets';\nimport { TextWin32 } from '../../Text/TextWin32';\nimport { ViewWin32 } from '../../View/ViewWin32';\nimport { IViewWin32Props, IKeyboardEvent } from '../../View/ViewPropTypes';\nimport { TouchableWin32 } from '../TouchableWin32';\nimport { IPressEvent, IRenderChild } from '../TouchableWin32.Types';\nimport { ITouchableWin32State } from '../TouchableWin32.Props';\n\n/**\n * Styles used across both examples\n */\nconst styles = StyleSheet.create({\n largeContainer: {\n height: 200,\n width: 600,\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row',\n },\n smallContainer: {\n height: 90,\n width: 90,\n justifyContent: 'center',\n alignContent: 'center',\n },\n highlight: {\n height: 150,\n width: 150,\n justifyContent: 'space-around',\n alignContent: 'center',\n alignItems: 'center',\n flexDirection: 'row',\n },\n outerTouch: {\n height: 150,\n width: 150,\n justifyContent: 'space-around',\n alignContent: 'center',\n alignItems: 'center',\n flexDirection: 'row',\n },\n innerTouch: {\n height: 90,\n width: 90,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\n/**\n * Constant press rect offset, used to demonstrate press geometry\n */\nconst PRESS_RETENTION_OFFSET: Insets = {\n top: 100,\n left: 100,\n right: 100,\n bottom: 100,\n};\n\ninterface ITouchableWin32WithoutFeedbackProps extends IViewWin32Props {\n delayLongPress?: number;\n delayPressIn?: number;\n delayPressOut?: number;\n onPress?: (e: IPressEvent) => void;\n onPressIn?: (e: IPressEvent) => void;\n onPressOut?: (e: IPressEvent) => void;\n onLongPress?: (e: IPressEvent) => void;\n pressRetentionOffset?: Insets;\n rejectResponderTermination?: boolean;\n}\n\ninterface ITouchableWin32WithoutFeedbackState {\n isFocused: boolean;\n}\n\n/**\n * Example implementation of TouchableWithoutFeedback - not meant for use outside these examples\n * This is mainly there to show the ability to respond to touches without providing visual feedback,\n * though we do show a red border on focus to know where starts start and end and whether press rect\n * offsets are respected.\n */\nclass TouchableWin32WithoutFeedback extends React.Component<ITouchableWin32WithoutFeedbackProps, ITouchableWin32WithoutFeedbackState> {\n constructor(props) {\n super(props);\n\n this.state = { isFocused: false };\n }\n\n public render() {\n return (\n <TouchableWin32\n focusable\n rejectResponderTermination={true}\n disabled={false}\n touchableHandleActivePressIn={this._touchableHandleActivePressIn}\n touchableHandleActivePressOut={this._touchableHandleActivePressOut}\n touchableHandlePress={this._touchableHandlePress}\n touchableHandleLongPress={this._touchableHandleLongPress}\n touchableGetHighlightDelayMS={this._touchableGetHighlightDelayMS}\n touchableGetPressRectOffset={this._touchableGetPressRectOffset}\n touchableGetLongPressDelayMS={this._touchableGetLongPressDelayMS}\n touchableGetPressOutDelayMS={this._touchableGetPressOutDelayMS}\n touchableGetHitSlop={this._touchableGetHitSlop}\n onFocus={this._onFocus}\n onBlur={this._onBlur}\n renderStyle={this._generateStyle}\n >\n {React.Children.only(this.props.children)}\n </TouchableWin32>\n );\n }\n\n private readonly _touchableHandlePress = (e: IPressEvent) => {\n this.props.onPress && this.props.onPress(e);\n };\n\n private readonly _touchableHandleActivePressIn = (e: IPressEvent) => {\n this.props.onPressIn && this.props.onPressIn(e);\n };\n\n private readonly _touchableHandleActivePressOut = (e: IPressEvent) => {\n this.props.onPressOut && this.props.onPressOut(e);\n };\n\n private readonly _touchableHandleLongPress = (e: IPressEvent) => {\n this.props.onLongPress && this.props.onLongPress(e);\n };\n\n private readonly _touchableGetPressRectOffset = (): Insets => {\n return this.props.pressRetentionOffset || PRESS_RETENTION_OFFSET;\n };\n\n private readonly _touchableGetHitSlop = (): Insets => {\n return this.props.hitSlop;\n };\n\n private readonly _touchableGetHighlightDelayMS = (): number => {\n return this.props.delayPressIn || 0;\n };\n\n private readonly _touchableGetLongPressDelayMS = (): number => {\n return this.props.delayLongPress === 0 ? 0 : this.props.delayLongPress || 500;\n };\n\n private readonly _touchableGetPressOutDelayMS = (): number => {\n return this.props.delayPressOut || 0;\n };\n\n private readonly _onFocus = () => {\n this.setState({ isFocused: true });\n };\n\n private readonly _onBlur = () => {\n this.setState({ isFocused: false });\n };\n\n /**\n * The generated style uses hard-coded border width values\n */\n private readonly _generateStyle = (state: ITouchableWin32State): ViewStyle => {\n const finalStyle: ViewStyle = {\n borderWidth: state.isFocused ? 5 : 0,\n borderColor: 'red',\n };\n return Object.assign({}, this.props.style, finalStyle);\n };\n}\n\ninterface ITouchableWin32HighlightProps extends Omit <IViewWin32Props, 'children'> {\n delayLongPress?: number;\n delayLongPressIn?: number;\n delayPressOut?: number;\n onPress?: (e: IPressEvent) => void;\n onPressIn?: (e: IPressEvent) => void;\n onPressOut?: (e: IPressEvent) => void;\n onLongPress?: (e: IPressEvent) => void;\n onKeyPress?: (e: IKeyboardEvent) => void;\n onKeyPressDown?: (e: IKeyboardEvent) => void;\n pressRetentionOffset?: Insets;\n rejectResponderTermination?: boolean;\n underlayColor?: string;\n children?: IRenderChild<ITouchableWin32State>;\n}\n\ninterface ITouchableWin32HighlightComponentProps extends ITouchableWin32HighlightProps {\n // Used as an imperative handle to the TouchableWin32 interface - primarily for focus()\n innerRef?: React.Ref<TouchableWin32>;\n}\n\n/**\n * Example implementation of TouchableHighlight - not meant for use outside these examples\n * The main difference between a full TouchableHighlight implementation and this example is that\n * TouchableHighlight should manipulate the opacity of the wrapped view to display the underlay color.\n * This example merely uses hard coded color values to distinguish between different control states\n */\nclass TouchableWin32HighlightComponent extends React.Component<ITouchableWin32HighlightComponentProps, {}> {\n\n public render() {\n return (\n <TouchableWin32\n focusable\n rejectResponderTermination={this.props.rejectResponderTermination}\n disabled={false}\n touchableHandleActivePressIn={this._touchableHandleActivePressIn}\n touchableHandleActivePressOut={this._touchableHandleActivePressOut}\n touchableHandlePress={this._touchableHandlePress}\n touchableHandleLongPress={this._touchableHandleLongPress}\n touchableGetHighlightDelayMS={this._touchableGetHighlightDelayMS}\n touchableGetPressRectOffset={this._touchableGetPressRectOffset}\n touchableGetLongPressDelayMS={this._touchableGetLongPressDelayMS}\n touchableGetPressOutDelayMS={this._touchableGetPressOutDelayMS}\n touchableGetHitSlop={this._touchableGetHitSlop}\n touchableHandleKeyPress={this._touchableHandleKeyPress}\n touchableHandleKeyPressDown={this._touchableHandleKeyPressDown}\n onFocus={this._onFocus}\n onBlur={this._onBlur}\n onMouseEnter={this._mouseEnter}\n onMouseLeave={this._mouseLeave}\n renderStyle={this._generateStyle}\n children={this.props.children}\n ref={this.props.innerRef}\n />\n );\n }\n\n private readonly _touchableHandlePress = (e: IPressEvent) => {\n this.props.onPress && this.props.onPress(e);\n this.setState({ isPressed: false });\n };\n private readonly _touchableHandleActivePressIn = (e: IPressEvent) => {\n this.props.onPressIn && this.props.onPressIn(e);\n this.setState({ isPressed: true });\n };\n private readonly _touchableHandleActivePressOut = (e: IPressEvent) => {\n this.props.onPressOut && this.props.onPressOut(e);\n this.setState({ isPressed: false });\n };\n private readonly _touchableHandleLongPress = (e: IPressEvent) => {\n this.props.onLongPress && this.props.onLongPress(e);\n };\n private readonly _touchableGetPressRectOffset = (): Insets => {\n return this.props.pressRetentionOffset || PRESS_RETENTION_OFFSET;\n };\n private readonly _touchableGetHitSlop = (): Insets => {\n return { left: 100, right: 100, top: 100, bottom: 100 };\n };\n private readonly _touchableGetHighlightDelayMS = (): number => {\n return this.props.delayLongPressIn || 0;\n };\n private readonly _touchableGetLongPressDelayMS = (): number => {\n return this.props.delayLongPress || 500;\n };\n private readonly _touchableGetPressOutDelayMS = (): number => {\n return this.props.delayPressOut || 0;\n };\n private readonly _touchableHandleKeyPress = (ev: IKeyboardEvent) => {\n this.props.onKeyPress && this.props.onKeyPress(ev);\n }\n private readonly _touchableHandleKeyPressDown = (ev: IKeyboardEvent) => {\n this.props.onKeyPressDown && this.props.onKeyPressDown(ev);\n }\n private readonly _mouseEnter = (mouseEvent): void => {\n this.props.onMouseEnter && this.props.onMouseEnter(mouseEvent);\n this.setState({ isMouseIn: true });\n };\n private readonly _mouseLeave = (mouseEvent): void => {\n this.props.onMouseLeave && this.props.onMouseLeave(mouseEvent);\n this.setState({ isMouseIn: false });\n };\n private readonly _onFocus = (ev: NativeSyntheticEvent<{}>): void => {\n this.props.onFocus && this.props.onFocus(ev);\n this.setState({ isFocused: true });\n };\n private readonly _onBlur = (ev: NativeSyntheticEvent<{}>): void => {\n this.props.onBlur && this.props.onBlur(ev);\n this.setState({ isFocused: false });\n };\n\n /**\n * The generated style uses hard-coded color values,\n * though it is trivial to pass these values as props.\n * This is an example of a render style (one that is a\n * function passed on to TouchableWin32 and resolved according\n * to the internal state of TouchableWin32).\n */\n private readonly _generateStyle = (state: ITouchableWin32State): ViewStyle => {\n const finalStyle: ViewStyle = {};\n finalStyle.borderColor = state.isFocused ? 'red' : 'blue';\n finalStyle.borderWidth = state.isFocused ? 10 : 5;\n if (state.isHovered) {\n if (state.isPressed) {\n finalStyle.backgroundColor = 'black';\n } else {\n finalStyle.backgroundColor = 'gray';\n }\n } else {\n if (state.isPressed) {\n finalStyle.backgroundColor = 'green';\n } else {\n finalStyle.backgroundColor = 'white';\n }\n }\n return Object.assign({}, this.props.style, finalStyle);\n };\n}\n\n// Demonstrating ref forwarding - forwarding a ref using an innerRef prop on a class component\nconst TouchableWin32Highlight = React.forwardRef<TouchableWin32, ITouchableWin32HighlightProps>(\n (props, ref) => {\n return (\n <TouchableWin32HighlightComponent innerRef={ref} {...props} />\n );\n }\n);\n\n/**\n * Both examples merely track number of presses\n */\ninterface IExampleState {\n numberOfPresses: number;\n}\n\n/**\n * TouchableHighlightExamples\n */\nclass TouchableWithoutFeedbackExample extends React.Component<{}, IExampleState> {\n constructor(props) {\n super(props);\n this.state = { numberOfPresses: 0 };\n }\n\n public render() {\n return (\n <ViewWin32 style={styles.largeContainer}>\n <TouchableWin32WithoutFeedback style={styles.outerTouch} onPress={this._onPress}>\n <ViewWin32>\n <TextWin32>Press me</TextWin32>\n </ViewWin32>\n </TouchableWin32WithoutFeedback>\n\n <TouchableWin32WithoutFeedback style={styles.outerTouch} onPress={this._onPress}>\n <ViewWin32 style={styles.smallContainer}>\n <TouchableWin32WithoutFeedback style={styles.innerTouch} onPress={this._onPress}>\n <ViewWin32>\n <TextWin32>You can also have nested Touchables</TextWin32>\n </ViewWin32>\n </TouchableWin32WithoutFeedback>\n </ViewWin32>\n </TouchableWin32WithoutFeedback>\n <TextWin32>{'Number of Recognized Presses: ' + this.state.numberOfPresses}</TextWin32>\n </ViewWin32>\n );\n }\n\n private readonly _onPress = () => {\n this.setState({ numberOfPresses: this.state.numberOfPresses + 1 });\n };\n}\n\n/**\n * TouchableHighlightExamples\n */\nclass TouchableHighlightExample extends React.Component<{}, IExampleState> {\n constructor(props) {\n super(props);\n this.state = { numberOfPresses: 0 };\n }\n\n public render() {\n return (\n <ViewWin32 style={styles.largeContainer}>\n <TouchableWin32Highlight style={styles.outerTouch} onPress={this._onPress}>\n <ViewWin32>\n <TextWin32>Press me</TextWin32>\n </ViewWin32>\n </TouchableWin32Highlight>\n\n <TouchableWin32Highlight style={styles.outerTouch} onPress={this._onPress}>\n <ViewWin32 style={styles.smallContainer}>\n <TouchableWin32Highlight style={styles.innerTouch} onPress={this._onPress} children={this._getChildrenOfInnerTouchable} />\n </ViewWin32>\n </TouchableWin32Highlight>\n <TextWin32 style={{ color: 'red' }} textStyle=\"None\">\n {'Number of Recognized Presses: ' + this.state.numberOfPresses}\n </TextWin32>\n </ViewWin32>\n );\n }\n\n /**\n * This is primarily to demonstrate render children as a function\n * of state, here we change text color depending on interaction state.\n */\n private readonly _getChildrenOfInnerTouchable = (state: ITouchableWin32State) => {\n return (\n <ViewWin32\n style={{\n borderColor: state.isFocused ? 'green' : 'pink',\n borderWidth: state.isHovered ? 10 : 5,\n height: 70,\n width: 70,\n }}\n >\n <TextWin32\n style={{\n color: this._pickColor(state.isHovered, state.isPressed),\n fontSize: state.isFocused ? 8 : 10,\n }}\n textStyle=\"None\"\n >\n Press Me!\n </TextWin32>\n </ViewWin32>\n );\n };\n\n private _pickColor(hovered: boolean, pressed: boolean) {\n if (hovered) {\n if (pressed) {\n return 'white';\n } else {\n return 'red';\n }\n } else {\n if (pressed) {\n return 'purple';\n } else {\n return 'black';\n }\n }\n }\n\n private readonly _onPress = () => {\n this.setState({ numberOfPresses: this.state.numberOfPresses + 1 });\n };\n}\n\nconst TouchableFocusExample = () => {\n const [focused, setFocused] = React.useState(false);\n const focusableRef = React.useRef<TouchableWin32>(null);\n\n // onPress callback\n const focusOnPress = React.useCallback(() => {\n focusableRef.current && focusableRef.current.focus();\n focused || setFocused(true);\n }, [focused]);\n\n // onFocus and onBlur callbacks\n const onFocus = React.useCallback(() => {\n setFocused(true);\n }, []);\n const onBlur = React.useCallback(() => {\n setFocused(false);\n }, []);\n\n return (\n <ViewWin32 style={styles.largeContainer}>\n <TouchableWin32Highlight onPress={focusOnPress}>\n <Text>Press me to focus my friend</Text>\n </TouchableWin32Highlight>\n\n <TouchableWin32Highlight\n ref={focusableRef}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n <Text>{'Focused: ' + focused}</Text>\n </TouchableWin32Highlight>\n </ViewWin32>\n );\n}\n\nexport const displayName = 'TouchableWin32 Examples';\nexport const title = 'TouchableWin32';\nexport const description = 'Demonstration of touchable + focus + hover behavior all in one component';\n\nexport const examples = [\n {\n title: 'TouchableWithoutFeedback Example',\n description: 'A simple example implementation of without feedback behavior',\n render(): JSX.Element {\n return <TouchableWithoutFeedbackExample />;\n },\n },\n {\n title: 'TouchableHighlight Example',\n description: 'A simple example implementation of highlight behavior',\n render(): JSX.Element {\n return <TouchableHighlightExample />;\n },\n },\n {\n title: 'Imperative Focus on TouchableWin32 Example',\n description: 'A simple example implementation of imperative focus behavior',\n render(): JSX.Element {\n return <TouchableFocusExample />;\n },\n }\n];\n"]}
@@ -181,7 +181,7 @@ class TouchableBounce extends React.Component<Props, State> {
181
181
  accessibilityElementsHidden={
182
182
  this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden
183
183
  }
184
- nativeID={this.props.nativeID}
184
+ nativeID={this.props.id ?? this.props.nativeID}
185
185
  testID={this.props.testID}
186
186
  hitSlop={this.props.hitSlop}
187
187
  focusable={
@@ -344,7 +344,7 @@ class TouchableHighlight extends React.Component<Props, State> {
344
344
  focusable={
345
345
  this.props.focusable !== false && this.props.onPress !== undefined
346
346
  }
347
- nativeID={this.props.nativeID}
347
+ nativeID={this.props.id ?? this.props.nativeID}
348
348
  testID={this.props.testID}
349
349
  ref={this.props.hostRef}
350
350
  {...eventHandlersWithoutBlurAndFocus}>
@@ -322,7 +322,7 @@ class TouchableNativeFeedback extends React.Component<Props, State> {
322
322
  this.props.focusable !== false &&
323
323
  this.props.onPress !== undefined &&
324
324
  !this.props.disabled,
325
- nativeID: this.props.nativeID,
325
+ nativeID: this.props.id ?? this.props.nativeID,
326
326
  nextFocusDown: this.props.nextFocusDown,
327
327
  nextFocusForward: this.props.nextFocusForward,
328
328
  nextFocusLeft: this.props.nextFocusLeft,
@@ -207,6 +207,7 @@ class TouchableOpacity extends React.Component<Props, State> {
207
207
 
208
208
  _getChildStyleOpacityWithDefault(): number {
209
209
  // $FlowFixMe[underconstrained-implicit-instantiation]
210
+ // $FlowFixMe[prop-missing]
210
211
  const opacity = flattenStyle(this.props.style)?.opacity;
211
212
  return typeof opacity === 'number' ? opacity : 1;
212
213
  }
@@ -275,7 +276,7 @@ class TouchableOpacity extends React.Component<Props, State> {
275
276
  this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden
276
277
  }
277
278
  style={[this.props.style, {opacity: this.state.anim}]}
278
- nativeID={this.props.nativeID}
279
+ nativeID={this.props.id ?? this.props.nativeID}
279
280
  testID={this.props.testID}
280
281
  onLayout={this.props.onLayout}
281
282
  nextFocusDown={this.props.nextFocusDown}
@@ -303,8 +304,10 @@ class TouchableOpacity extends React.Component<Props, State> {
303
304
  if (
304
305
  this.props.disabled !== prevProps.disabled ||
305
306
  // $FlowFixMe[underconstrained-implicit-instantiation]
307
+ // $FlowFixMe[prop-missing]
306
308
  flattenStyle(prevProps.style)?.opacity !==
307
309
  // $FlowFixMe[underconstrained-implicit-instantiation]
310
+ // $FlowFixMe[prop-missing]
308
311
  flattenStyle(this.props.style)?.opacity
309
312
  ) {
310
313
  this._opacityInactive(250);
@@ -25,7 +25,7 @@ export declare class TouchableWin32 extends React.Component<ITouchableWin32Props
25
25
  private readonly _internalRef;
26
26
  constructor(props: any);
27
27
  componentWillUnmount(): void;
28
- render(): JSX.Element;
28
+ render(): React.JSX.Element;
29
29
  focus: () => void;
30
30
  /**
31
31
  * The rejectResponderTermination prop provides a way to accept/reject termination requests
@@ -1 +1 @@
1
- {"version":3,"file":"TouchableWin32.js","sourceRoot":"","sources":["../../../src/Libraries/Components/Touchable/TouchableWin32.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * This is primarily a fork of React Native's Touchable Mixin.\n * It has been repurposed as it's own standalone control for win32,\n * as it needs to support a richer set of functionality on the desktop.\n * The touchable variants can be rewritten as wrappers around TouchableWin32\n * by passing the correct set of props down and managing state correctly.\n *\n * React Native's Touchable.js file (https://github.com/facebook/react-native/blob/master/Libraries/Components/Touchable/Touchable.js)\n * provides an overview over how touchables work and interact with the gesture responder system.\n */\n'use strict';\n\nimport React from 'react'\nimport { NativeSyntheticEvent, StyleProp, UIManager, ViewStyle, ViewWin32 } from 'react-native';\n\nimport { ITouchableWin32Props, ITouchableWin32State } from './TouchableWin32.Props';\nimport {\n IChildAsFunction,\n IDimensions,\n IPosition,\n IPressEvent,\n IPressInLocation,\n ISignal,\n IState,\n IStateConditions,\n ITransitions,\n} from './TouchableWin32.Types';\nimport { IKeyboardEvent } from '../View/ViewPropTypes';\n\nconst BoundingDimensions = require('./BoundingDimensions');\nconst Position = require('./Position');\n\nconst {findNodeHandle} = require('../../Renderer/shims/ReactNative');\n\n/**\n * Extracts a single touch, generally this is the active touch or touch that\n * has just ended\n * @param e - a press event containing information about the native event\n */\nfunction extractSingleTouch(e: IPressEvent) {\n const nativeEvent = e.nativeEvent;\n const touches = nativeEvent.touches;\n const changedTouches = nativeEvent.changedTouches;\n const hasTouches = touches && touches.length > 0;\n const hasChangedTouches = changedTouches && changedTouches.length > 0;\n\n return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;\n}\n\n/** Quick lookup maps for a variety of conditions */\nconst baseStatesCondition: IStateConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false,\n};\n\nconst IsActive: IStateConditions = {\n ...baseStatesCondition,\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n};\n\nconst IsPressingIn: IStateConditions = {\n ...baseStatesCondition,\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\nconst IsLongPressingIn: IStateConditions = {\n ...baseStatesCondition,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\nconst transitions: ITransitions = {\n NOT_RESPONDER: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'ERROR',\n RESPONDER_TERMINATED: 'ERROR',\n ENTER_PRESS_RECT: 'ERROR',\n LEAVE_PRESS_RECT: 'ERROR',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_IN',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_OUT',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n ERROR: {\n DELAY: 'NOT_RESPONDER',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'NOT_RESPONDER',\n LEAVE_PRESS_RECT: 'NOT_RESPONDER',\n LONG_PRESS_DETECTED: 'NOT_RESPONDER',\n },\n};\n\n// Touchable maintains additional internal state to manage keypress interactions\n// This information is abstracted away when passed to children off the touchable\n// (function children) or styles. A keypressed state is equivalent to a normal\n// press state. If either a pointer, mouse, or special key (space/enter) is pressed\n// the touchable considers itself to be in a pressed state. Do note that key presses\n// will not invoke gesture responder hooksand are not subject to the passed in delays.\ninterface IInternalTouchableWin32State extends ITouchableWin32State {\n isKeyPressed: boolean;\n}\n\n/** Constants for integrating into UI Components */\nconst HIGHLIGHT_DELAY_MS = 130;\nconst PRESS_EXPAND_DIPS = 20; // Subject to change for win32 and desktop\nconst LONG_PRESS_THRESHOLD = 500;\nconst LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\nconst LONG_PRESS_ALLOWED_MOVEMENT = 10;\n\n/**\n * TouchableWin32 is a 'componentization' of the Touchable Mixin in React Native.\n * This means that instead of implementing components such as TouchableHighlight\n * via the mixin, they are merely implemented as wrappers around TouchableWin32,\n * forwarding the correct set of props. Additionally, TouchableWin32 supports hover\n * via onMouseEnter and onMouseLeave and focus/blur via onFocus/onBlur.\n * TouchableWin32 also allows for functions as child components (that use the internal\n * state of the touchable to conditionally render children) as well functions as styles\n * (that use internal state to conditionally calculate styles)\n */\nexport class TouchableWin32 extends React.Component<ITouchableWin32Props, IInternalTouchableWin32State> {\n private _longPressDelayTimeout: NodeJS.Timeout;\n private _touchableDelayTimeout: NodeJS.Timeout;\n private _pressOutDelayTimeout: NodeJS.Timeout;\n private _pressInLocation: IPressInLocation;\n private _touchState: IState;\n private _responderID: number;\n private _positionOnActivate: IPosition;\n private _dimensionsOnActivate: IDimensions;\n\n private readonly _internalRef: React.RefObject<ViewWin32>\n\n constructor(props) {\n super(props);\n\n this.state = {\n isKeyPressed: false,\n isPressed: false,\n isFocused: false,\n isHovered: false,\n };\n\n this._internalRef = React.createRef<ViewWin32>();\n }\n\n public componentWillUnmount() {\n this._touchableDelayTimeout && clearTimeout(this._touchableDelayTimeout);\n this._longPressDelayTimeout && clearTimeout(this._longPressDelayTimeout);\n this._pressOutDelayTimeout && clearTimeout(this._pressOutDelayTimeout);\n }\n\n public render() {\n const { children, style, renderStyle, ...rest } = this.props;\n\n // The React Native touchables generally clone the child component\n // to apply additional styles to it. This approach allows children\n // to be passed in as functions (to be invoked with the current state),\n // it is handy for manipulating children as a result of the interaction\n // state (e.g. text color). A similar approach is taken for style\n let child: React.ReactNode;\n if (children) {\n child = typeof children === 'function' ?\n (children as IChildAsFunction<ITouchableWin32State>)(this._deriveStateFromInternalState()) : children;\n\n // Continue to enforce single child constraint\n child = React.Children.only(child);\n }\n\n let computedStyle: StyleProp<ViewStyle>;\n if (renderStyle) {\n computedStyle = renderStyle(this._deriveStateFromInternalState());\n } else if (style) {\n computedStyle = style;\n }\n\n return (\n <ViewWin32\n // Forward most of the props\n {...rest}\n // Hooks into Gesture Responder System\n onStartShouldSetResponder={this._touchableHandleStartShouldSetResponder}\n onResponderTerminationRequest={this._touchableHandleResponderTerminationRequest}\n onResponderGrant={this._touchableHandleResponderGrant}\n onResponderMove={this._touchableHandleResponderMove}\n onResponderRelease={this._touchableHandleResponderRelease}\n onResponderTerminate={this._touchableHandleResponderTerminate}\n // Hover\n onMouseEnter={this._onMouseEnter}\n onMouseLeave={this._onMouseLeave}\n // Focus\n onFocus={this._onFocus}\n onBlur={this._onBlur}\n // Key press interactions\n onKeyDown={this._onKeyDown}\n onKeyUp={this._onKeyUp}\n // Ref\n ref={this._internalRef}\n // Style\n style={computedStyle}\n >\n {child}\n </ViewWin32>\n );\n }\n\n public focus = () => {\n this._internalRef.current.focus();\n }\n\n /**\n * The rejectResponderTermination prop provides a way to accept/reject termination requests\n */\n private readonly _touchableHandleResponderTerminationRequest = (): boolean => {\n return !this.props.rejectResponderTermination;\n };\n\n /**\n * Only reject an opportunity to become the responder on bubble if disabled\n */\n private readonly _touchableHandleStartShouldSetResponder = (): boolean => {\n return !this.props.disabled;\n };\n\n /** TODO: Long press cancel as a prop may be a good idea */\n private readonly _touchableLongPressCancelsPress = (): boolean => {\n return true;\n };\n\n /**\n * On responder being granted, state and local data need to be set\n */\n private readonly _touchableHandleResponderGrant = (e: IPressEvent): void => {\n const dispatchID = findNodeHandle(e.currentTarget);\n e.persist();\n\n this._pressOutDelayTimeout && clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n\n this._touchState = 'NOT_RESPONDER';\n this._responderID = dispatchID;\n\n this._receiveSignal('RESPONDER_GRANT', e);\n let delayMS: number = this.props.touchableGetHighlightDelayMS\n ? Math.max(this.props.touchableGetHighlightDelayMS(), 0)\n : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n\n if (delayMS !== 0) {\n this._touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n } else {\n this._handleDelay(e);\n }\n\n let longDelayMS: number = this.props.touchableGetLongPressDelayMS\n ? Math.max(this.props.touchableGetLongPressDelayMS(), 10)\n : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this._longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);\n };\n\n /**\n * Handle responder release\n */\n private readonly _touchableHandleResponderRelease = (e: IPressEvent) => {\n this._pressInLocation = null;\n this._receiveSignal('RESPONDER_RELEASE', e);\n };\n\n /**\n * Handle responder terminate\n */\n private readonly _touchableHandleResponderTerminate = (e: IPressEvent) => {\n this._pressInLocation = null;\n this._receiveSignal('RESPONDER_TERMINATED', e);\n };\n\n /**\n * Handles move events\n */\n private readonly _touchableHandleResponderMove = (e: IPressEvent) => {\n if (!this._positionOnActivate) {\n return;\n }\n\n const positionOnActivate = this._positionOnActivate;\n const dimensionsOnActivate = this._dimensionsOnActivate;\n const pressRectOffset = this.props.touchableGetPressRectOffset\n ? this.props.touchableGetPressRectOffset()\n : {\n left: PRESS_EXPAND_DIPS,\n right: PRESS_EXPAND_DIPS,\n top: PRESS_EXPAND_DIPS,\n bottom: PRESS_EXPAND_DIPS,\n };\n\n let pressExpandLeft = pressRectOffset.left;\n let pressExpandTop = pressRectOffset.top;\n let pressExpandRight = pressRectOffset.right;\n let pressExpandBottom = pressRectOffset.bottom;\n\n // TODO implement touchableGetHitSlop natively\n const hitSlop = this.props.touchableGetHitSlop ? this.props.touchableGetHitSlop() : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n const touch = extractSingleTouch(e);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n\n if (this._pressInLocation) {\n const movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this._pressInLocation.pageX, this._pressInLocation.pageY);\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n const isTouchWithinActive =\n pageX > positionOnActivate.left - pressExpandLeft &&\n pageY > positionOnActivate.top - pressExpandTop &&\n pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight &&\n pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;\n if (isTouchWithinActive) {\n const prevState = this._touchState;\n this._receiveSignal('ENTER_PRESS_RECT', e);\n const currState = this._touchState;\n if (currState === 'RESPONDER_INACTIVE_PRESS_IN' && prevState !== 'RESPONDER_INACTIVE_PRESS_IN') {\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal('LEAVE_PRESS_RECT', e);\n }\n };\n\n /**\n * Used while performing side effects during state transitions,\n * to maintain proper bounding dimensions and positional information\n */\n private readonly _remeasureMetricsOnActivation = () => {\n const tag = this._responderID;\n if (tag === null) {\n return;\n }\n\n UIManager.measure(tag, this._handleQueryLayout);\n };\n\n /**\n * Callback into measure, see _remeasureMetricsOnActivation\n */\n private readonly _handleQueryLayout = (l: number, t: number, w: number, h: number, globalX: number, globalY: number) => {\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n\n this._positionOnActivate = Position.getPooled(globalX, globalY);\n this._dimensionsOnActivate = BoundingDimensions.getPooled(w, h);\n };\n\n private readonly _handleDelay = (e: IPressEvent) => {\n this._touchableDelayTimeout = null;\n this._receiveSignal('DELAY', e);\n };\n\n private readonly _handleLongDelay = (e: IPressEvent) => {\n this._longPressDelayTimeout = null;\n const currState = this._touchState;\n\n if (currState !== 'RESPONDER_ACTIVE_PRESS_IN' && currState !== 'RESPONDER_ACTIVE_LONG_PRESS_IN') {\n const errorMessage =\n 'Attempted to transition from state ' +\n currState +\n ' to ' +\n 'RESPONDER_ACTIVE_LONG_PRESS_IN ' +\n 'which is not supported. This is most likely due to ' +\n 'Touchable.longPressDelayTimeout not being canceled.';\n console.error(errorMessage);\n } else {\n this._receiveSignal('LONG_PRESS_DETECTED', e);\n }\n };\n\n /**\n * Manages state transitions\n */\n private readonly _receiveSignal = (signal: ISignal, e: IPressEvent) => {\n const responderID = this._responderID;\n const currState = this._touchState;\n const nextState: IState = transitions[currState] ? transitions[currState][signal] : null;\n\n if (!nextState) {\n const errorMessage = 'Unrecognized signal ' + signal + ' or state ' + currState + ' for Touchable responder ' + responderID + '.';\n throw new Error(errorMessage);\n }\n if (nextState === 'ERROR') {\n const errorMessage = 'Touchable cannot transition from ' + currState + ' to ' + signal + ' for responder ' + responderID + '.';\n throw new Error(errorMessage);\n }\n\n if (currState !== nextState) {\n this._performSideEffectsForTransition(currState, nextState, signal, e);\n this._touchState = nextState;\n }\n };\n\n private readonly _cancelLongPressDelayTimeout = () => {\n this._longPressDelayTimeout && clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n };\n\n private readonly _isHighlight = (state: IState) => {\n return state === 'RESPONDER_ACTIVE_PRESS_IN' || state === 'RESPONDER_ACTIVE_LONG_PRESS_IN';\n };\n\n private readonly _savePressInLocation = (e: IPressEvent) => {\n const touch = extractSingleTouch(e);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n const locationX = touch && touch.locationX;\n const locationY = touch && touch.locationY;\n this._pressInLocation = { pageX, pageY, locationX, locationY };\n };\n\n private readonly _getDistanceBetweenPoints = (aX: number, aY: number, bX: number, bY: number): number => {\n const deltaX = aX - bX;\n const deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n };\n\n /**\n * Any highlighting/visual effects is done here,\n * This is also where press callbacks are invoked from\n */\n // Existing high cyclomatic complexity\n \n private readonly _performSideEffectsForTransition = (currState: IState, nextState: IState, signal: ISignal, e: IPressEvent) => {\n const currIsHighlight = this._isHighlight(currState);\n const newIsHighlight = this._isHighlight(nextState);\n\n const isFinalSignal = signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n const isInitialTransition = currState === 'NOT_RESPONDER' && nextState === 'RESPONDER_INACTIVE_PRESS_IN';\n\n const isActiveTransition = !IsActive[currState] && IsActive[nextState];\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[currState] && signal === 'LONG_PRESS_DETECTED') {\n this.props.touchableHandleLongPress && this.props.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !currIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && currIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[currState] && signal === 'RESPONDER_RELEASE') {\n const hasLongPressHandler = !!this.props.onLongPress;\n const pressIsLongButStillCallOnPress = IsLongPressingIn[currState] && (!hasLongPressHandler || this._touchableLongPressCancelsPress);\n const shouldInvokePress = !IsLongPressingIn[currState] || pressIsLongButStillCallOnPress;\n\n if (shouldInvokePress && this.props.touchableHandlePress) {\n if (!newIsHighlight && !currIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n this._endHighlight(e);\n }\n\n this.props.touchableHandlePress(e);\n }\n }\n\n this._touchableDelayTimeout && clearTimeout(this._touchableDelayTimeout);\n this._touchableDelayTimeout = null;\n };\n\n private readonly _startHighlight = (e: IPressEvent) => {\n this._savePressInLocation(e);\n this.setState({ isPressed: true });\n this.props.touchableHandleActivePressIn && this.props.touchableHandleActivePressIn(e);\n };\n\n private readonly _endHighlight = (e: IPressEvent) => {\n function _handler() {\n this.props.touchableHandleActivePressOut(e);\n }\n\n this.setState({ isPressed: false });\n if (this.props.touchableHandleActivePressOut) {\n if (this.props.touchableGetPressOutDelayMS && this.props.touchableGetPressOutDelayMS()) {\n this._pressOutDelayTimeout = setTimeout(_handler.bind(this), this.props.touchableGetPressOutDelayMS());\n } else {\n this.props.touchableHandleActivePressOut(e);\n }\n }\n };\n\n private readonly _onMouseEnter = (mouseEvent) => {\n this.setState({ isHovered: true });\n this.props.onMouseEnter && this.props.onMouseEnter(mouseEvent);\n };\n\n private readonly _onMouseLeave = (mouseEvent) => {\n this.setState({ isHovered: false });\n this.props.onMouseLeave && this.props.onMouseLeave(mouseEvent);\n };\n\n private readonly _onFocus = (ev: NativeSyntheticEvent<{}>) => {\n this.setState({ isFocused: true });\n this.props.onFocus && this.props.onFocus(ev);\n };\n\n private readonly _onBlur = (ev: NativeSyntheticEvent<{}>) => {\n this.setState({ isFocused: false });\n this.props.onBlur && this.props.onBlur(ev);\n };\n\n private readonly _onKeyDown = (ev: IKeyboardEvent) => {\n if (this._filterOnKey(ev)) {\n this.setState({ isKeyPressed: true });\n this.props.touchableHandleKeyPressDown && this.props.touchableHandleKeyPressDown(ev);\n }\n\n this.props.onKeyDown && this.props.onKeyDown(ev);\n };\n\n private readonly _onKeyUp = (ev: IKeyboardEvent) => {\n if (this._filterOnKey(ev)) {\n this.setState({ isKeyPressed: false });\n this.props.touchableHandleKeyPress && this.props.touchableHandleKeyPress(ev);\n }\n\n this.props.onKeyUp && this.props.onKeyUp(ev);\n };\n\n private readonly _deriveStateFromInternalState = (): ITouchableWin32State => {\n return {\n isPressed: this.state.isPressed || this.state.isKeyPressed,\n isHovered: this.state.isHovered,\n isFocused: this.state.isFocused,\n };\n }\n\n private readonly _filterOnKey = (ev: IKeyboardEvent): boolean => {\n if (this.props.filterKeys) {\n return this.props.filterKeys(ev.nativeEvent.key);\n }\n\n // Otherwise fall back to handling space and enter only\n return ev.nativeEvent.key === ' ' || ev.nativeEvent.key === 'Enter';\n }\n}\n"]}
1
+ {"version":3,"file":"TouchableWin32.js","sourceRoot":"","sources":["../../../src/Libraries/Components/Touchable/TouchableWin32.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * This is primarily a fork of React Native's Touchable Mixin.\n * It has been repurposed as it's own standalone control for win32,\n * as it needs to support a richer set of functionality on the desktop.\n * The touchable variants can be rewritten as wrappers around TouchableWin32\n * by passing the correct set of props down and managing state correctly.\n *\n * React Native's Touchable.js file (https://github.com/facebook/react-native/blob/master/Libraries/Components/Touchable/Touchable.js)\n * provides an overview over how touchables work and interact with the gesture responder system.\n */\n'use strict';\n\nimport React from 'react'\nimport { NativeSyntheticEvent, StyleProp, UIManager, ViewStyle, ViewWin32 } from 'react-native';\n\nimport { ITouchableWin32Props, ITouchableWin32State } from './TouchableWin32.Props';\nimport {\n IChildAsFunction,\n IDimensions,\n IPosition,\n IPressEvent,\n IPressInLocation,\n ISignal,\n IState,\n IStateConditions,\n ITransitions,\n} from './TouchableWin32.Types';\nimport { IKeyboardEvent } from '../View/ViewPropTypes';\n\nconst BoundingDimensions = require('./BoundingDimensions');\nconst Position = require('./Position');\n\nconst {findNodeHandle} = require('../../Renderer/shims/ReactNative');\n\n/**\n * Extracts a single touch, generally this is the active touch or touch that\n * has just ended\n * @param e - a press event containing information about the native event\n */\nfunction extractSingleTouch(e: IPressEvent) {\n const nativeEvent = e.nativeEvent;\n const touches = nativeEvent.touches;\n const changedTouches = nativeEvent.changedTouches;\n const hasTouches = touches && touches.length > 0;\n const hasChangedTouches = changedTouches && changedTouches.length > 0;\n\n return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;\n}\n\n/** Quick lookup maps for a variety of conditions */\nconst baseStatesCondition: IStateConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false,\n};\n\nconst IsActive: IStateConditions = {\n ...baseStatesCondition,\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n};\n\nconst IsPressingIn: IStateConditions = {\n ...baseStatesCondition,\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\nconst IsLongPressingIn: IStateConditions = {\n ...baseStatesCondition,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\nconst transitions: ITransitions = {\n NOT_RESPONDER: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'ERROR',\n RESPONDER_TERMINATED: 'ERROR',\n ENTER_PRESS_RECT: 'ERROR',\n LEAVE_PRESS_RECT: 'ERROR',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_IN',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_OUT',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n ERROR: {\n DELAY: 'NOT_RESPONDER',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'NOT_RESPONDER',\n LEAVE_PRESS_RECT: 'NOT_RESPONDER',\n LONG_PRESS_DETECTED: 'NOT_RESPONDER',\n },\n};\n\n// Touchable maintains additional internal state to manage keypress interactions\n// This information is abstracted away when passed to children off the touchable\n// (function children) or styles. A keypressed state is equivalent to a normal\n// press state. If either a pointer, mouse, or special key (space/enter) is pressed\n// the touchable considers itself to be in a pressed state. Do note that key presses\n// will not invoke gesture responder hooks and are not subject to the passed in delays.\ninterface IInternalTouchableWin32State extends ITouchableWin32State {\n isKeyPressed: boolean;\n}\n\n/** Constants for integrating into UI Components */\nconst HIGHLIGHT_DELAY_MS = 130;\nconst PRESS_EXPAND_DIPS = 20; // Subject to change for win32 and desktop\nconst LONG_PRESS_THRESHOLD = 500;\nconst LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\nconst LONG_PRESS_ALLOWED_MOVEMENT = 10;\n\n/**\n * TouchableWin32 is a 'componentization' of the Touchable Mixin in React Native.\n * This means that instead of implementing components such as TouchableHighlight\n * via the mixin, they are merely implemented as wrappers around TouchableWin32,\n * forwarding the correct set of props. Additionally, TouchableWin32 supports hover\n * via onMouseEnter and onMouseLeave and focus/blur via onFocus/onBlur.\n * TouchableWin32 also allows for functions as child components (that use the internal\n * state of the touchable to conditionally render children) as well functions as styles\n * (that use internal state to conditionally calculate styles)\n */\nexport class TouchableWin32 extends React.Component<ITouchableWin32Props, IInternalTouchableWin32State> {\n private _longPressDelayTimeout: NodeJS.Timeout;\n private _touchableDelayTimeout: NodeJS.Timeout;\n private _pressOutDelayTimeout: NodeJS.Timeout;\n private _pressInLocation: IPressInLocation;\n private _touchState: IState;\n private _responderID: number;\n private _positionOnActivate: IPosition;\n private _dimensionsOnActivate: IDimensions;\n\n private readonly _internalRef: React.RefObject<ViewWin32>\n\n constructor(props) {\n super(props);\n\n this.state = {\n isKeyPressed: false,\n isPressed: false,\n isFocused: false,\n isHovered: false,\n };\n\n this._internalRef = React.createRef<ViewWin32>();\n }\n\n public componentWillUnmount() {\n this._touchableDelayTimeout && clearTimeout(this._touchableDelayTimeout);\n this._longPressDelayTimeout && clearTimeout(this._longPressDelayTimeout);\n this._pressOutDelayTimeout && clearTimeout(this._pressOutDelayTimeout);\n }\n\n public render() {\n const { children, style, renderStyle, ...rest } = this.props;\n\n // The React Native touchables generally clone the child component\n // to apply additional styles to it. This approach allows children\n // to be passed in as functions (to be invoked with the current state),\n // it is handy for manipulating children as a result of the interaction\n // state (e.g. text color). A similar approach is taken for style\n let child: React.ReactNode;\n if (children) {\n child = typeof children === 'function' ?\n (children as IChildAsFunction<ITouchableWin32State>)(this._deriveStateFromInternalState()) : children;\n\n // Continue to enforce single child constraint\n child = React.Children.only(child);\n }\n\n let computedStyle: StyleProp<ViewStyle>;\n if (renderStyle) {\n computedStyle = renderStyle(this._deriveStateFromInternalState());\n } else if (style) {\n computedStyle = style;\n }\n\n return (\n <ViewWin32\n // Forward most of the props\n {...rest}\n // Hooks into Gesture Responder System\n onStartShouldSetResponder={this._touchableHandleStartShouldSetResponder}\n onResponderTerminationRequest={this._touchableHandleResponderTerminationRequest}\n onResponderGrant={this._touchableHandleResponderGrant}\n onResponderMove={this._touchableHandleResponderMove}\n onResponderRelease={this._touchableHandleResponderRelease}\n onResponderTerminate={this._touchableHandleResponderTerminate}\n // Hover\n onMouseEnter={this._onMouseEnter}\n onMouseLeave={this._onMouseLeave}\n // Focus\n onFocus={this._onFocus}\n onBlur={this._onBlur}\n // Key press interactions\n onKeyDown={this._onKeyDown}\n onKeyUp={this._onKeyUp}\n // Ref\n ref={this._internalRef}\n // Style\n style={computedStyle}\n >\n {child}\n </ViewWin32>\n );\n }\n\n public focus = () => {\n this._internalRef.current.focus();\n }\n\n /**\n * The rejectResponderTermination prop provides a way to accept/reject termination requests\n */\n private readonly _touchableHandleResponderTerminationRequest = (): boolean => {\n return !this.props.rejectResponderTermination;\n };\n\n /**\n * Only reject an opportunity to become the responder on bubble if disabled\n */\n private readonly _touchableHandleStartShouldSetResponder = (): boolean => {\n return !this.props.disabled;\n };\n\n /** TODO: Long press cancel as a prop may be a good idea */\n private readonly _touchableLongPressCancelsPress = (): boolean => {\n return true;\n };\n\n /**\n * On responder being granted, state and local data need to be set\n */\n private readonly _touchableHandleResponderGrant = (e: IPressEvent): void => {\n const dispatchID = findNodeHandle(e.currentTarget);\n e.persist();\n\n this._pressOutDelayTimeout && clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n\n this._touchState = 'NOT_RESPONDER';\n this._responderID = dispatchID;\n\n this._receiveSignal('RESPONDER_GRANT', e);\n let delayMS: number = this.props.touchableGetHighlightDelayMS\n ? Math.max(this.props.touchableGetHighlightDelayMS(), 0)\n : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n\n if (delayMS !== 0) {\n this._touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n } else {\n this._handleDelay(e);\n }\n\n let longDelayMS: number = this.props.touchableGetLongPressDelayMS\n ? Math.max(this.props.touchableGetLongPressDelayMS(), 10)\n : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this._longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);\n };\n\n /**\n * Handle responder release\n */\n private readonly _touchableHandleResponderRelease = (e: IPressEvent) => {\n this._pressInLocation = null;\n this._receiveSignal('RESPONDER_RELEASE', e);\n };\n\n /**\n * Handle responder terminate\n */\n private readonly _touchableHandleResponderTerminate = (e: IPressEvent) => {\n this._pressInLocation = null;\n this._receiveSignal('RESPONDER_TERMINATED', e);\n };\n\n /**\n * Handles move events\n */\n private readonly _touchableHandleResponderMove = (e: IPressEvent) => {\n if (!this._positionOnActivate) {\n return;\n }\n\n const positionOnActivate = this._positionOnActivate;\n const dimensionsOnActivate = this._dimensionsOnActivate;\n const pressRectOffset = this.props.touchableGetPressRectOffset\n ? this.props.touchableGetPressRectOffset()\n : {\n left: PRESS_EXPAND_DIPS,\n right: PRESS_EXPAND_DIPS,\n top: PRESS_EXPAND_DIPS,\n bottom: PRESS_EXPAND_DIPS,\n };\n\n let pressExpandLeft = pressRectOffset.left;\n let pressExpandTop = pressRectOffset.top;\n let pressExpandRight = pressRectOffset.right;\n let pressExpandBottom = pressRectOffset.bottom;\n\n // TODO implement touchableGetHitSlop natively\n const hitSlop = this.props.touchableGetHitSlop ? this.props.touchableGetHitSlop() : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n const touch = extractSingleTouch(e);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n\n if (this._pressInLocation) {\n const movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this._pressInLocation.pageX, this._pressInLocation.pageY);\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n const isTouchWithinActive =\n pageX > positionOnActivate.left - pressExpandLeft &&\n pageY > positionOnActivate.top - pressExpandTop &&\n pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight &&\n pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;\n if (isTouchWithinActive) {\n const prevState = this._touchState;\n this._receiveSignal('ENTER_PRESS_RECT', e);\n const currState = this._touchState;\n if (currState === 'RESPONDER_INACTIVE_PRESS_IN' && prevState !== 'RESPONDER_INACTIVE_PRESS_IN') {\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal('LEAVE_PRESS_RECT', e);\n }\n };\n\n /**\n * Used while performing side effects during state transitions,\n * to maintain proper bounding dimensions and positional information\n */\n private readonly _remeasureMetricsOnActivation = () => {\n const tag = this._responderID;\n if (tag === null) {\n return;\n }\n\n UIManager.measure(tag, this._handleQueryLayout);\n };\n\n /**\n * Callback into measure, see _remeasureMetricsOnActivation\n */\n private readonly _handleQueryLayout = (l: number, t: number, w: number, h: number, globalX: number, globalY: number) => {\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n\n this._positionOnActivate = Position.getPooled(globalX, globalY);\n this._dimensionsOnActivate = BoundingDimensions.getPooled(w, h);\n };\n\n private readonly _handleDelay = (e: IPressEvent) => {\n this._touchableDelayTimeout = null;\n this._receiveSignal('DELAY', e);\n };\n\n private readonly _handleLongDelay = (e: IPressEvent) => {\n this._longPressDelayTimeout = null;\n const currState = this._touchState;\n\n if (currState !== 'RESPONDER_ACTIVE_PRESS_IN' && currState !== 'RESPONDER_ACTIVE_LONG_PRESS_IN') {\n const errorMessage =\n 'Attempted to transition from state ' +\n currState +\n ' to ' +\n 'RESPONDER_ACTIVE_LONG_PRESS_IN ' +\n 'which is not supported. This is most likely due to ' +\n 'Touchable.longPressDelayTimeout not being canceled.';\n console.error(errorMessage);\n } else {\n this._receiveSignal('LONG_PRESS_DETECTED', e);\n }\n };\n\n /**\n * Manages state transitions\n */\n private readonly _receiveSignal = (signal: ISignal, e: IPressEvent) => {\n const responderID = this._responderID;\n const currState = this._touchState;\n const nextState: IState = transitions[currState] ? transitions[currState][signal] : null;\n\n if (!nextState) {\n const errorMessage = 'Unrecognized signal ' + signal + ' or state ' + currState + ' for Touchable responder ' + responderID + '.';\n throw new Error(errorMessage);\n }\n if (nextState === 'ERROR') {\n const errorMessage = 'Touchable cannot transition from ' + currState + ' to ' + signal + ' for responder ' + responderID + '.';\n throw new Error(errorMessage);\n }\n\n if (currState !== nextState) {\n this._performSideEffectsForTransition(currState, nextState, signal, e);\n this._touchState = nextState;\n }\n };\n\n private readonly _cancelLongPressDelayTimeout = () => {\n this._longPressDelayTimeout && clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n };\n\n private readonly _isHighlight = (state: IState) => {\n return state === 'RESPONDER_ACTIVE_PRESS_IN' || state === 'RESPONDER_ACTIVE_LONG_PRESS_IN';\n };\n\n private readonly _savePressInLocation = (e: IPressEvent) => {\n const touch = extractSingleTouch(e);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n const locationX = touch && touch.locationX;\n const locationY = touch && touch.locationY;\n this._pressInLocation = { pageX, pageY, locationX, locationY };\n };\n\n private readonly _getDistanceBetweenPoints = (aX: number, aY: number, bX: number, bY: number): number => {\n const deltaX = aX - bX;\n const deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n };\n\n /**\n * Any highlighting/visual effects is done here,\n * This is also where press callbacks are invoked from\n */\n // Existing high cyclomatic complexity\n \n private readonly _performSideEffectsForTransition = (currState: IState, nextState: IState, signal: ISignal, e: IPressEvent) => {\n const currIsHighlight = this._isHighlight(currState);\n const newIsHighlight = this._isHighlight(nextState);\n\n const isFinalSignal = signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n const isInitialTransition = currState === 'NOT_RESPONDER' && nextState === 'RESPONDER_INACTIVE_PRESS_IN';\n\n const isActiveTransition = !IsActive[currState] && IsActive[nextState];\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[currState] && signal === 'LONG_PRESS_DETECTED') {\n this.props.touchableHandleLongPress && this.props.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !currIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && currIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[currState] && signal === 'RESPONDER_RELEASE') {\n const hasLongPressHandler = !!this.props.onLongPress;\n const pressIsLongButStillCallOnPress = IsLongPressingIn[currState] && (!hasLongPressHandler || this._touchableLongPressCancelsPress);\n const shouldInvokePress = !IsLongPressingIn[currState] || pressIsLongButStillCallOnPress;\n\n if (shouldInvokePress && this.props.touchableHandlePress) {\n if (!newIsHighlight && !currIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n this._endHighlight(e);\n }\n\n this.props.touchableHandlePress(e);\n }\n }\n\n this._touchableDelayTimeout && clearTimeout(this._touchableDelayTimeout);\n this._touchableDelayTimeout = null;\n };\n\n private readonly _startHighlight = (e: IPressEvent) => {\n this._savePressInLocation(e);\n this.setState({ isPressed: true });\n this.props.touchableHandleActivePressIn && this.props.touchableHandleActivePressIn(e);\n };\n\n private readonly _endHighlight = (e: IPressEvent) => {\n function _handler() {\n this.props.touchableHandleActivePressOut(e);\n }\n\n this.setState({ isPressed: false });\n if (this.props.touchableHandleActivePressOut) {\n if (this.props.touchableGetPressOutDelayMS && this.props.touchableGetPressOutDelayMS()) {\n this._pressOutDelayTimeout = setTimeout(_handler.bind(this), this.props.touchableGetPressOutDelayMS());\n } else {\n this.props.touchableHandleActivePressOut(e);\n }\n }\n };\n\n private readonly _onMouseEnter = (mouseEvent) => {\n this.setState({ isHovered: true });\n this.props.onMouseEnter && this.props.onMouseEnter(mouseEvent);\n };\n\n private readonly _onMouseLeave = (mouseEvent) => {\n this.setState({ isHovered: false });\n this.props.onMouseLeave && this.props.onMouseLeave(mouseEvent);\n };\n\n private readonly _onFocus = (ev: NativeSyntheticEvent<{}>) => {\n this.setState({ isFocused: true });\n this.props.onFocus && this.props.onFocus(ev);\n };\n\n private readonly _onBlur = (ev: NativeSyntheticEvent<{}>) => {\n this.setState({ isFocused: false });\n this.props.onBlur && this.props.onBlur(ev);\n };\n\n private readonly _onKeyDown = (ev: IKeyboardEvent) => {\n if (this._filterOnKey(ev)) {\n this.setState({ isKeyPressed: true });\n this.props.touchableHandleKeyPressDown && this.props.touchableHandleKeyPressDown(ev);\n }\n\n this.props.onKeyDown && this.props.onKeyDown(ev);\n };\n\n private readonly _onKeyUp = (ev: IKeyboardEvent) => {\n if (this._filterOnKey(ev)) {\n this.setState({ isKeyPressed: false });\n this.props.touchableHandleKeyPress && this.props.touchableHandleKeyPress(ev);\n }\n\n this.props.onKeyUp && this.props.onKeyUp(ev);\n };\n\n private readonly _deriveStateFromInternalState = (): ITouchableWin32State => {\n return {\n isPressed: this.state.isPressed || this.state.isKeyPressed,\n isHovered: this.state.isHovered,\n isFocused: this.state.isFocused,\n };\n }\n\n private readonly _filterOnKey = (ev: IKeyboardEvent): boolean => {\n if (this.props.filterKeys) {\n return this.props.filterKeys(ev.nativeEvent.key);\n }\n\n // Otherwise fall back to handling space and enter only\n return ev.nativeEvent.key === ' ' || ev.nativeEvent.key === 'Enter';\n }\n}\n"]}
@@ -181,6 +181,7 @@ class TouchableWithoutFeedback extends React.Component<Props, State> {
181
181
  }
182
182
  }
183
183
 
184
+ // $FlowFixMe[incompatible-call]
184
185
  return React.cloneElement(element, elementProps, ...children);
185
186
  }
186
187
 
@@ -33,10 +33,7 @@ interface Agent {
33
33
  removeListener(event: $Keys<AgentEvents>, listener: () => void): void;
34
34
  }
35
35
 
36
- type TraceNode = {
37
- publicInstance?: TraceNode,
38
- // TODO: remove this field when syncing the new version of the renderer from React to React Native.
39
- canonical?: TraceNode,
36
+ type PublicInstance = {
40
37
  measure?: (
41
38
  (
42
39
  x: number,
@@ -49,6 +46,16 @@ type TraceNode = {
49
46
  ) => void,
50
47
  };
51
48
 
49
+ type TraceNode =
50
+ | PublicInstance
51
+ | {
52
+ canonical?:
53
+ | PublicInstance // TODO: remove this variant when syncing the new version of the renderer from React to React Native.
54
+ | {
55
+ publicInstance?: PublicInstance,
56
+ },
57
+ };
58
+
52
59
  type ReactDevToolsGlobalHook = {
53
60
  on: (eventName: string, (agent: Agent) => void) => void,
54
61
  off: (eventName: string, (agent: Agent) => void) => void,
@@ -102,11 +109,14 @@ export default function TraceUpdateOverlay(): React.Node {
102
109
 
103
110
  const newFramesToDraw: Array<Promise<Overlay>> = [];
104
111
  nodesToDraw.forEach(({node, color}) => {
105
- // `publicInstance` => Fabric
112
+ // `canonical.publicInstance` => Fabric
106
113
  // TODO: remove this check when syncing the new version of the renderer from React to React Native.
107
114
  // `canonical` => Legacy Fabric
108
115
  // `node` => Legacy renderer
109
- const component = node.publicInstance ?? node.canonical ?? node;
116
+ const component =
117
+ (node.canonical && node.canonical.publicInstance) ??
118
+ node.canonical ??
119
+ node;
110
120
  if (!component || !component.measure) {
111
121
  return;
112
122
  }
@@ -14,6 +14,7 @@ import processAspectRatio from '../../StyleSheet/processAspectRatio';
14
14
  import processColor from '../../StyleSheet/processColor';
15
15
  import processFontVariant from '../../StyleSheet/processFontVariant';
16
16
  import processTransform from '../../StyleSheet/processTransform';
17
+ import processTransformOrigin from '../../StyleSheet/processTransformOrigin';
17
18
  import sizesDiffer from '../../Utilities/differ/sizesDiffer';
18
19
 
19
20
  const colorAttributes = {process: processColor};
@@ -46,6 +47,13 @@ const ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = {
46
47
  flexWrap: true,
47
48
  gap: true,
48
49
  height: true,
50
+ inset: true,
51
+ insetBlock: true,
52
+ insetBlockEnd: true,
53
+ insetBlockStart: true,
54
+ insetInline: true,
55
+ insetInlineEnd: true,
56
+ insetInlineStart: true,
49
57
  justifyContent: true,
50
58
  left: true,
51
59
  margin: true,
@@ -104,6 +112,7 @@ const ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = {
104
112
  * Transform
105
113
  */
106
114
  transform: {process: processTransform},
115
+ transformOrigin: {process: processTransformOrigin},
107
116
 
108
117
  /**
109
118
  * View
@@ -35,6 +35,7 @@ const UIView = {
35
35
  collapsable: true,
36
36
  needsOffscreenAlphaCompositing: true,
37
37
  style: ReactNativeStyleAttributes,
38
+ role: true,
38
39
  };
39
40
 
40
41
  const RCTView = {
@@ -35,6 +35,7 @@ const UIView = {
35
35
  collapsable: true,
36
36
  needsOffscreenAlphaCompositing: true,
37
37
  style: ReactNativeStyleAttributes,
38
+ role: true,
38
39
  // [Win32
39
40
  accessibilityAccessKey: true,
40
41
  accessibilityAnnotation: true,