@office-iss/react-native-win32 0.79.0 → 0.80.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.
- package/.flowconfig +10 -3
- package/CHANGELOG.json +112 -19
- package/CHANGELOG.md +46 -11
- 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 +26 -26
- 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
|
@@ -19,13 +19,19 @@ import {ImageResizeMode} from './ImageResizeMode';
|
|
|
19
19
|
import {ImageRequireSource, ImageURISource} from './ImageSource';
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
* @
|
|
22
|
+
* @deprecated Use `ImageProgressEventIOS` instead.
|
|
23
23
|
*/
|
|
24
24
|
export interface ImageProgressEventDataIOS {
|
|
25
25
|
loaded: number;
|
|
26
26
|
total: number;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
/**
|
|
30
|
+
* @see https://reactnative.dev/docs/image#onprogress
|
|
31
|
+
*/
|
|
32
|
+
export type ImageProgressEventIOS =
|
|
33
|
+
NativeSyntheticEvent<ImageProgressEventDataIOS>;
|
|
34
|
+
|
|
29
35
|
export interface ImagePropsIOS {
|
|
30
36
|
/**
|
|
31
37
|
* blurRadius: the blur radius of the blur filter added to the image
|
|
@@ -44,9 +50,7 @@ export interface ImagePropsIOS {
|
|
|
44
50
|
/**
|
|
45
51
|
* Invoked on download progress with {nativeEvent: {loaded, total}}
|
|
46
52
|
*/
|
|
47
|
-
onProgress?:
|
|
48
|
-
| ((event: NativeSyntheticEvent<ImageProgressEventDataIOS>) => void)
|
|
49
|
-
| undefined;
|
|
53
|
+
onProgress?: ((event: ImageProgressEventIOS) => void) | undefined;
|
|
50
54
|
|
|
51
55
|
/**
|
|
52
56
|
* Invoked when a partial load of the image is complete. The definition of
|
|
@@ -99,6 +103,9 @@ export type ImageSourcePropType =
|
|
|
99
103
|
| ImageURISource[]
|
|
100
104
|
| ImageRequireSource;
|
|
101
105
|
|
|
106
|
+
/**
|
|
107
|
+
* @deprecated Use `ImageLoadEvent` instead.
|
|
108
|
+
*/
|
|
102
109
|
export interface ImageLoadEventData {
|
|
103
110
|
source: {
|
|
104
111
|
height: number;
|
|
@@ -107,10 +114,23 @@ export interface ImageLoadEventData {
|
|
|
107
114
|
};
|
|
108
115
|
}
|
|
109
116
|
|
|
117
|
+
/**
|
|
118
|
+
* @see https://reactnative.dev/docs/image#onload
|
|
119
|
+
*/
|
|
120
|
+
export type ImageLoadEvent = NativeSyntheticEvent<ImageLoadEventData>;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @deprecated Use `ImageErrorEvent` instead.
|
|
124
|
+
*/
|
|
110
125
|
export interface ImageErrorEventData {
|
|
111
126
|
error: any;
|
|
112
127
|
}
|
|
113
128
|
|
|
129
|
+
/**
|
|
130
|
+
* @see https://reactnative.dev/docs/image#onerror
|
|
131
|
+
*/
|
|
132
|
+
export type ImageErrorEvent = NativeSyntheticEvent<ImageErrorEventData>;
|
|
133
|
+
|
|
114
134
|
/**
|
|
115
135
|
* @see https://reactnative.dev/docs/image#resolveassetsource
|
|
116
136
|
*/
|
|
@@ -145,17 +165,13 @@ export interface ImagePropsBase
|
|
|
145
165
|
/**
|
|
146
166
|
* Invoked on load error with {nativeEvent: {error}}
|
|
147
167
|
*/
|
|
148
|
-
onError?:
|
|
149
|
-
| ((error: NativeSyntheticEvent<ImageErrorEventData>) => void)
|
|
150
|
-
| undefined;
|
|
168
|
+
onError?: ((error: ImageErrorEvent) => void) | undefined;
|
|
151
169
|
|
|
152
170
|
/**
|
|
153
171
|
* Invoked when load completes successfully
|
|
154
172
|
* { source: { uri, height, width } }.
|
|
155
173
|
*/
|
|
156
|
-
onLoad?:
|
|
157
|
-
| ((event: NativeSyntheticEvent<ImageLoadEventData>) => void)
|
|
158
|
-
| undefined;
|
|
174
|
+
onLoad?: ((event: ImageLoadEvent) => void) | undefined;
|
|
159
175
|
|
|
160
176
|
/**
|
|
161
177
|
* Invoked when load either succeeds or fails
|
|
@@ -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 Image from './Image';
|
|
16
|
+
|
|
17
|
+
export default Image;
|
|
@@ -8,15 +8,15 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {
|
|
11
|
+
import type {ImageType} from './ImageTypes.flow';
|
|
12
12
|
|
|
13
13
|
export type {
|
|
14
|
-
|
|
14
|
+
ImageProgressEventIOS,
|
|
15
15
|
ImagePropsIOS,
|
|
16
16
|
ImagePropsAndroid,
|
|
17
17
|
ImageSourcePropType,
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
ImageLoadEvent,
|
|
19
|
+
ImageErrorEvent,
|
|
20
20
|
ImagePropsBase,
|
|
21
21
|
ImageProps,
|
|
22
22
|
ImageBackgroundProps,
|
|
@@ -24,4 +24,4 @@ export type {
|
|
|
24
24
|
|
|
25
25
|
export type {ImageResolvedAssetSource, ImageSize} from './ImageTypes.flow';
|
|
26
26
|
|
|
27
|
-
declare export default
|
|
27
|
+
declare export default ImageType;
|
|
@@ -17,6 +17,8 @@ import StyleSheet from '../StyleSheet/StyleSheet';
|
|
|
17
17
|
import Image from './Image';
|
|
18
18
|
import * as React from 'react';
|
|
19
19
|
|
|
20
|
+
export type {ImageBackgroundProps} from './ImageProps';
|
|
21
|
+
|
|
20
22
|
/**
|
|
21
23
|
* Very simple drop-in replacement for <Image> which supports nesting views.
|
|
22
24
|
*
|
|
@@ -21,26 +21,35 @@ import type {
|
|
|
21
21
|
LayoutChangeEvent,
|
|
22
22
|
NativeSyntheticEvent,
|
|
23
23
|
} from '../Types/CoreEventTypes';
|
|
24
|
-
import typeof Image from './Image';
|
|
25
24
|
import type {ImageResizeMode} from './ImageResizeMode';
|
|
26
25
|
import type {ImageSource, ImageURISource} from './ImageSource';
|
|
27
|
-
import type {
|
|
26
|
+
import type {ImageType} from './ImageTypes.flow';
|
|
27
|
+
|
|
28
|
+
import * as React from 'react';
|
|
28
29
|
|
|
29
30
|
export type ImageSourcePropType = ImageSource;
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
* @see ImagePropsIOS.onProgress
|
|
33
|
-
*/
|
|
34
|
-
export type ImageProgressEventDataIOS = {
|
|
32
|
+
type ImageProgressEventDataIOS = {
|
|
35
33
|
loaded: number,
|
|
36
34
|
total: number,
|
|
37
35
|
};
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+
/**
|
|
38
|
+
* @see ImagePropsIOS.onProgress
|
|
39
|
+
*/
|
|
40
|
+
export type ImageProgressEventIOS = NativeSyntheticEvent<
|
|
41
|
+
$ReadOnly<ImageProgressEventDataIOS>,
|
|
42
|
+
>;
|
|
43
|
+
|
|
44
|
+
type ImageErrorEventData = {
|
|
40
45
|
error: string,
|
|
41
46
|
};
|
|
42
47
|
|
|
43
|
-
export type
|
|
48
|
+
export type ImageErrorEvent = NativeSyntheticEvent<
|
|
49
|
+
$ReadOnly<ImageErrorEventData>,
|
|
50
|
+
>;
|
|
51
|
+
|
|
52
|
+
type ImageLoadEventData = {
|
|
44
53
|
source: {
|
|
45
54
|
height: number,
|
|
46
55
|
width: number,
|
|
@@ -70,9 +79,7 @@ export type ImagePropsIOS = $ReadOnly<{
|
|
|
70
79
|
*
|
|
71
80
|
* See https://reactnative.dev/docs/image#onprogress
|
|
72
81
|
*/
|
|
73
|
-
onProgress?: ?(
|
|
74
|
-
event: NativeSyntheticEvent<$ReadOnly<ImageProgressEventDataIOS>>,
|
|
75
|
-
) => void,
|
|
82
|
+
onProgress?: ?(event: ImageProgressEventIOS) => void,
|
|
76
83
|
}>;
|
|
77
84
|
|
|
78
85
|
export type ImagePropsAndroid = $ReadOnly<{
|
|
@@ -121,7 +128,7 @@ export type ImagePropsAndroid = $ReadOnly<{
|
|
|
121
128
|
}>;
|
|
122
129
|
|
|
123
130
|
export type ImagePropsBase = $ReadOnly<{
|
|
124
|
-
|
|
131
|
+
...Omit<ViewProps, 'style'>,
|
|
125
132
|
/**
|
|
126
133
|
* When true, indicates the image is an accessibility element.
|
|
127
134
|
*
|
|
@@ -201,9 +208,7 @@ export type ImagePropsBase = $ReadOnly<{
|
|
|
201
208
|
*
|
|
202
209
|
* See https://reactnative.dev/docs/image#onerror
|
|
203
210
|
*/
|
|
204
|
-
onError?: ?(
|
|
205
|
-
event: NativeSyntheticEvent<$ReadOnly<ImageErrorEventData>>,
|
|
206
|
-
) => void,
|
|
211
|
+
onError?: ?(event: ImageErrorEvent) => void,
|
|
207
212
|
|
|
208
213
|
/**
|
|
209
214
|
* onLayout function
|
|
@@ -341,7 +346,7 @@ export type ImageProps = $ReadOnly<{
|
|
|
341
346
|
|
|
342
347
|
export type ImageBackgroundProps = $ReadOnly<{
|
|
343
348
|
...ImageProps,
|
|
344
|
-
children?: Node,
|
|
349
|
+
children?: React.Node,
|
|
345
350
|
|
|
346
351
|
/**
|
|
347
352
|
* Style applied to the outer View component
|
|
@@ -362,5 +367,5 @@ export type ImageBackgroundProps = $ReadOnly<{
|
|
|
362
367
|
*
|
|
363
368
|
* See https://reactnative.dev/docs/imagebackground#imageref
|
|
364
369
|
*/
|
|
365
|
-
imageRef?: RefSetter<ElementRef<
|
|
370
|
+
imageRef?: React.RefSetter<React.ElementRef<ImageType>>,
|
|
366
371
|
}>;
|
|
@@ -52,14 +52,14 @@ export function getImageSourcesFromImageProps(
|
|
|
52
52
|
// 1x scale is provided in `srcSet` prop so ignore the `src` prop if provided.
|
|
53
53
|
shouldUseSrcForDefaultScale =
|
|
54
54
|
scale === 1 ? false : shouldUseSrcForDefaultScale;
|
|
55
|
-
sourceList.push({headers
|
|
55
|
+
sourceList.push({headers, scale, uri, width, height});
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
59
|
|
|
60
60
|
if (shouldUseSrcForDefaultScale && src != null) {
|
|
61
61
|
sourceList.push({
|
|
62
|
-
headers
|
|
62
|
+
headers,
|
|
63
63
|
scale: 1,
|
|
64
64
|
uri: src,
|
|
65
65
|
width,
|
|
@@ -73,6 +73,8 @@ export function getImageSourcesFromImageProps(
|
|
|
73
73
|
sources = sourceList;
|
|
74
74
|
} else if (src != null) {
|
|
75
75
|
sources = [{uri: src, headers: headers, width, height}];
|
|
76
|
+
} else if (source != null && source.uri && Object.keys(headers).length > 0) {
|
|
77
|
+
sources = [{...source, headers}];
|
|
76
78
|
} else {
|
|
77
79
|
sources = source;
|
|
78
80
|
}
|
|
@@ -83,6 +83,6 @@ export type AbstractImageIOS = component(
|
|
|
83
83
|
|
|
84
84
|
export type ImageIOS = AbstractImageIOS & ImageComponentStaticsIOS;
|
|
85
85
|
|
|
86
|
-
export type
|
|
86
|
+
export type ImageType = ImageIOS | ImageAndroid;
|
|
87
87
|
|
|
88
88
|
export type {ImageProps} from './ImageProps';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
export declare const title = "ImageWin32Test";
|
|
2
3
|
export declare const displayName = "Image Win32 test";
|
|
3
4
|
export declare const description = "Image Win32 test";
|
|
4
5
|
export declare const examples: {
|
|
5
6
|
title: string;
|
|
6
7
|
description: string;
|
|
7
|
-
render(): JSX.Element;
|
|
8
|
+
render(): React.JSX.Element;
|
|
8
9
|
}[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageWin32Test.js","sourceRoot":"","sources":["../../../src-win/Libraries/Image/Tests/ImageWin32Test.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AACzB,+CAAqC;AAErC,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAElC,QAAA,KAAK,GAAG,gBAAgB,CAAC;AACzB,QAAA,WAAW,GAAG,kBAAkB,CAAC;AACjC,QAAA,WAAW,GAAG,kBAAkB,CAAC;AACjC,QAAA,QAAQ,GAAG;IACpB;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,YAAY;QACzB,MAAM;YACJ,OAAO,CACL,8BAAC,oBAAK,IACJ,KAAK,EAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EACnC,MAAM,EAAG,SAAS,GAClB,CACH,CAAC;QACJ,CAAC;KACF;CACF,CAAC","sourcesContent":["import React from 'react'\nimport { Image } from 'react-native';\n\nconst testImage = require('./img/dpitest.png');\n\nexport const title = 'ImageWin32Test';\nexport const displayName = 'Image Win32 test';\nexport const description = 'Image Win32 test';\nexport const examples = [\n {\n title: 'Win32 Image control test',\n description: 'Test Image',\n render()
|
|
1
|
+
{"version":3,"file":"ImageWin32Test.js","sourceRoot":"","sources":["../../../src-win/Libraries/Image/Tests/ImageWin32Test.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AACzB,+CAAqC;AAErC,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAElC,QAAA,KAAK,GAAG,gBAAgB,CAAC;AACzB,QAAA,WAAW,GAAG,kBAAkB,CAAC;AACjC,QAAA,WAAW,GAAG,kBAAkB,CAAC;AACjC,QAAA,QAAQ,GAAG;IACpB;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,YAAY;QACzB,MAAM;YACJ,OAAO,CACL,8BAAC,oBAAK,IACJ,KAAK,EAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EACnC,MAAM,EAAG,SAAS,GAClB,CACH,CAAC;QACJ,CAAC;KACF;CACF,CAAC","sourcesContent":["import React from 'react'\nimport { Image } from 'react-native';\n\nconst testImage = require('./img/dpitest.png');\n\nexport const title = 'ImageWin32Test';\nexport const displayName = 'Image Win32 test';\nexport const description = 'Image Win32 test';\nexport const examples = [\n {\n title: 'Win32 Image control test',\n description: 'Test Image',\n render() {\n return (\n <Image\n style={ { width: 100, height: 100 } }\n source={ testImage }\n />\n );\n },\n },\n ];\n"]}
|
|
@@ -20,6 +20,9 @@ export type PromiseTask = {
|
|
|
20
20
|
gen: () => Promise<any>;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated
|
|
25
|
+
*/
|
|
23
26
|
export interface InteractionManagerStatic {
|
|
24
27
|
Events: {
|
|
25
28
|
interactionStart: string;
|
|
@@ -36,6 +39,8 @@ export interface InteractionManagerStatic {
|
|
|
36
39
|
* emitted
|
|
37
40
|
* @param context - Optional context object to use when invoking the
|
|
38
41
|
* listener
|
|
42
|
+
*
|
|
43
|
+
* @deprecated
|
|
39
44
|
*/
|
|
40
45
|
addListener(
|
|
41
46
|
eventType: string,
|
|
@@ -46,6 +51,8 @@ export interface InteractionManagerStatic {
|
|
|
46
51
|
/**
|
|
47
52
|
* Schedule a function to run after all interactions have completed.
|
|
48
53
|
* Returns a cancellable
|
|
54
|
+
*
|
|
55
|
+
* @deprecated
|
|
49
56
|
*/
|
|
50
57
|
runAfterInteractions(task?: (() => any) | SimpleTask | PromiseTask): {
|
|
51
58
|
then: (onfulfilled?: () => any, onrejected?: () => any) => Promise<any>;
|
|
@@ -55,11 +62,15 @@ export interface InteractionManagerStatic {
|
|
|
55
62
|
|
|
56
63
|
/**
|
|
57
64
|
* Notify manager that an interaction has started.
|
|
65
|
+
*
|
|
66
|
+
* @deprecated
|
|
58
67
|
*/
|
|
59
68
|
createInteractionHandle(): Handle;
|
|
60
69
|
|
|
61
70
|
/**
|
|
62
71
|
* Notify manager that an interaction has completed.
|
|
72
|
+
*
|
|
73
|
+
* @deprecated
|
|
63
74
|
*/
|
|
64
75
|
clearInteractionHandle(handle: Handle): void;
|
|
65
76
|
|
|
@@ -67,6 +78,8 @@ export interface InteractionManagerStatic {
|
|
|
67
78
|
* A positive number will use setTimeout to schedule any tasks after
|
|
68
79
|
* the eventLoopRunningTime hits the deadline value, otherwise all
|
|
69
80
|
* tasks will be executed in one setImmediate batch (default).
|
|
81
|
+
*
|
|
82
|
+
* @deprecated
|
|
70
83
|
*/
|
|
71
84
|
setDeadline(deadline: number): void;
|
|
72
85
|
}
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
* @flow strict-local
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {EventSubscription} from '../vendor/emitter/EventEmitter';
|
|
11
12
|
import type {Task} from './TaskQueue';
|
|
12
13
|
|
|
13
14
|
import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
14
15
|
import EventEmitter from '../vendor/emitter/EventEmitter';
|
|
15
|
-
import type {EventSubscription} from '../vendor/emitter/EventEmitter';
|
|
16
16
|
|
|
17
17
|
const BatchedBridge = require('../BatchedBridge/BatchedBridge').default;
|
|
18
18
|
const infoLog = require('../Utilities/infoLog').default;
|
|
@@ -193,7 +193,7 @@ type PassiveCallback = (
|
|
|
193
193
|
gestureState: PanResponderGestureState,
|
|
194
194
|
) => mixed;
|
|
195
195
|
|
|
196
|
-
export type
|
|
196
|
+
export type GestureResponderHandlerMethods = {
|
|
197
197
|
onMoveShouldSetResponder: (event: GestureResponderEvent) => boolean,
|
|
198
198
|
onMoveShouldSetResponderCapture: (event: GestureResponderEvent) => boolean,
|
|
199
199
|
onResponderEnd: (event: GestureResponderEvent) => void,
|
|
@@ -333,7 +333,7 @@ const PanResponder = {
|
|
|
333
333
|
*/
|
|
334
334
|
_updateGestureStateOnMove(
|
|
335
335
|
gestureState: PanResponderGestureState,
|
|
336
|
-
touchHistory:
|
|
336
|
+
touchHistory: GestureResponderEvent['touchHistory'],
|
|
337
337
|
) {
|
|
338
338
|
gestureState.numberActiveTouches = touchHistory.numberActiveTouches;
|
|
339
339
|
gestureState.moveX = currentCentroidXOfTouchesChangedAfter(
|
|
@@ -403,7 +403,7 @@ const PanResponder = {
|
|
|
403
403
|
*/
|
|
404
404
|
create(config: PanResponderCallbacks): {
|
|
405
405
|
getInteractionHandle: () => ?number,
|
|
406
|
-
panHandlers:
|
|
406
|
+
panHandlers: GestureResponderHandlerMethods,
|
|
407
407
|
} {
|
|
408
408
|
const interactionState = {
|
|
409
409
|
handle: (null: ?number),
|
|
@@ -20,14 +20,14 @@ import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNa
|
|
|
20
20
|
import {getFabricUIManager} from '../ReactNative/FabricUIManager';
|
|
21
21
|
import Platform from '../Utilities/Platform';
|
|
22
22
|
|
|
23
|
+
const UIManager = require('../ReactNative/UIManager').default;
|
|
24
|
+
|
|
23
25
|
export type {
|
|
24
26
|
LayoutAnimationType,
|
|
25
27
|
LayoutAnimationProperty,
|
|
26
28
|
LayoutAnimationAnimationConfig as LayoutAnimationAnim,
|
|
27
29
|
} from '../Renderer/shims/ReactNativeTypes';
|
|
28
30
|
|
|
29
|
-
const UIManager = require('../ReactNative/UIManager').default;
|
|
30
|
-
|
|
31
31
|
// Reexport type
|
|
32
32
|
export type LayoutAnimationConfig = LayoutAnimationConfig_;
|
|
33
33
|
|
|
@@ -34,7 +34,7 @@ class LinkingImpl extends NativeEventEmitter<LinkingEventDefinitions> {
|
|
|
34
34
|
*/
|
|
35
35
|
addEventListener<K: $Keys<LinkingEventDefinitions>>(
|
|
36
36
|
eventType: K,
|
|
37
|
-
listener: (
|
|
37
|
+
listener: (...LinkingEventDefinitions[K]) => mixed,
|
|
38
38
|
): EventSubscription {
|
|
39
39
|
return this.addListener(eventType, listener);
|
|
40
40
|
}
|
|
@@ -228,8 +228,8 @@ export abstract class FlatListComponent<
|
|
|
228
228
|
* Provides a reference to the underlying host component
|
|
229
229
|
*/
|
|
230
230
|
getNativeScrollRef: () =>
|
|
231
|
-
| React.
|
|
232
|
-
| React.
|
|
231
|
+
| React.ComponentRef<typeof View>
|
|
232
|
+
| React.ComponentRef<typeof ScrollViewComponent>
|
|
233
233
|
| null
|
|
234
234
|
| undefined;
|
|
235
235
|
|
|
@@ -22,7 +22,7 @@ import {type ScrollResponderType} from '../Components/ScrollView/ScrollView';
|
|
|
22
22
|
import View from '../Components/View/View';
|
|
23
23
|
import VirtualizedLists from '@react-native/virtualized-lists';
|
|
24
24
|
import memoizeOne from 'memoize-one';
|
|
25
|
-
import React from 'react';
|
|
25
|
+
import * as React from 'react';
|
|
26
26
|
|
|
27
27
|
const StyleSheet = require('../StyleSheet/StyleSheet').default;
|
|
28
28
|
const deepDiffer = require('../Utilities/differ/deepDiffer').default;
|
|
@@ -184,17 +184,14 @@ type FlatListBaseProps<ItemT> = {
|
|
|
184
184
|
type VirtualizedListProps = React.ElementConfig<typeof VirtualizedList>;
|
|
185
185
|
|
|
186
186
|
export type FlatListProps<ItemT> = {
|
|
187
|
-
|
|
187
|
+
...Omit<
|
|
188
188
|
VirtualizedListProps,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
keyExtractor: $PropertyType<VirtualizedListProps, 'keyExtractor'>,
|
|
196
|
-
...
|
|
197
|
-
},
|
|
189
|
+
| 'data'
|
|
190
|
+
| 'getItem'
|
|
191
|
+
| 'getItemCount'
|
|
192
|
+
| 'getItemLayout'
|
|
193
|
+
| 'renderItem'
|
|
194
|
+
| 'keyExtractor',
|
|
198
195
|
>,
|
|
199
196
|
...FlatListBaseProps<ItemT>,
|
|
200
197
|
...
|
|
@@ -12,8 +12,10 @@
|
|
|
12
12
|
|
|
13
13
|
import type {ScrollResponderType} from '../Components/ScrollView/ScrollView';
|
|
14
14
|
import type {
|
|
15
|
+
ListRenderItemInfo,
|
|
15
16
|
ScrollToLocationParamsType,
|
|
16
17
|
SectionBase as _SectionBase,
|
|
18
|
+
SectionData,
|
|
17
19
|
VirtualizedSectionListProps,
|
|
18
20
|
} from '@react-native/virtualized-lists';
|
|
19
21
|
|
|
@@ -23,11 +25,21 @@ import * as React from 'react';
|
|
|
23
25
|
|
|
24
26
|
const VirtualizedSectionList = VirtualizedLists.VirtualizedSectionList;
|
|
25
27
|
|
|
26
|
-
type
|
|
28
|
+
type DefaultSectionT = {
|
|
29
|
+
[key: string]: any,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export type SectionBase<
|
|
33
|
+
SectionItemT,
|
|
34
|
+
SectionT = DefaultSectionT,
|
|
35
|
+
> = _SectionBase<SectionItemT, SectionT>;
|
|
27
36
|
|
|
28
|
-
export type
|
|
37
|
+
export type {
|
|
38
|
+
SectionData as SectionListData,
|
|
39
|
+
ScrollToLocationParamsType as SectionListScrollParams,
|
|
40
|
+
};
|
|
29
41
|
|
|
30
|
-
type RequiredProps<SectionT
|
|
42
|
+
type RequiredProps<ItemT, SectionT = DefaultSectionT> = {
|
|
31
43
|
/**
|
|
32
44
|
* The actual data to render, akin to the `data` prop in [`<FlatList>`](https://reactnative.dev/docs/flatlist).
|
|
33
45
|
*
|
|
@@ -39,25 +51,24 @@ type RequiredProps<SectionT: SectionBase<any>> = {
|
|
|
39
51
|
* ItemSeparatorComponent?: ?ReactClass<{highlighted: boolean, ...}>,
|
|
40
52
|
* }>
|
|
41
53
|
*/
|
|
42
|
-
sections: $ReadOnlyArray<SectionT
|
|
54
|
+
sections: $ReadOnlyArray<SectionData<ItemT, SectionT>>,
|
|
43
55
|
};
|
|
44
56
|
|
|
45
|
-
type
|
|
57
|
+
export type SectionListRenderItemInfo<ItemT, SectionT = DefaultSectionT> = {
|
|
58
|
+
...ListRenderItemInfo<ItemT>,
|
|
59
|
+
section: SectionData<ItemT, SectionT>,
|
|
60
|
+
...
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export type SectionListRenderItem<ItemT, SectionT = DefaultSectionT> = (
|
|
64
|
+
info: SectionListRenderItemInfo<ItemT, SectionT>,
|
|
65
|
+
) => React.Node | null;
|
|
66
|
+
|
|
67
|
+
type OptionalProps<ItemT, SectionT = DefaultSectionT> = {
|
|
46
68
|
/**
|
|
47
69
|
* Default renderer for every item in every section. Can be over-ridden on a per-section basis.
|
|
48
70
|
*/
|
|
49
|
-
renderItem?:
|
|
50
|
-
item: Item,
|
|
51
|
-
index: number,
|
|
52
|
-
section: SectionT,
|
|
53
|
-
separators: {
|
|
54
|
-
highlight: () => void,
|
|
55
|
-
unhighlight: () => void,
|
|
56
|
-
updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,
|
|
57
|
-
...
|
|
58
|
-
},
|
|
59
|
-
...
|
|
60
|
-
}) => null | React.Node,
|
|
71
|
+
renderItem?: SectionListRenderItem<ItemT, SectionT>,
|
|
61
72
|
/**
|
|
62
73
|
* A marker property for telling the list to re-render (since it implements `PureComponent`). If
|
|
63
74
|
* any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the
|
|
@@ -80,7 +91,7 @@ type OptionalProps<SectionT: SectionBase<any>> = {
|
|
|
80
91
|
* falls back to using the index, like react does. Note that this sets keys for each item, but
|
|
81
92
|
* each overall section still needs its own key.
|
|
82
93
|
*/
|
|
83
|
-
keyExtractor?: ?(item:
|
|
94
|
+
keyExtractor?: ?(item: ItemT, index: number) => string,
|
|
84
95
|
/**
|
|
85
96
|
* Called once when the scroll position gets within `onEndReachedThreshold` of the rendered
|
|
86
97
|
* content.
|
|
@@ -94,28 +105,13 @@ type OptionalProps<SectionT: SectionBase<any>> = {
|
|
|
94
105
|
removeClippedSubviews?: boolean,
|
|
95
106
|
};
|
|
96
107
|
|
|
97
|
-
export type
|
|
98
|
-
|
|
99
|
-
VirtualizedSectionListProps<SectionT>,
|
|
100
|
-
|
|
101
|
-
getItem: $PropertyType<VirtualizedSectionListProps<SectionT>, 'getItem'>,
|
|
102
|
-
getItemCount: $PropertyType<
|
|
103
|
-
VirtualizedSectionListProps<SectionT>,
|
|
104
|
-
'getItemCount',
|
|
105
|
-
>,
|
|
106
|
-
renderItem: $PropertyType<
|
|
107
|
-
VirtualizedSectionListProps<SectionT>,
|
|
108
|
-
'renderItem',
|
|
109
|
-
>,
|
|
110
|
-
keyExtractor: $PropertyType<
|
|
111
|
-
VirtualizedSectionListProps<SectionT>,
|
|
112
|
-
'keyExtractor',
|
|
113
|
-
>,
|
|
114
|
-
...
|
|
115
|
-
},
|
|
108
|
+
export type SectionListProps<ItemT, SectionT = DefaultSectionT> = {
|
|
109
|
+
...Omit<
|
|
110
|
+
VirtualizedSectionListProps<ItemT, SectionT>,
|
|
111
|
+
'getItem' | 'getItemCount' | 'renderItem' | 'keyExtractor',
|
|
116
112
|
>,
|
|
117
|
-
...RequiredProps<SectionT>,
|
|
118
|
-
...OptionalProps<SectionT>,
|
|
113
|
+
...RequiredProps<ItemT, SectionT>,
|
|
114
|
+
...OptionalProps<ItemT, SectionT>,
|
|
119
115
|
};
|
|
120
116
|
|
|
121
117
|
/**
|
|
@@ -174,9 +170,10 @@ export type Props<SectionT> = {
|
|
|
174
170
|
*
|
|
175
171
|
*/
|
|
176
172
|
export default class SectionList<
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
173
|
+
ItemT = any,
|
|
174
|
+
SectionT = DefaultSectionT,
|
|
175
|
+
> extends React.PureComponent<SectionListProps<ItemT, SectionT>> {
|
|
176
|
+
props: SectionListProps<ItemT, SectionT>;
|
|
180
177
|
|
|
181
178
|
/**
|
|
182
179
|
* Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)
|