@office-iss/react-native-win32 0.79.1 → 0.80.0
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.
- package/.flowconfig +10 -3
- package/CHANGELOG.json +117 -24
- package/CHANGELOG.md +49 -14
- package/IntegrationTests/ImageCachePolicyTest.js +1 -1
- package/IntegrationTests/LayoutEventsTest.js +1 -4
- package/Libraries/Alert/Alert.d.ts +4 -1
- package/Libraries/Alert/Alert.js +3 -0
- package/Libraries/Alert/RCTAlertManager.js +17 -0
- package/Libraries/Animated/Animated.js.flow +1 -3
- package/Libraries/Animated/AnimatedEvent.js +4 -3
- package/Libraries/Animated/AnimatedExports.js +2 -2
- package/Libraries/Animated/AnimatedExports.js.flow +140 -0
- package/Libraries/Animated/AnimatedImplementation.js +2 -123
- package/Libraries/Animated/Easing.js +13 -15
- package/Libraries/Animated/animations/Animation.js +8 -4
- package/Libraries/Animated/components/AnimatedFlatList.js +7 -6
- package/Libraries/Animated/components/AnimatedScrollView.js +48 -42
- package/Libraries/Animated/components/AnimatedSectionList.js +11 -7
- package/Libraries/Animated/createAnimatedComponent.js +105 -57
- package/Libraries/Animated/nodes/AnimatedNode.js +4 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +46 -26
- package/Libraries/Animated/nodes/AnimatedValue.js +16 -7
- package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
- package/Libraries/AppState/AppState.js +7 -2
- package/Libraries/BatchedBridge/MessageQueue.js +2 -2
- package/Libraries/BatchedBridge/NativeModules.js +2 -0
- package/Libraries/Blob/BlobManager.js +1 -0
- package/Libraries/Blob/FileReader.js +219 -8
- package/Libraries/Blob/URL.js +37 -12
- package/Libraries/Blob/URLSearchParams.js +106 -31
- package/Libraries/Blob/URLSearchParams.js.flow +12 -7
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +1 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js +17 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +1 -0
- package/Libraries/Components/Button.js +1 -1
- package/Libraries/Components/Button.win32.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -3
- package/Libraries/{NewAppScreen/components/Colors.js → Components/DrawerAndroid/DrawerLayoutAndroid.ios.js} +6 -10
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +6 -66
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +18 -0
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +71 -0
- package/Libraries/Components/Keyboard/Keyboard.js +5 -3
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +6 -3
- package/Libraries/Components/Pressable/Pressable.js +20 -4
- package/Libraries/Components/Pressable/Pressable.win32.js +20 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +25 -3
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +29 -20
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +3 -3
- package/Libraries/Components/ScrollView/ScrollView.js +132 -122
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/Switch/Switch.d.ts +3 -0
- package/Libraries/Components/Switch/Switch.js +8 -4
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -4
- package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +2 -1
- package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +70 -33
- package/Libraries/Components/TextInput/TextInput.flow.js +100 -51
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +1208 -0
- package/Libraries/Components/TextInput/TextInput.js +88 -1027
- package/Libraries/Components/TextInput/TextInput.win32.js +89 -1059
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
- package/Libraries/{Modal/ModalInjection.js → Components/ToastAndroid/ToastAndroid.ios.js} +3 -5
- package/Libraries/Components/ToastAndroid/ToastAndroid.js +4 -32
- package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +109 -0
- package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +4 -32
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +45 -0
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +2 -1
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
- package/Libraries/Components/Touchable/Touchable.js +5 -5
- package/Libraries/Components/Touchable/Touchable.win32.js +5 -5
- package/Libraries/Components/Touchable/TouchableBounce.js +14 -7
- package/Libraries/Components/Touchable/TouchableHighlight.js +10 -7
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -6
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +6 -6
- package/Libraries/Components/Touchable/TouchableOpacity.js +13 -6
- package/Libraries/Components/View/View.js +18 -21
- package/Libraries/Components/View/View.win32.js +21 -24
- package/Libraries/Components/View/ViewAccessibility.js +25 -1
- package/Libraries/Components/View/ViewAccessibility.win32.js +9 -1
- package/Libraries/Components/View/ViewPropTypes.js +49 -3
- package/Libraries/Components/View/ViewPropTypes.win32.js +49 -3
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Core/setUpReactDevTools.js +5 -5
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +3 -3
- package/Libraries/EventEmitter/NativeEventEmitter.js +9 -4
- package/Libraries/Image/AssetSourceResolver.js +17 -4
- package/Libraries/Image/Image.d.ts +26 -10
- package/Libraries/Image/Image.js +17 -0
- package/Libraries/Image/Image.js.flow +5 -5
- package/Libraries/Image/ImageBackground.js +2 -0
- package/Libraries/Image/ImageInjection.js +1 -1
- package/Libraries/Image/ImageProps.js +22 -17
- package/Libraries/Image/ImageSource.js +3 -1
- package/Libraries/Image/ImageSourceUtils.js +4 -2
- package/Libraries/Image/ImageTypes.flow.js +1 -1
- package/Libraries/Image/Tests/ImageWin32Test.d.ts +2 -1
- package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -1
- package/Libraries/Interaction/InteractionManager.d.ts +13 -0
- package/Libraries/Interaction/InteractionManager.js +1 -1
- package/Libraries/Interaction/PanResponder.js +3 -3
- package/Libraries/Interaction/TaskQueue.js +1 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -2
- package/Libraries/Lists/FlatList.js +8 -11
- package/Libraries/Lists/SectionList.js +39 -42
- package/Libraries/Lists/SectionListModern.js +25 -34
- package/Libraries/Lists/VirtualizedList.js +1 -0
- package/Libraries/Lists/VirtualizedSectionList.js +1 -0
- package/Libraries/LogBox/Data/LogBoxData.js +1 -1
- package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +140 -0
- package/Libraries/Modal/Modal.js +33 -7
- package/Libraries/NativeComponent/BaseViewConfig.android.js +2 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -0
- package/Libraries/NativeComponent/BaseViewConfig.js +17 -0
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +1 -0
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +2 -2
- package/Libraries/NativeModules/specs/NativeDevMenu.js +2 -2
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js +17 -0
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.win32.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +781 -10
- package/Libraries/Performance/Systrace.js +7 -7
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/Pressability/Pressability.win32.js +1 -1
- package/Libraries/ReactNative/AppContainer-dev.js +5 -4
- package/Libraries/ReactNative/AppRegistry.flow.js +49 -0
- package/Libraries/ReactNative/AppRegistry.js +2 -322
- package/Libraries/ReactNative/AppRegistry.js.flow +23 -0
- package/Libraries/ReactNative/AppRegistryImpl.js +316 -0
- package/Libraries/ReactNative/FabricUIManager.js +10 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -4
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -4
- package/Libraries/ReactNative/RendererImplementation.js +10 -5
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -0
- package/Libraries/ReactNative/renderApplication.js +9 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +3 -3
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +51 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +4840 -4748
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +4947 -4829
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3998 -3888
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5005 -4948
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +2744 -2652
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +5020 -4933
- package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -3
- package/Libraries/Settings/Settings.ios.js +1 -0
- package/Libraries/Settings/Settings.js +13 -19
- package/Libraries/Settings/Settings.win32.js +19 -20
- package/Libraries/Settings/SettingsFallback.js +33 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.js +15 -0
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +6 -0
- package/Libraries/StyleSheet/Rect.js +1 -0
- package/Libraries/StyleSheet/StyleSheet.js +31 -200
- package/Libraries/StyleSheet/StyleSheet.js.flow +188 -0
- package/Libraries/StyleSheet/{StyleSheet.win32.js → StyleSheetExports.js} +2 -151
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +112 -0
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +130 -52
- package/Libraries/StyleSheet/flattenStyle.js +14 -4
- package/Libraries/StyleSheet/private/_TransformStyle.js +49 -21
- package/Libraries/StyleSheet/processBackgroundImage.js +670 -214
- package/Libraries/Text/Text.d.ts +2 -5
- package/Libraries/Text/Text.js +3 -3
- package/Libraries/Text/Text.win32.js +3 -3
- package/Libraries/Text/TextNativeComponent.js +0 -4
- package/Libraries/Text/TextNativeComponent.win32.js +0 -4
- package/Libraries/Text/TextProps.js +5 -33
- package/Libraries/Text/TextProps.win32.js +5 -30
- package/Libraries/Types/CodegenTypesNamespace.d.ts +45 -0
- package/Libraries/{Blob/__mocks__/BlobModule.js → Types/CodegenTypesNamespace.js} +4 -6
- package/Libraries/Types/CoreEventTypes.d.ts +6 -1
- package/Libraries/Types/CoreEventTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.win32.js +1 -1
- package/Libraries/Utilities/Appearance.js +2 -0
- package/Libraries/Utilities/BackHandler.js +17 -0
- package/Libraries/Utilities/DeviceInfo.js +2 -0
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/Dimensions.win32.js +1 -1
- package/Libraries/Utilities/Platform.js +17 -0
- package/Libraries/Utilities/PlatformTypes.js +11 -3
- package/Libraries/Utilities/ReactNativeTestTools.js +2 -2
- package/Libraries/Utilities/codegenNativeCommands.d.ts +18 -0
- package/Libraries/Utilities/codegenNativeComponent.d.ts +26 -0
- package/Libraries/WebSocket/WebSocket.js +313 -8
- package/Libraries/vendor/core/ErrorUtils.js +28 -2
- package/Libraries/vendor/emitter/EventEmitter.js +6 -2
- package/flow/global.js +1 -0
- package/index.js +51 -331
- package/index.win32.js +71 -352
- package/interface.js +0 -4
- package/jest/resolver.js +31 -0
- package/overrides.json +45 -47
- package/package.json +25 -25
- package/src/private/animated/NativeAnimatedHelper.js +21 -8
- package/src/private/animated/NativeAnimatedHelper.win32.js +21 -8
- package/src/private/animated/createAnimatedPropsHook.js +11 -16
- package/src/private/animated/createAnimatedPropsMemoHook.js +1 -2
- package/src/private/components/{SafeAreaView_INTERNAL_DO_NOT_USE.js → safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js} +6 -6
- package/src/private/components/{HScrollViewNativeComponents.js → scrollview/HScrollViewNativeComponents.js} +8 -8
- package/src/private/components/scrollview/VScrollViewNativeComponents.js +25 -0
- package/src/private/{devmenu → devsupport/devmenu}/DevMenu.js +1 -1
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/BorderBox.js +3 -3
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/BoxInspector.js +6 -5
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementBox.js +8 -6
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementProperties.js +11 -10
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/Inspector.js +14 -12
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorOverlay.js +5 -4
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorPanel.js +9 -8
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/NetworkOverlay.js +10 -9
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/ReactDevToolsOverlay.js +7 -7
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/StyleInspector.js +7 -6
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/XHRInterceptor.js +2 -2
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/getInspectorDataForViewAtPoint.js +4 -4
- package/src/private/{inspector → devsupport/devmenu/elementinspector}/resolveBoxStyle.js +1 -1
- package/src/private/{inspector → devsupport/devmenu/perfmonitor}/PerformanceOverlay.js +6 -5
- package/src/private/{specs_DEPRECATED/modules → devsupport/devmenu/specs}/NativeDevMenu.js +2 -2
- package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.android.js +1 -1
- package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.ios.js +1 -1
- package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.win32.js +1 -1
- package/src/private/{debugging → devsupport/rndevtools}/setUpFuseboxReactDevToolsDispatcher.js +1 -1
- package/src/private/{fusebox → devsupport/rndevtools}/specs/NativeReactDevToolsRuntimeSettingsModule.js +2 -2
- package/src/private/{specs_DEPRECATED/modules → devsupport/rndevtools/specs}/NativeReactDevToolsSettingsManager.js +2 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +82 -80
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +9 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -13
- package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +3 -0
- package/src/private/styles/composeStyles.js +12 -5
- package/src/private/types/HostComponent.js +1 -1
- package/src/private/types/HostInstance.js +67 -1
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -5
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -18
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +6 -0
- package/src/private/webapis/performance/Performance.js +1 -3
- package/src/private/webapis/performance/PerformanceEntry.js +6 -1
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -0
- package/src/private/webapis/performance/specs/NativePerformance.js +10 -1
- package/src/types/globals.d.ts +42 -0
- package/src-win/Libraries/Components/TextInput/Tests/TextInputTest.tsx +7 -7
- package/src-win/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +3 -3
- package/src-win/Libraries/Image/Tests/ImageWin32Test.tsx +1 -1
- package/src-win/Libraries/Text/Text.d.ts +2 -5
- package/types/index.d.ts +6 -3
- package/types/public/ReactNativeTypes.d.ts +2 -2
- package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +0 -38
- package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +0 -22
- package/Libraries/Blob/FileReader_new.js +0 -231
- package/Libraries/Blob/FileReader_old.js +0 -186
- package/Libraries/Blob/__mocks__/FileReaderModule.js +0 -20
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +0 -32
- package/Libraries/Core/__mocks__/ErrorUtils.js +0 -33
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -19
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +0 -49
- package/Libraries/Events/CustomEvent.js +0 -32
- package/Libraries/Events/EventPolyfill.js +0 -239
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +0 -118
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +0 -134
- package/Libraries/Network/XMLHttpRequest_new.js +0 -794
- package/Libraries/Network/XMLHttpRequest_old.js +0 -701
- package/Libraries/NewAppScreen/components/DebugInstructions.js +0 -41
- package/Libraries/NewAppScreen/components/Header.js +0 -77
- package/Libraries/NewAppScreen/components/HermesBadge.js +0 -53
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +0 -148
- package/Libraries/NewAppScreen/components/ReloadInstructions.js +0 -39
- package/Libraries/NewAppScreen/components/logo.png +0 -0
- package/Libraries/NewAppScreen/index.js +0 -25
- package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +0 -58
- package/Libraries/Utilities/DeviceInfo.win32.js +0 -19
- package/Libraries/Utilities/__mocks__/BackHandler.js +0 -45
- package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +0 -16
- package/Libraries/Utilities/__mocks__/PixelRatio.js +0 -25
- package/Libraries/WebSocket/WebSocketEvent.js +0 -30
- package/Libraries/WebSocket/WebSocket_new.js +0 -325
- package/Libraries/WebSocket/WebSocket_old.js +0 -297
- package/Libraries/WebSocket/__mocks__/event-target-shim.js +0 -27
- package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +0 -30
- package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +0 -81
- package/flow/jest.js +0 -1287
- package/jest/__tests__/setup-test.js +0 -18
- package/src/private/components/VScrollViewNativeComponents.js +0 -25
- package/src/private/utilities/ensureInstance.js +0 -21
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +0 -267
- package/types/modules/LaunchScreen.d.ts +0 -18
- /package/src/private/{devmenu → devsupport/devmenu}/DevMenu.d.ts +0 -0
- /package/src/private/{debugging → devsupport/rndevtools}/FuseboxSessionObserver.js +0 -0
|
@@ -11,60 +11,135 @@
|
|
|
11
11
|
// Small subset from whatwg-url: https://github.com/jsdom/whatwg-url/tree/master/src
|
|
12
12
|
// The reference code bloat comes from Unicode issues with URLs, so those won't work here.
|
|
13
13
|
export class URLSearchParams {
|
|
14
|
-
_searchParams:
|
|
14
|
+
_searchParams: Map<string, string[]> = new Map();
|
|
15
15
|
|
|
16
|
-
constructor(params?: Record<string, string>) {
|
|
17
|
-
if (
|
|
18
|
-
|
|
16
|
+
constructor(params?: Record<string, string> | string | [string, string][]) {
|
|
17
|
+
if (params === null) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (typeof params === 'string') {
|
|
22
|
+
// URLSearchParams("key1=value1&key2=value2");
|
|
23
|
+
params
|
|
24
|
+
.replace(/^\?/, '')
|
|
25
|
+
.split('&')
|
|
26
|
+
.forEach(pair => {
|
|
27
|
+
if (!pair) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const [key, value] = pair
|
|
31
|
+
.split('=')
|
|
32
|
+
.map(part => decodeURIComponent(part.replace(/\+/g, ' ')));
|
|
33
|
+
this.append(key, value);
|
|
34
|
+
});
|
|
35
|
+
} else if (Array.isArray(params)) {
|
|
36
|
+
//URLSearchParams([["key1", "value1"], ["key2", "value2"]]);
|
|
37
|
+
params.forEach(([key, value]) => this.append(key, value));
|
|
38
|
+
} else if (typeof params === 'object') {
|
|
39
|
+
//URLSearchParams({ key1: "value1", key2: "value2" });
|
|
40
|
+
Object.entries(params).forEach(([key, value]) => this.append(key, value));
|
|
19
41
|
}
|
|
20
42
|
}
|
|
21
43
|
|
|
22
44
|
append(key: string, value: string): void {
|
|
23
|
-
this._searchParams.
|
|
45
|
+
if (!this._searchParams.has(key)) {
|
|
46
|
+
this._searchParams.set(key, [value]); // Initialize with an array if key is missing
|
|
47
|
+
} else {
|
|
48
|
+
this._searchParams.get(key)?.push(value); // Else push the value to the array
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
delete(name: string): void {
|
|
53
|
+
this._searchParams.delete(name);
|
|
24
54
|
}
|
|
25
55
|
|
|
26
|
-
|
|
27
|
-
|
|
56
|
+
get(name: string): string | null {
|
|
57
|
+
const values = this._searchParams.get(name);
|
|
58
|
+
return values ? values[0] : null;
|
|
28
59
|
}
|
|
29
60
|
|
|
30
|
-
|
|
31
|
-
|
|
61
|
+
getAll(name: string): string[] {
|
|
62
|
+
return this._searchParams.get(name) ?? [];
|
|
32
63
|
}
|
|
33
64
|
|
|
34
|
-
|
|
35
|
-
|
|
65
|
+
has(name: string): boolean {
|
|
66
|
+
return this._searchParams.has(name);
|
|
36
67
|
}
|
|
37
68
|
|
|
38
|
-
|
|
39
|
-
|
|
69
|
+
set(name: string, value: string): void {
|
|
70
|
+
this._searchParams.set(name, [value]);
|
|
40
71
|
}
|
|
41
72
|
|
|
42
|
-
|
|
43
|
-
|
|
73
|
+
keys(): Iterator<string> {
|
|
74
|
+
return this._searchParams.keys();
|
|
44
75
|
}
|
|
45
76
|
|
|
46
|
-
|
|
47
|
-
|
|
77
|
+
values(): Iterator<string> {
|
|
78
|
+
function* generateValues(params: Map<string, string[]>): Iterator<string> {
|
|
79
|
+
for (const valueArray of params.values()) {
|
|
80
|
+
for (const value of valueArray) {
|
|
81
|
+
yield value;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return generateValues(this._searchParams);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
entries(): Iterator<[string, string]> {
|
|
89
|
+
function* generateEntries(
|
|
90
|
+
params: Map<string, string[]>,
|
|
91
|
+
): Iterator<[string, string]> {
|
|
92
|
+
for (const [key, values] of params) {
|
|
93
|
+
for (const value of values) {
|
|
94
|
+
yield [key, value];
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return generateEntries(this._searchParams);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
forEach(
|
|
103
|
+
callback: (value: string, key: string, searchParams: this) => void,
|
|
104
|
+
): void {
|
|
105
|
+
for (const [key, values] of this._searchParams) {
|
|
106
|
+
for (const value of values) {
|
|
107
|
+
callback(value, key, this);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
sort(): void {
|
|
113
|
+
this._searchParams = new Map(
|
|
114
|
+
[...this._searchParams.entries()].sort(([a], [b]) => a.localeCompare(b)),
|
|
115
|
+
);
|
|
48
116
|
}
|
|
49
117
|
|
|
50
118
|
// $FlowFixMe[unsupported-syntax]
|
|
51
119
|
[Symbol.iterator](): Iterator<[string, string]> {
|
|
52
|
-
|
|
120
|
+
const entries: [string, string][] = [];
|
|
121
|
+
|
|
122
|
+
for (const [key, values] of this._searchParams) {
|
|
123
|
+
for (const value of values) {
|
|
124
|
+
entries.push([key, value]);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return entries[Symbol.iterator]();
|
|
53
129
|
}
|
|
54
130
|
|
|
55
131
|
toString(): string {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
);
|
|
68
|
-
}, '');
|
|
132
|
+
return Array.from(this._searchParams.entries())
|
|
133
|
+
.map(([key, values]) =>
|
|
134
|
+
values
|
|
135
|
+
.map(
|
|
136
|
+
value =>
|
|
137
|
+
`${encodeURIComponent(key).replace(/%20/g, '+')}=${encodeURIComponent(
|
|
138
|
+
value,
|
|
139
|
+
).replace(/%20/g, '+')}`, // Convert only spaces to '+'
|
|
140
|
+
)
|
|
141
|
+
.join('&'),
|
|
142
|
+
)
|
|
143
|
+
.join('&');
|
|
69
144
|
}
|
|
70
145
|
}
|
|
@@ -10,14 +10,19 @@
|
|
|
10
10
|
|
|
11
11
|
declare export class URLSearchParams {
|
|
12
12
|
_searchParams: Array<[string, string]>;
|
|
13
|
-
constructor(
|
|
13
|
+
constructor(
|
|
14
|
+
params?: Record<string, string> | string | Array<[string, string]>,
|
|
15
|
+
): void;
|
|
14
16
|
append(key: string, value: string): void;
|
|
15
|
-
delete(name: string):
|
|
16
|
-
get(name: string):
|
|
17
|
-
getAll(name: string):
|
|
18
|
-
has(name: string):
|
|
19
|
-
set(name: string, value: string):
|
|
20
|
-
sort():
|
|
17
|
+
delete(name: string): void;
|
|
18
|
+
get(name: string): string;
|
|
19
|
+
getAll(name: string): Array<string>;
|
|
20
|
+
has(name: string): boolean;
|
|
21
|
+
set(name: string, value: string): void;
|
|
22
|
+
sort(): void;
|
|
21
23
|
@@iterator(): Iterator<[string, string]>;
|
|
22
24
|
toString(): string;
|
|
25
|
+
keys(): Iterator<string>;
|
|
26
|
+
values(): Iterator<string>;
|
|
27
|
+
entries(): Iterator<[string, string]>;
|
|
23
28
|
}
|
|
@@ -397,7 +397,7 @@ const AccessibilityInfo = {
|
|
|
397
397
|
addEventListener<K: $Keys<AccessibilityEventDefinitions>>(
|
|
398
398
|
eventName: K,
|
|
399
399
|
// $FlowIssue[incompatible-type] - Flow bug with unions and generics (T128099423)
|
|
400
|
-
handler: (
|
|
400
|
+
handler: (...AccessibilityEventDefinitions[K]) => void,
|
|
401
401
|
): EventSubscription {
|
|
402
402
|
const deviceEventName = EventNames.get(eventName);
|
|
403
403
|
return deviceEventName == null
|
|
@@ -421,7 +421,7 @@ const AccessibilityInfo = {
|
|
|
421
421
|
addEventListener<K: $Keys<AccessibilityEventDefinitions>>(
|
|
422
422
|
eventName: K,
|
|
423
423
|
// $FlowIssue[incompatible-type] - Flow bug with unions and generics (T128099423)
|
|
424
|
-
handler: (
|
|
424
|
+
handler: (...AccessibilityEventDefinitions[K]) => void,
|
|
425
425
|
): EventSubscription {
|
|
426
426
|
const deviceEventName = EventNames.get(eventName);
|
|
427
427
|
return deviceEventName == null
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// NOTE: This file supports backwards compatibility of subpath (deep) imports
|
|
12
|
+
// from 'react-native' with platform-specific extensions. It can be deleted
|
|
13
|
+
// once we remove the "./*" mapping from package.json "exports".
|
|
14
|
+
|
|
15
|
+
import legacySendAccessibilityEvent from './legacySendAccessibilityEvent';
|
|
16
|
+
|
|
17
|
+
export default legacySendAccessibilityEvent;
|
|
@@ -110,6 +110,7 @@ const ActivityIndicator = (
|
|
|
110
110
|
style={StyleSheet.compose(styles.container, style)}>
|
|
111
111
|
{Platform.OS === 'android' ? (
|
|
112
112
|
// $FlowFixMe[prop-missing] Flow doesn't know when this is the android component
|
|
113
|
+
// $FlowFixMe[incompatible-type]
|
|
113
114
|
<PlatformActivityIndicator {...nativeProps} {...androidProps} />
|
|
114
115
|
) : (
|
|
115
116
|
/* $FlowFixMe[incompatible-type] (>=0.106.0 site=react_native_android_fb) This comment
|
|
@@ -38,7 +38,7 @@ export type ButtonProps = $ReadOnly<{
|
|
|
38
38
|
Handler to be called when the user taps the button. The first function
|
|
39
39
|
argument is an event in form of [GestureResponderEvent](pressevent).
|
|
40
40
|
*/
|
|
41
|
-
onPress
|
|
41
|
+
onPress?: (event?: GestureResponderEvent) => mixed,
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
If `true`, doesn't play system sound on touch.
|
|
@@ -39,7 +39,7 @@ export type ButtonProps = $ReadOnly<{
|
|
|
39
39
|
Handler to be called when the user taps the button. The first function
|
|
40
40
|
argument is an event in form of [GestureResponderEvent](pressevent).
|
|
41
41
|
*/
|
|
42
|
-
onPress
|
|
42
|
+
onPress?: (event?: GestureResponderEvent) => mixed,
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
If `true`, doesn't play system sound on touch.
|
|
@@ -13,8 +13,6 @@ import type {
|
|
|
13
13
|
MeasureLayoutOnSuccessCallback,
|
|
14
14
|
MeasureOnSuccessCallback,
|
|
15
15
|
} from '../../../src/private/types/HostInstance';
|
|
16
|
-
import type {AccessibilityRole} from '../../Components/View/ViewAccessibility';
|
|
17
|
-
import typeof DrawerLayoutAndroidCommon from './DrawerLayoutAndroid.js';
|
|
18
16
|
import type {
|
|
19
17
|
DrawerLayoutAndroidMethods,
|
|
20
18
|
DrawerLayoutAndroidProps,
|
|
@@ -305,4 +303,4 @@ const styles = StyleSheet.create({
|
|
|
305
303
|
},
|
|
306
304
|
});
|
|
307
305
|
|
|
308
|
-
export default DrawerLayoutAndroid as $FlowFixMe
|
|
306
|
+
export default DrawerLayoutAndroid as $FlowFixMe;
|
|
@@ -4,16 +4,12 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @flow strict-local
|
|
8
7
|
* @format
|
|
8
|
+
* @flow strict-local
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
dark: '#444',
|
|
17
|
-
darker: '#222',
|
|
18
|
-
black: '#000',
|
|
19
|
-
};
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
import DrawerLayoutAndroidFallback from './DrawerLayoutAndroidFallback';
|
|
14
|
+
|
|
15
|
+
export default DrawerLayoutAndroidFallback;
|
|
@@ -5,73 +5,13 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
* @format
|
|
8
|
-
* @flow
|
|
8
|
+
* @flow
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
// NOTE: This file supports backwards compatibility of subpath (deep) imports
|
|
12
|
+
// from 'react-native' with platform-specific extensions. It can be deleted
|
|
13
|
+
// once we remove the "./*" mapping from package.json "exports".
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
import type {
|
|
15
|
-
MeasureInWindowOnSuccessCallback,
|
|
16
|
-
MeasureLayoutOnSuccessCallback,
|
|
17
|
-
MeasureOnSuccessCallback,
|
|
18
|
-
} from '../../../src/private/types/HostInstance';
|
|
19
|
-
import type {
|
|
20
|
-
DrawerLayoutAndroidMethods,
|
|
21
|
-
DrawerLayoutAndroidProps,
|
|
22
|
-
DrawerLayoutAndroidState,
|
|
23
|
-
} from './DrawerLayoutAndroidTypes';
|
|
15
|
+
import DrawerLayoutAndroid from './DrawerLayoutAndroid';
|
|
24
16
|
|
|
25
|
-
|
|
26
|
-
import * as React from 'react';
|
|
27
|
-
|
|
28
|
-
export type {
|
|
29
|
-
DrawerLayoutAndroidProps,
|
|
30
|
-
DrawerSlideEvent,
|
|
31
|
-
} from './DrawerLayoutAndroidTypes';
|
|
32
|
-
|
|
33
|
-
export default class DrawerLayoutAndroid
|
|
34
|
-
extends React.Component<DrawerLayoutAndroidProps, DrawerLayoutAndroidState>
|
|
35
|
-
implements DrawerLayoutAndroidMethods
|
|
36
|
-
{
|
|
37
|
-
render(): React.Node {
|
|
38
|
-
return <UnimplementedView {...this.props} />;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
openDrawer(): void {
|
|
42
|
-
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
closeDrawer(): void {
|
|
46
|
-
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
blur(): void {
|
|
50
|
-
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
focus(): void {
|
|
54
|
-
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
measure(callback: MeasureOnSuccessCallback): void {
|
|
58
|
-
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
measureInWindow(callback: MeasureInWindowOnSuccessCallback): void {
|
|
62
|
-
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
measureLayout(
|
|
66
|
-
relativeToNativeNode: number,
|
|
67
|
-
onSuccess: MeasureLayoutOnSuccessCallback,
|
|
68
|
-
onFail?: () => void,
|
|
69
|
-
): void {
|
|
70
|
-
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// $FlowFixMe[unclear-type]
|
|
74
|
-
setNativeProps(nativeProps: Object): void {
|
|
75
|
-
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
76
|
-
}
|
|
77
|
-
}
|
|
17
|
+
export default DrawerLayoutAndroid;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
* @flow strict-local
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import DrawerLayoutAndroid from './DrawerLayoutAndroidFallback';
|
|
12
|
+
|
|
13
|
+
export type {
|
|
14
|
+
DrawerLayoutAndroidProps,
|
|
15
|
+
DrawerSlideEvent,
|
|
16
|
+
} from './DrawerLayoutAndroidTypes';
|
|
17
|
+
|
|
18
|
+
export default DrawerLayoutAndroid;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
* @flow strict-local
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
import type {
|
|
14
|
+
MeasureInWindowOnSuccessCallback,
|
|
15
|
+
MeasureLayoutOnSuccessCallback,
|
|
16
|
+
MeasureOnSuccessCallback,
|
|
17
|
+
} from '../../../src/private/types/HostInstance';
|
|
18
|
+
import type {
|
|
19
|
+
DrawerLayoutAndroidMethods,
|
|
20
|
+
DrawerLayoutAndroidProps,
|
|
21
|
+
DrawerLayoutAndroidState,
|
|
22
|
+
} from './DrawerLayoutAndroidTypes';
|
|
23
|
+
|
|
24
|
+
import UnimplementedView from '../UnimplementedViews/UnimplementedView';
|
|
25
|
+
import * as React from 'react';
|
|
26
|
+
|
|
27
|
+
export default class DrawerLayoutAndroid
|
|
28
|
+
extends React.Component<DrawerLayoutAndroidProps, DrawerLayoutAndroidState>
|
|
29
|
+
implements DrawerLayoutAndroidMethods
|
|
30
|
+
{
|
|
31
|
+
render(): React.Node {
|
|
32
|
+
return <UnimplementedView {...this.props} />;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
openDrawer(): void {
|
|
36
|
+
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
closeDrawer(): void {
|
|
40
|
+
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
blur(): void {
|
|
44
|
+
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
focus(): void {
|
|
48
|
+
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
measure(callback: MeasureOnSuccessCallback): void {
|
|
52
|
+
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
measureInWindow(callback: MeasureInWindowOnSuccessCallback): void {
|
|
56
|
+
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
measureLayout(
|
|
60
|
+
relativeToNativeNode: number,
|
|
61
|
+
onSuccess: MeasureLayoutOnSuccessCallback,
|
|
62
|
+
onFail?: () => void,
|
|
63
|
+
): void {
|
|
64
|
+
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// $FlowFixMe[unclear-type]
|
|
68
|
+
setNativeProps(nativeProps: Object): void {
|
|
69
|
+
throw new Error('DrawerLayoutAndroid is only available on Android');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -103,7 +103,7 @@ type KeyboardEventDefinitions = {
|
|
|
103
103
|
*```
|
|
104
104
|
*/
|
|
105
105
|
|
|
106
|
-
class
|
|
106
|
+
class KeyboardImpl {
|
|
107
107
|
_currentlyShowing: ?KeyboardEvent;
|
|
108
108
|
|
|
109
109
|
_emitter: NativeEventEmitter<KeyboardEventDefinitions> =
|
|
@@ -148,7 +148,7 @@ class Keyboard {
|
|
|
148
148
|
*/
|
|
149
149
|
addListener<K: $Keys<KeyboardEventDefinitions>>(
|
|
150
150
|
eventType: K,
|
|
151
|
-
listener: (
|
|
151
|
+
listener: (...KeyboardEventDefinitions[K]) => mixed,
|
|
152
152
|
context?: mixed,
|
|
153
153
|
): EventSubscription {
|
|
154
154
|
return this._emitter.addListener(eventType, listener);
|
|
@@ -202,4 +202,6 @@ class Keyboard {
|
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
-
|
|
205
|
+
const Keyboard: KeyboardImpl = new KeyboardImpl();
|
|
206
|
+
|
|
207
|
+
export default Keyboard;
|
|
@@ -51,7 +51,7 @@ export type KeyboardAvoidingViewProps = $ReadOnly<{
|
|
|
51
51
|
keyboardVerticalOffset?: number,
|
|
52
52
|
}>;
|
|
53
53
|
|
|
54
|
-
type
|
|
54
|
+
type KeyboardAvoidingViewState = {
|
|
55
55
|
bottom: number,
|
|
56
56
|
};
|
|
57
57
|
|
|
@@ -61,7 +61,7 @@ type State = {
|
|
|
61
61
|
*/
|
|
62
62
|
class KeyboardAvoidingView extends React.Component<
|
|
63
63
|
KeyboardAvoidingViewProps,
|
|
64
|
-
|
|
64
|
+
KeyboardAvoidingViewState,
|
|
65
65
|
> {
|
|
66
66
|
_frame: ?ViewLayout = null;
|
|
67
67
|
_keyboardEvent: ?KeyboardEvent = null;
|
|
@@ -178,7 +178,10 @@ class KeyboardAvoidingView extends React.Component<
|
|
|
178
178
|
}
|
|
179
179
|
};
|
|
180
180
|
|
|
181
|
-
componentDidUpdate(
|
|
181
|
+
componentDidUpdate(
|
|
182
|
+
_: KeyboardAvoidingViewProps,
|
|
183
|
+
prevState: KeyboardAvoidingViewState,
|
|
184
|
+
): void {
|
|
182
185
|
const enabled = this.props.enabled ?? true;
|
|
183
186
|
if (enabled && this._bottom !== prevState.bottom) {
|
|
184
187
|
this.setState({bottom: this._bottom});
|
|
@@ -26,7 +26,9 @@ import useAndroidRippleForView, {
|
|
|
26
26
|
import * as React from 'react';
|
|
27
27
|
import {useMemo, useRef, useState} from 'react';
|
|
28
28
|
|
|
29
|
-
type ViewStyleProp =
|
|
29
|
+
type ViewStyleProp = React.ElementConfig<typeof View>['style'];
|
|
30
|
+
|
|
31
|
+
export type {PressableAndroidRippleConfig};
|
|
30
32
|
|
|
31
33
|
export type PressableStateCallbackType = $ReadOnly<{
|
|
32
34
|
pressed: boolean,
|
|
@@ -43,7 +45,7 @@ type PressableBaseProps = $ReadOnly<{
|
|
|
43
45
|
* Either children or a render prop that receives a boolean reflecting whether
|
|
44
46
|
* the component is currently pressed.
|
|
45
47
|
*/
|
|
46
|
-
children
|
|
48
|
+
children?: React.Node | ((state: PressableStateCallbackType) => React.Node),
|
|
47
49
|
|
|
48
50
|
/**
|
|
49
51
|
* Duration to wait after hover in before calling `onHoverIn`.
|
|
@@ -105,6 +107,10 @@ type PressableBaseProps = $ReadOnly<{
|
|
|
105
107
|
* Called when a touch is engaged before `onPress`.
|
|
106
108
|
*/
|
|
107
109
|
onPressIn?: ?(event: GestureResponderEvent) => mixed,
|
|
110
|
+
/**
|
|
111
|
+
* Called when the press location moves.
|
|
112
|
+
*/
|
|
113
|
+
onPressMove?: ?(event: GestureResponderEvent) => mixed,
|
|
108
114
|
|
|
109
115
|
/**
|
|
110
116
|
* Called when a touch is released before `onPress`.
|
|
@@ -146,7 +152,10 @@ type PressableBaseProps = $ReadOnly<{
|
|
|
146
152
|
}>;
|
|
147
153
|
|
|
148
154
|
export type PressableProps = $ReadOnly<{
|
|
149
|
-
|
|
155
|
+
// Pressability may override `onMouseEnter` and `onMouseLeave` to
|
|
156
|
+
// implement `onHoverIn` and `onHoverOut` in a platform-agnostic way.
|
|
157
|
+
// Hover events should be used instead of mouse events.
|
|
158
|
+
...Omit<ViewProps, 'onMouseEnter' | 'onMouseLeave'>,
|
|
150
159
|
...PressableBaseProps,
|
|
151
160
|
}>;
|
|
152
161
|
|
|
@@ -185,6 +194,7 @@ function Pressable(
|
|
|
185
194
|
onLongPress,
|
|
186
195
|
onPress,
|
|
187
196
|
onPressIn,
|
|
197
|
+
onPressMove,
|
|
188
198
|
onPressOut,
|
|
189
199
|
pressRetentionOffset,
|
|
190
200
|
style,
|
|
@@ -263,7 +273,12 @@ function Pressable(
|
|
|
263
273
|
onPressIn(event);
|
|
264
274
|
}
|
|
265
275
|
},
|
|
266
|
-
onPressMove:
|
|
276
|
+
onPressMove(event: GestureResponderEvent): void {
|
|
277
|
+
android_rippleConfig?.onPressMove(event);
|
|
278
|
+
if (onPressMove != null) {
|
|
279
|
+
onPressMove(event);
|
|
280
|
+
}
|
|
281
|
+
},
|
|
267
282
|
onPressOut(event: GestureResponderEvent): void {
|
|
268
283
|
if (android_rippleConfig != null) {
|
|
269
284
|
android_rippleConfig.onPressOut(event);
|
|
@@ -288,6 +303,7 @@ function Pressable(
|
|
|
288
303
|
onLongPress,
|
|
289
304
|
onPress,
|
|
290
305
|
onPressIn,
|
|
306
|
+
onPressMove,
|
|
291
307
|
onPressOut,
|
|
292
308
|
pressRetentionOffset,
|
|
293
309
|
setPressed,
|
|
@@ -32,7 +32,9 @@ import {useMemo, useRef, useState} from 'react';
|
|
|
32
32
|
import type {HandledKeyboardEvent} from '../../Components/View/ViewPropTypes';
|
|
33
33
|
import View from '../View/View';
|
|
34
34
|
|
|
35
|
-
type ViewStyleProp =
|
|
35
|
+
type ViewStyleProp = React.ElementConfig<typeof View>['style'];
|
|
36
|
+
|
|
37
|
+
export type {PressableAndroidRippleConfig};
|
|
36
38
|
|
|
37
39
|
export type PressableStateCallbackType = $ReadOnly<{
|
|
38
40
|
pressed: boolean,
|
|
@@ -49,7 +51,7 @@ type PressableBaseProps = $ReadOnly<{
|
|
|
49
51
|
* Either children or a render prop that receives a boolean reflecting whether
|
|
50
52
|
* the component is currently pressed.
|
|
51
53
|
*/
|
|
52
|
-
children
|
|
54
|
+
children?: React.Node | ((state: PressableStateCallbackType) => React.Node),
|
|
53
55
|
|
|
54
56
|
/**
|
|
55
57
|
* Duration to wait after hover in before calling `onHoverIn`.
|
|
@@ -111,6 +113,10 @@ type PressableBaseProps = $ReadOnly<{
|
|
|
111
113
|
* Called when a touch is engaged before `onPress`.
|
|
112
114
|
*/
|
|
113
115
|
onPressIn?: ?(event: GestureResponderEvent) => mixed,
|
|
116
|
+
/**
|
|
117
|
+
* Called when the press location moves.
|
|
118
|
+
*/
|
|
119
|
+
onPressMove?: ?(event: GestureResponderEvent) => mixed,
|
|
114
120
|
|
|
115
121
|
/**
|
|
116
122
|
* Called when a touch is released before `onPress`.
|
|
@@ -192,7 +198,10 @@ type PressableBaseProps = $ReadOnly<{
|
|
|
192
198
|
}>;
|
|
193
199
|
|
|
194
200
|
export type PressableProps = $ReadOnly<{
|
|
195
|
-
|
|
201
|
+
// Pressability may override `onMouseEnter` and `onMouseLeave` to
|
|
202
|
+
// implement `onHoverIn` and `onHoverOut` in a platform-agnostic way.
|
|
203
|
+
// Hover events should be used instead of mouse events.
|
|
204
|
+
...Omit<ViewProps, 'onMouseEnter' | 'onMouseLeave'>,
|
|
196
205
|
...PressableBaseProps,
|
|
197
206
|
}>;
|
|
198
207
|
|
|
@@ -233,6 +242,7 @@ function Pressable(
|
|
|
233
242
|
onLongPress,
|
|
234
243
|
onPress,
|
|
235
244
|
onPressIn,
|
|
245
|
+
onPressMove,
|
|
236
246
|
onPressOut,
|
|
237
247
|
// [Windows
|
|
238
248
|
onBlur,
|
|
@@ -319,7 +329,12 @@ function Pressable(
|
|
|
319
329
|
onPressIn(event);
|
|
320
330
|
}
|
|
321
331
|
},
|
|
322
|
-
onPressMove:
|
|
332
|
+
onPressMove(event: GestureResponderEvent): void {
|
|
333
|
+
android_rippleConfig?.onPressMove(event);
|
|
334
|
+
if (onPressMove != null) {
|
|
335
|
+
onPressMove(event);
|
|
336
|
+
}
|
|
337
|
+
},
|
|
323
338
|
onPressOut(event: GestureResponderEvent): void {
|
|
324
339
|
if (android_rippleConfig != null) {
|
|
325
340
|
android_rippleConfig.onPressOut(event);
|
|
@@ -350,6 +365,7 @@ function Pressable(
|
|
|
350
365
|
onLongPress,
|
|
351
366
|
onPress,
|
|
352
367
|
onPressIn,
|
|
368
|
+
onPressMove,
|
|
353
369
|
onPressOut,
|
|
354
370
|
// [Windows
|
|
355
371
|
onBlur,
|