@office-iss/react-native-win32 0.84.0 → 0.85.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/.eslintignore +1 -0
- package/.flowconfig +1 -5
- package/CHANGELOG.json +67 -22
- package/CHANGELOG.md +14 -17
- package/IntegrationTests/IntegrationTestHarnessTest.js +1 -1
- package/IntegrationTests/LayoutEventsTest.js +1 -1
- package/IntegrationTests/TimersTest.js +1 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
- package/Libraries/Animated/Animated.d.ts +8 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -4
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/animations/Animation.js +3 -3
- package/Libraries/Animated/animations/DecayAnimation.js +4 -4
- package/Libraries/Animated/animations/SpringAnimation.js +5 -5
- package/Libraries/Animated/animations/TimingAnimation.js +5 -5
- package/Libraries/Animated/createAnimatedComponent.js +7 -7
- package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
- package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
- package/Libraries/Animated/useAnimatedColor.js +25 -0
- package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
- package/Libraries/Animated/useAnimatedValueXY.js +26 -0
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +3 -3
- package/Libraries/BatchedBridge/NativeModules.js +12 -10
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +34 -30
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
- package/Libraries/Components/Button.js +2 -2
- package/Libraries/Components/Button.win32.js +2 -2
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
- package/Libraries/Components/EnterString.win32.js +2 -2
- package/Libraries/Components/EnterString.win32.js.map +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +6 -6
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.win32.js +3 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
- package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
- package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
- package/Libraries/Components/ScrollView/ScrollView.js +19 -9
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +8 -8
- package/Libraries/Components/Switch/Switch.js +3 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
- package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +23 -22
- package/Libraries/Components/TextInput/TextInput.js +8 -4
- package/Libraries/Components/TextInput/TextInput.win32.js +3 -4
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +2 -2
- package/Libraries/Components/Touchable/Touchable.win32.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
- package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +7 -7
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
- package/Libraries/Components/Touchable/TouchableWin32.js +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
- package/Libraries/Components/View/ViewAccessibility.js +7 -7
- package/Libraries/Components/View/ViewAccessibility.win32.js +7 -7
- package/Libraries/Components/View/ViewPropTypes.js +14 -14
- package/Libraries/Components/View/ViewPropTypes.win32.js +16 -16
- package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/ExtendedError.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/Timers/JSTimers.js +3 -2
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +4 -2
- package/Libraries/Core/setUpReactDevTools.js +23 -6
- package/Libraries/Core/setUpSegmentFetcher.js +1 -1
- package/Libraries/Debugging/DebuggingOverlay.js +2 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +1 -1
- package/Libraries/Image/Image.android.js +172 -306
- package/Libraries/Image/ImageProps.js +9 -11
- package/Libraries/Image/ImageSource.js +2 -2
- package/Libraries/Image/ImageSourceUtils.js +8 -4
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Image/ImageViewNativeComponent.js +7 -16
- package/Libraries/Image/nativeImageSource.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +5 -4
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +3 -3
- package/Libraries/Lists/SectionList.js +1 -1
- package/Libraries/Lists/SectionListModern.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +38 -24
- package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
- package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
- package/Libraries/LogBox/LogBox.js +42 -19
- package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
- package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +15 -16
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +11 -13
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +3 -5
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
- package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
- package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
- package/Libraries/Modal/Modal.js +3 -3
- package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +16 -16
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.win32.js +1 -1
- package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
- package/Libraries/Pressability/Pressability.js +5 -5
- package/Libraries/Pressability/Pressability.win32.js +5 -5
- package/Libraries/Pressability/PressabilityDebug.js +1 -1
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
- package/Libraries/Pressability/usePressability.js +3 -14
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
- package/Libraries/ReactNative/AppContainer-dev.js +18 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +4 -4
- package/Libraries/ReactNative/UIManagerProperties.js +1 -1
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
- package/Libraries/Renderer/shims/ReactFabric.js +1 -3
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
- package/Libraries/Renderer/shims/ReactNative.js +3 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
- package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
- package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
- package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
- package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
- package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
- package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
- package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
- package/Libraries/StyleSheet/processBoxShadow.js +44 -4
- package/Libraries/StyleSheet/processColorArray.js +2 -2
- package/Libraries/StyleSheet/processFilter.js +2 -2
- package/Libraries/Text/Text.js +295 -627
- package/Libraries/Text/Text.win32.js +360 -744
- package/Libraries/Text/TextNativeComponent.js +14 -7
- package/Libraries/Text/TextNativeComponent.win32.js +14 -7
- package/Libraries/Text/TextProps.js +4 -4
- package/Libraries/Text/TextProps.win32.js +4 -4
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +21 -21
- package/Libraries/Types/CoreEventTypes.win32.js +22 -21
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +6 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/Dimensions.win32.js +1 -1
- package/Libraries/Utilities/HMRClient.js +32 -5
- package/Libraries/Utilities/IPerformanceLogger.js +4 -4
- package/Libraries/Utilities/codegenNativeCommands.js +4 -4
- package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
- package/Libraries/Utilities/codegenNativeComponent.js +2 -2
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +3 -3
- package/Libraries/Utilities/useMergeRefs.js +2 -2
- package/Libraries/vendor/core/ErrorUtils.js +4 -4
- package/Libraries/vendor/emitter/EventEmitter.js +16 -20
- package/flow/bom.js.flow +18 -17
- package/flow/dom.js.flow +12 -5
- package/flow/global.js +1 -1
- package/index.js +9 -0
- package/index.win32.js +9 -0
- package/index.win32.js.flow +8 -1
- package/jest/RefreshControlMock.js +2 -2
- package/jest/assetFileTransformer.js +8 -3
- package/jest/mockComponent.js +3 -4
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mocks/ActivityIndicator.js +2 -2
- package/jest/mocks/Image.js +2 -2
- package/jest/mocks/Modal.js +2 -2
- package/jest/mocks/RefreshControl.js +3 -3
- package/jest/mocks/RendererProxy.js +2 -2
- package/jest/mocks/ScrollView.js +5 -5
- package/jest/mocks/Text.js +2 -2
- package/jest/mocks/TextInput.js +2 -2
- package/jest/mocks/View.js +2 -2
- package/jest/mocks/ViewNativeComponent.js +1 -1
- package/jest/mocks/requireNativeComponent.js +1 -1
- package/jest/mocks/useColorScheme.js +1 -1
- package/jest/setup.js +68 -31
- package/overrides.json +30 -36
- package/package.json +22 -19
- package/src/private/animated/NativeAnimatedHelper.js +2 -2
- package/src/private/animated/NativeAnimatedHelper.win32.js +2 -2
- package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
- package/src/private/components/virtualview/VirtualView.js +14 -21
- package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
- package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
- package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/styles/composeStyles.js +1 -1
- package/src/private/utilities/toError.js +27 -0
- package/src/private/utilities/toExtendedError.js +30 -0
- package/src/private/webapis/dom/events/Event.js +1 -1
- package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
- package/src/private/webapis/dom/events/EventTarget.js +3 -3
- package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/geometry/DOMRectList.js +2 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
- package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
- package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
- package/src/private/webapis/performance/LongTasks.js +3 -3
- package/src/private/webapis/performance/Performance.js +4 -4
- package/src/private/webapis/performance/PerformanceEntry.js +1 -1
- package/src/private/webapis/performance/PerformanceObserver.js +2 -2
- package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
- package/src/private/webapis/structuredClone/structuredClone.js +2 -2
- package/src/types/globals.d.ts +4 -4
- package/src-win/Libraries/Components/EnterString.win32.tsx +2 -2
- package/src-win/Libraries/Components/Touchable/TouchableWin32.tsx +14 -14
- package/src-win/index.win32.js.flow +8 -1
- package/types/index.d.ts +2 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
- package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +0 -94
- package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
|
@@ -13,11 +13,12 @@ import type {ProcessedColorValue} from '../StyleSheet/processColor';
|
|
|
13
13
|
import type {GestureResponderEvent} from '../Types/CoreEventTypes';
|
|
14
14
|
import type {TextProps} from './TextProps';
|
|
15
15
|
|
|
16
|
+
import {enablePreparedTextLayout} from '../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
16
17
|
import {createViewConfig} from '../NativeComponent/ViewConfig';
|
|
17
18
|
import UIManager from '../ReactNative/UIManager';
|
|
18
19
|
import createReactNativeComponentClass from '../Renderer/shims/createReactNativeComponentClass';
|
|
19
20
|
|
|
20
|
-
export type NativeTextProps =
|
|
21
|
+
export type NativeTextProps = Readonly<{
|
|
21
22
|
...TextProps,
|
|
22
23
|
isHighlighted?: ?boolean,
|
|
23
24
|
selectionColor?: ?ProcessedColorValue,
|
|
@@ -54,7 +55,7 @@ const textViewConfig = {
|
|
|
54
55
|
},
|
|
55
56
|
},
|
|
56
57
|
uiViewClassName: 'RCTText',
|
|
57
|
-
};
|
|
58
|
+
} as const;
|
|
58
59
|
|
|
59
60
|
const virtualTextViewConfig = {
|
|
60
61
|
validAttributes: {
|
|
@@ -63,7 +64,7 @@ const virtualTextViewConfig = {
|
|
|
63
64
|
maxFontSizeMultiplier: true,
|
|
64
65
|
},
|
|
65
66
|
uiViewClassName: 'RCTVirtualText',
|
|
66
|
-
};
|
|
67
|
+
} as const;
|
|
67
68
|
|
|
68
69
|
/**
|
|
69
70
|
* `NativeText` is an internal React Native host component, and is exported to
|
|
@@ -77,8 +78,6 @@ const virtualTextViewConfig = {
|
|
|
77
78
|
// and <View> wrappers so that we no longer have any reason to export these APIs.
|
|
78
79
|
export const NativeText: HostComponent<NativeTextProps> =
|
|
79
80
|
(createReactNativeComponentClass('RCTText', () =>
|
|
80
|
-
/* $FlowFixMe[incompatible-type] Natural Inference rollout. See
|
|
81
|
-
* https://fburl.com/workplace/6291gfvu */
|
|
82
81
|
createViewConfig(textViewConfig),
|
|
83
82
|
): any);
|
|
84
83
|
|
|
@@ -86,7 +85,15 @@ export const NativeVirtualText: HostComponent<NativeTextProps> =
|
|
|
86
85
|
!global.RN$Bridgeless && !UIManager.hasViewManagerConfig('RCTVirtualText')
|
|
87
86
|
? NativeText
|
|
88
87
|
: (createReactNativeComponentClass('RCTVirtualText', () =>
|
|
89
|
-
/* $FlowFixMe[incompatible-type] Natural Inference rollout. See
|
|
90
|
-
* https://fburl.com/workplace/6291gfvu */
|
|
91
88
|
createViewConfig(virtualTextViewConfig),
|
|
92
89
|
): any);
|
|
90
|
+
|
|
91
|
+
export const NativeSelectableText: HostComponent<NativeTextProps> =
|
|
92
|
+
enablePreparedTextLayout()
|
|
93
|
+
? (createReactNativeComponentClass('RCTSelectableText', () =>
|
|
94
|
+
createViewConfig({
|
|
95
|
+
...textViewConfig,
|
|
96
|
+
uiViewClassName: 'RCTSelectableText',
|
|
97
|
+
}),
|
|
98
|
+
): any)
|
|
99
|
+
: NativeText;
|
|
@@ -13,11 +13,12 @@ import type {ProcessedColorValue} from '../StyleSheet/processColor';
|
|
|
13
13
|
import type {GestureResponderEvent} from '../Types/CoreEventTypes';
|
|
14
14
|
import type {TextProps} from './TextProps';
|
|
15
15
|
|
|
16
|
+
import {enablePreparedTextLayout} from '../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
16
17
|
import {createViewConfig} from '../NativeComponent/ViewConfig';
|
|
17
18
|
import UIManager from '../ReactNative/UIManager';
|
|
18
19
|
import createReactNativeComponentClass from '../Renderer/shims/createReactNativeComponentClass';
|
|
19
20
|
|
|
20
|
-
export type NativeTextProps =
|
|
21
|
+
export type NativeTextProps = Readonly<{
|
|
21
22
|
...TextProps,
|
|
22
23
|
isHighlighted?: ?boolean,
|
|
23
24
|
selectionColor?: ?ProcessedColorValue,
|
|
@@ -88,7 +89,7 @@ const textViewConfig = {
|
|
|
88
89
|
},
|
|
89
90
|
},
|
|
90
91
|
uiViewClassName: 'RCTText',
|
|
91
|
-
};
|
|
92
|
+
} as const;
|
|
92
93
|
|
|
93
94
|
const virtualTextViewConfig = {
|
|
94
95
|
validAttributes: {
|
|
@@ -97,7 +98,7 @@ const virtualTextViewConfig = {
|
|
|
97
98
|
maxFontSizeMultiplier: true,
|
|
98
99
|
},
|
|
99
100
|
uiViewClassName: 'RCTVirtualText',
|
|
100
|
-
};
|
|
101
|
+
} as const;
|
|
101
102
|
|
|
102
103
|
/**
|
|
103
104
|
* `NativeText` is an internal React Native host component, and is exported to
|
|
@@ -111,8 +112,6 @@ const virtualTextViewConfig = {
|
|
|
111
112
|
// and <View> wrappers so that we no longer have any reason to export these APIs.
|
|
112
113
|
export const NativeText: HostComponent<NativeTextProps> =
|
|
113
114
|
(createReactNativeComponentClass('RCTText', () =>
|
|
114
|
-
/* $FlowFixMe[incompatible-type] Natural Inference rollout. See
|
|
115
|
-
* https://fburl.com/workplace/6291gfvu */
|
|
116
115
|
createViewConfig(textViewConfig),
|
|
117
116
|
): any);
|
|
118
117
|
|
|
@@ -121,7 +120,15 @@ export const NativeVirtualText: HostComponent<NativeTextProps> =
|
|
|
121
120
|
UIManager.getViewManagerConfig('RCTVirtualText') == null
|
|
122
121
|
? NativeText
|
|
123
122
|
: (createReactNativeComponentClass('RCTVirtualText', () =>
|
|
124
|
-
/* $FlowFixMe[incompatible-type] Natural Inference rollout. See
|
|
125
|
-
* https://fburl.com/workplace/6291gfvu */
|
|
126
123
|
createViewConfig(virtualTextViewConfig),
|
|
127
124
|
): any);
|
|
125
|
+
|
|
126
|
+
export const NativeSelectableText: HostComponent<NativeTextProps> =
|
|
127
|
+
enablePreparedTextLayout()
|
|
128
|
+
? (createReactNativeComponentClass('RCTSelectableText', () =>
|
|
129
|
+
createViewConfig({
|
|
130
|
+
...textViewConfig,
|
|
131
|
+
uiViewClassName: 'RCTSelectableText',
|
|
132
|
+
}),
|
|
133
|
+
): any)
|
|
134
|
+
: NativeText;
|
|
@@ -25,14 +25,14 @@ import type {
|
|
|
25
25
|
|
|
26
26
|
import * as React from 'react';
|
|
27
27
|
|
|
28
|
-
export type PressRetentionOffset =
|
|
28
|
+
export type PressRetentionOffset = Readonly<{
|
|
29
29
|
top: number,
|
|
30
30
|
left: number,
|
|
31
31
|
bottom: number,
|
|
32
32
|
right: number,
|
|
33
33
|
}>;
|
|
34
34
|
|
|
35
|
-
type TextPointerEventProps =
|
|
35
|
+
type TextPointerEventProps = Readonly<{
|
|
36
36
|
onPointerEnter?: (event: PointerEvent) => void,
|
|
37
37
|
onPointerLeave?: (event: PointerEvent) => void,
|
|
38
38
|
onPointerMove?: (event: PointerEvent) => void,
|
|
@@ -121,7 +121,7 @@ export type TextPropsAndroid = {
|
|
|
121
121
|
minimumFontScale?: ?number,
|
|
122
122
|
};
|
|
123
123
|
|
|
124
|
-
type TextBaseProps =
|
|
124
|
+
type TextBaseProps = Readonly<{
|
|
125
125
|
onAccessibilityAction?: ?(event: AccessibilityActionEvent) => unknown,
|
|
126
126
|
|
|
127
127
|
/**
|
|
@@ -268,7 +268,7 @@ type TextBaseProps = $ReadOnly<{
|
|
|
268
268
|
/**
|
|
269
269
|
* @see https://reactnative.dev/docs/text#reference
|
|
270
270
|
*/
|
|
271
|
-
export type TextProps =
|
|
271
|
+
export type TextProps = Readonly<{
|
|
272
272
|
...TextPointerEventProps,
|
|
273
273
|
...TextPropsIOS,
|
|
274
274
|
...TextPropsAndroid,
|
|
@@ -25,14 +25,14 @@ import type {
|
|
|
25
25
|
|
|
26
26
|
import * as React from 'react';
|
|
27
27
|
|
|
28
|
-
export type PressRetentionOffset =
|
|
28
|
+
export type PressRetentionOffset = Readonly<{
|
|
29
29
|
top: number,
|
|
30
30
|
left: number,
|
|
31
31
|
bottom: number,
|
|
32
32
|
right: number,
|
|
33
33
|
}>;
|
|
34
34
|
|
|
35
|
-
type TextPointerEventProps =
|
|
35
|
+
type TextPointerEventProps = Readonly<{
|
|
36
36
|
onPointerEnter?: (event: PointerEvent) => void,
|
|
37
37
|
onPointerLeave?: (event: PointerEvent) => void,
|
|
38
38
|
onPointerMove?: (event: PointerEvent) => void,
|
|
@@ -121,7 +121,7 @@ export type TextPropsAndroid = {
|
|
|
121
121
|
minimumFontScale?: ?number,
|
|
122
122
|
};
|
|
123
123
|
|
|
124
|
-
type TextBaseProps =
|
|
124
|
+
type TextBaseProps = Readonly<{
|
|
125
125
|
onAccessibilityAction?: ?(event: AccessibilityActionEvent) => unknown,
|
|
126
126
|
accessibilityControls?: ?Stringish, // Win32
|
|
127
127
|
accessibilityDescribedBy?: ?Stringish, // Win32
|
|
@@ -282,7 +282,7 @@ type TextBaseProps = $ReadOnly<{
|
|
|
282
282
|
/**
|
|
283
283
|
* @see https://reactnative.dev/docs/text#reference
|
|
284
284
|
*/
|
|
285
|
-
export type TextProps =
|
|
285
|
+
export type TextProps = Readonly<{
|
|
286
286
|
...TextPointerEventProps,
|
|
287
287
|
...TextPropsIOS,
|
|
288
288
|
...TextPropsAndroid,
|
|
@@ -33,7 +33,7 @@ export type Int32 = number;
|
|
|
33
33
|
export type UnsafeObject = Object;
|
|
34
34
|
export type UnsafeMixed = unknown;
|
|
35
35
|
|
|
36
|
-
type DefaultTypes = number | boolean | string |
|
|
36
|
+
type DefaultTypes = number | boolean | string | ReadonlyArray<string>;
|
|
37
37
|
// Default handling, ignore the unused value
|
|
38
38
|
// we're only using it for type checking
|
|
39
39
|
//
|
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
import type {HostInstance} from '../../src/private/types/HostInstance';
|
|
12
12
|
|
|
13
|
-
export type NativeSyntheticEvent<+T> =
|
|
13
|
+
export type NativeSyntheticEvent<+T> = Readonly<{
|
|
14
14
|
bubbles: ?boolean,
|
|
15
15
|
cancelable: ?boolean,
|
|
16
16
|
currentTarget: number | HostInstance,
|
|
17
17
|
defaultPrevented: ?boolean,
|
|
18
|
-
dispatchConfig:
|
|
18
|
+
dispatchConfig: Readonly<{
|
|
19
19
|
registrationName: string,
|
|
20
20
|
}>,
|
|
21
21
|
eventPhase: ?number,
|
|
@@ -31,14 +31,14 @@ export type NativeSyntheticEvent<+T> = $ReadOnly<{
|
|
|
31
31
|
type: ?string,
|
|
32
32
|
}>;
|
|
33
33
|
|
|
34
|
-
export type ResponderSyntheticEvent<T> =
|
|
34
|
+
export type ResponderSyntheticEvent<T> = Readonly<{
|
|
35
35
|
...NativeSyntheticEvent<T>,
|
|
36
|
-
touchHistory:
|
|
36
|
+
touchHistory: Readonly<{
|
|
37
37
|
indexOfSingleActiveTouch: number,
|
|
38
38
|
mostRecentTimeStamp: number,
|
|
39
39
|
numberActiveTouches: number,
|
|
40
|
-
touchBank:
|
|
41
|
-
|
|
40
|
+
touchBank: ReadonlyArray<
|
|
41
|
+
Readonly<{
|
|
42
42
|
touchActive: boolean,
|
|
43
43
|
startPageX: number,
|
|
44
44
|
startPageY: number,
|
|
@@ -54,14 +54,14 @@ export type ResponderSyntheticEvent<T> = $ReadOnly<{
|
|
|
54
54
|
}>,
|
|
55
55
|
}>;
|
|
56
56
|
|
|
57
|
-
export type LayoutRectangle =
|
|
57
|
+
export type LayoutRectangle = Readonly<{
|
|
58
58
|
x: number,
|
|
59
59
|
y: number,
|
|
60
60
|
width: number,
|
|
61
61
|
height: number,
|
|
62
62
|
}>;
|
|
63
63
|
|
|
64
|
-
export type TextLayoutLine =
|
|
64
|
+
export type TextLayoutLine = Readonly<{
|
|
65
65
|
...LayoutRectangle,
|
|
66
66
|
ascender: number,
|
|
67
67
|
capHeight: number,
|
|
@@ -71,12 +71,12 @@ export type TextLayoutLine = $ReadOnly<{
|
|
|
71
71
|
}>;
|
|
72
72
|
|
|
73
73
|
export type LayoutChangeEvent = NativeSyntheticEvent<
|
|
74
|
-
|
|
74
|
+
Readonly<{
|
|
75
75
|
layout: LayoutRectangle,
|
|
76
76
|
}>,
|
|
77
77
|
>;
|
|
78
78
|
|
|
79
|
-
type TextLayoutEventData =
|
|
79
|
+
type TextLayoutEventData = Readonly<{
|
|
80
80
|
lines: Array<TextLayoutLine>,
|
|
81
81
|
}>;
|
|
82
82
|
|
|
@@ -220,11 +220,11 @@ export interface NativePointerEvent extends NativeMouseEvent {
|
|
|
220
220
|
|
|
221
221
|
export type PointerEvent = NativeSyntheticEvent<NativePointerEvent>;
|
|
222
222
|
|
|
223
|
-
export type NativeTouchEvent =
|
|
223
|
+
export type NativeTouchEvent = Readonly<{
|
|
224
224
|
/**
|
|
225
225
|
* Array of all touch events that have changed since the last event
|
|
226
226
|
*/
|
|
227
|
-
changedTouches:
|
|
227
|
+
changedTouches: ReadonlyArray<NativeTouchEvent>,
|
|
228
228
|
/**
|
|
229
229
|
* 3D Touch reported force
|
|
230
230
|
* @platform ios
|
|
@@ -261,34 +261,34 @@ export type NativeTouchEvent = $ReadOnly<{
|
|
|
261
261
|
/**
|
|
262
262
|
* Array of all current touches on the screen
|
|
263
263
|
*/
|
|
264
|
-
touches:
|
|
264
|
+
touches: ReadonlyArray<NativeTouchEvent>,
|
|
265
265
|
}>;
|
|
266
266
|
|
|
267
267
|
export type GestureResponderEvent = ResponderSyntheticEvent<NativeTouchEvent>;
|
|
268
268
|
|
|
269
|
-
export type NativeScrollRectangle =
|
|
269
|
+
export type NativeScrollRectangle = Readonly<{
|
|
270
270
|
bottom: number,
|
|
271
271
|
left: number,
|
|
272
272
|
right: number,
|
|
273
273
|
top: number,
|
|
274
274
|
}>;
|
|
275
275
|
|
|
276
|
-
export type NativeScrollPoint =
|
|
276
|
+
export type NativeScrollPoint = Readonly<{
|
|
277
277
|
y: number,
|
|
278
278
|
x: number,
|
|
279
279
|
}>;
|
|
280
280
|
|
|
281
|
-
export type NativeScrollVelocity =
|
|
281
|
+
export type NativeScrollVelocity = Readonly<{
|
|
282
282
|
y: number,
|
|
283
283
|
x: number,
|
|
284
284
|
}>;
|
|
285
285
|
|
|
286
|
-
export type NativeScrollSize =
|
|
286
|
+
export type NativeScrollSize = Readonly<{
|
|
287
287
|
height: number,
|
|
288
288
|
width: number,
|
|
289
289
|
}>;
|
|
290
290
|
|
|
291
|
-
export type NativeScrollEvent =
|
|
291
|
+
export type NativeScrollEvent = Readonly<{
|
|
292
292
|
contentInset: NativeScrollRectangle,
|
|
293
293
|
contentOffset: NativeScrollPoint,
|
|
294
294
|
contentSize: NativeScrollSize,
|
|
@@ -304,7 +304,7 @@ export type NativeScrollEvent = $ReadOnly<{
|
|
|
304
304
|
|
|
305
305
|
export type ScrollEvent = NativeSyntheticEvent<NativeScrollEvent>;
|
|
306
306
|
|
|
307
|
-
export type TargetedEvent =
|
|
307
|
+
export type TargetedEvent = Readonly<{
|
|
308
308
|
target: number,
|
|
309
309
|
...
|
|
310
310
|
}>;
|
|
@@ -314,7 +314,7 @@ export type BlurEvent = NativeSyntheticEvent<TargetedEvent>;
|
|
|
314
314
|
export type FocusEvent = NativeSyntheticEvent<TargetedEvent>;
|
|
315
315
|
|
|
316
316
|
export type MouseEvent = NativeSyntheticEvent<
|
|
317
|
-
|
|
317
|
+
Readonly<{
|
|
318
318
|
clientX: number,
|
|
319
319
|
clientY: number,
|
|
320
320
|
pageX: number,
|
|
@@ -323,7 +323,7 @@ export type MouseEvent = NativeSyntheticEvent<
|
|
|
323
323
|
}>,
|
|
324
324
|
>;
|
|
325
325
|
|
|
326
|
-
export type KeyEvent =
|
|
326
|
+
export type KeyEvent = Readonly<{
|
|
327
327
|
/**
|
|
328
328
|
* The actual key that was pressed. For example, F would be "f" or "F" depending on the shift key.
|
|
329
329
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key
|
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
import type {HostInstance} from '../../src/private/types/HostInstance';
|
|
12
12
|
|
|
13
|
-
export type NativeSyntheticEvent<+T> =
|
|
13
|
+
export type NativeSyntheticEvent<+T> = Readonly<{
|
|
14
14
|
bubbles: ?boolean,
|
|
15
15
|
cancelable: ?boolean,
|
|
16
16
|
currentTarget: number | HostInstance,
|
|
17
17
|
defaultPrevented: ?boolean,
|
|
18
|
-
dispatchConfig:
|
|
18
|
+
dispatchConfig: Readonly<{
|
|
19
19
|
registrationName: string,
|
|
20
20
|
}>,
|
|
21
21
|
eventPhase: ?number,
|
|
@@ -31,14 +31,14 @@ export type NativeSyntheticEvent<+T> = $ReadOnly<{
|
|
|
31
31
|
type: ?string,
|
|
32
32
|
}>;
|
|
33
33
|
|
|
34
|
-
export type ResponderSyntheticEvent<T> =
|
|
34
|
+
export type ResponderSyntheticEvent<T> = Readonly<{
|
|
35
35
|
...NativeSyntheticEvent<T>,
|
|
36
|
-
touchHistory:
|
|
36
|
+
touchHistory: Readonly<{
|
|
37
37
|
indexOfSingleActiveTouch: number,
|
|
38
38
|
mostRecentTimeStamp: number,
|
|
39
39
|
numberActiveTouches: number,
|
|
40
|
-
touchBank:
|
|
41
|
-
|
|
40
|
+
touchBank: ReadonlyArray<
|
|
41
|
+
Readonly<{
|
|
42
42
|
touchActive: boolean,
|
|
43
43
|
startPageX: number,
|
|
44
44
|
startPageY: number,
|
|
@@ -54,14 +54,14 @@ export type ResponderSyntheticEvent<T> = $ReadOnly<{
|
|
|
54
54
|
}>,
|
|
55
55
|
}>;
|
|
56
56
|
|
|
57
|
-
export type LayoutRectangle =
|
|
57
|
+
export type LayoutRectangle = Readonly<{
|
|
58
58
|
x: number,
|
|
59
59
|
y: number,
|
|
60
60
|
width: number,
|
|
61
61
|
height: number,
|
|
62
62
|
}>;
|
|
63
63
|
|
|
64
|
-
export type TextLayoutLine =
|
|
64
|
+
export type TextLayoutLine = Readonly<{
|
|
65
65
|
...LayoutRectangle,
|
|
66
66
|
ascender: number,
|
|
67
67
|
capHeight: number,
|
|
@@ -71,12 +71,12 @@ export type TextLayoutLine = $ReadOnly<{
|
|
|
71
71
|
}>;
|
|
72
72
|
|
|
73
73
|
export type LayoutChangeEvent = NativeSyntheticEvent<
|
|
74
|
-
|
|
74
|
+
Readonly<{
|
|
75
75
|
layout: LayoutRectangle,
|
|
76
76
|
}>,
|
|
77
77
|
>;
|
|
78
78
|
|
|
79
|
-
type TextLayoutEventData =
|
|
79
|
+
type TextLayoutEventData = Readonly<{
|
|
80
80
|
lines: Array<TextLayoutLine>,
|
|
81
81
|
}>;
|
|
82
82
|
|
|
@@ -230,17 +230,18 @@ export interface NativePointerEvent extends NativeMouseEvent {
|
|
|
230
230
|
|
|
231
231
|
export type PointerEvent = NativeSyntheticEvent<NativePointerEvent>;
|
|
232
232
|
|
|
233
|
-
export type NativeTouchEvent =
|
|
233
|
+
export type NativeTouchEvent = Readonly<{
|
|
234
234
|
altKey: ?boolean, // TODO(macOS)
|
|
235
235
|
|
|
236
236
|
button: ?number, // TODO(macOS)
|
|
237
237
|
/**
|
|
238
238
|
* Array of all touch events that have changed since the last event
|
|
239
239
|
*/
|
|
240
|
-
changedTouches:
|
|
240
|
+
changedTouches: ReadonlyArray<NativeTouchEvent>,
|
|
241
241
|
|
|
242
242
|
ctrlKey: ?boolean, // TODO(macOS)
|
|
243
243
|
|
|
244
|
+
|
|
244
245
|
/**
|
|
245
246
|
* 3D Touch reported force
|
|
246
247
|
* @platform ios
|
|
@@ -282,34 +283,34 @@ export type NativeTouchEvent = $ReadOnly<{
|
|
|
282
283
|
/**
|
|
283
284
|
* Array of all current touches on the screen
|
|
284
285
|
*/
|
|
285
|
-
touches:
|
|
286
|
+
touches: ReadonlyArray<NativeTouchEvent>,
|
|
286
287
|
}>;
|
|
287
288
|
|
|
288
289
|
export type GestureResponderEvent = ResponderSyntheticEvent<NativeTouchEvent>;
|
|
289
290
|
|
|
290
|
-
export type NativeScrollRectangle =
|
|
291
|
+
export type NativeScrollRectangle = Readonly<{
|
|
291
292
|
bottom: number,
|
|
292
293
|
left: number,
|
|
293
294
|
right: number,
|
|
294
295
|
top: number,
|
|
295
296
|
}>;
|
|
296
297
|
|
|
297
|
-
export type NativeScrollPoint =
|
|
298
|
+
export type NativeScrollPoint = Readonly<{
|
|
298
299
|
y: number,
|
|
299
300
|
x: number,
|
|
300
301
|
}>;
|
|
301
302
|
|
|
302
|
-
export type NativeScrollVelocity =
|
|
303
|
+
export type NativeScrollVelocity = Readonly<{
|
|
303
304
|
y: number,
|
|
304
305
|
x: number,
|
|
305
306
|
}>;
|
|
306
307
|
|
|
307
|
-
export type NativeScrollSize =
|
|
308
|
+
export type NativeScrollSize = Readonly<{
|
|
308
309
|
height: number,
|
|
309
310
|
width: number,
|
|
310
311
|
}>;
|
|
311
312
|
|
|
312
|
-
export type NativeScrollEvent =
|
|
313
|
+
export type NativeScrollEvent = Readonly<{
|
|
313
314
|
contentInset: NativeScrollRectangle,
|
|
314
315
|
contentOffset: NativeScrollPoint,
|
|
315
316
|
contentSize: NativeScrollSize,
|
|
@@ -325,7 +326,7 @@ export type NativeScrollEvent = $ReadOnly<{
|
|
|
325
326
|
|
|
326
327
|
export type ScrollEvent = NativeSyntheticEvent<NativeScrollEvent>;
|
|
327
328
|
|
|
328
|
-
export type TargetedEvent =
|
|
329
|
+
export type TargetedEvent = Readonly<{
|
|
329
330
|
target: number,
|
|
330
331
|
...
|
|
331
332
|
}>;
|
|
@@ -338,7 +339,7 @@ export type FocusEvent = NativeSyntheticEvent<TargetedEvent>;
|
|
|
338
339
|
// introduced for react-native-web. Replace typings with our values to catch
|
|
339
340
|
// anything dependent on react-native-web specific values
|
|
340
341
|
export type MouseEvent = NativeSyntheticEvent<
|
|
341
|
-
|
|
342
|
+
Readonly<{
|
|
342
343
|
target: number,
|
|
343
344
|
identifier: number,
|
|
344
345
|
clientX: number,
|
|
@@ -362,7 +363,7 @@ export type MouseEvent = NativeSyntheticEvent<
|
|
|
362
363
|
}>,
|
|
363
364
|
>;
|
|
364
365
|
// Windows]
|
|
365
|
-
export type KeyEvent =
|
|
366
|
+
export type KeyEvent = Readonly<{
|
|
366
367
|
/**
|
|
367
368
|
* The actual key that was pressed. For example, F would be "f" or "F" depending on the shift key.
|
|
368
369
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key
|
|
@@ -34,12 +34,12 @@ export type ReactDevToolsAgentEvents = {
|
|
|
34
34
|
export type ReactDevToolsAgent = {
|
|
35
35
|
selectNode(node: unknown): void,
|
|
36
36
|
stopInspectingNative(value: boolean): void,
|
|
37
|
-
addListener<Event:
|
|
37
|
+
addListener<Event: keyof ReactDevToolsAgentEvents>(
|
|
38
38
|
event: Event,
|
|
39
39
|
listener: (...ReactDevToolsAgentEvents[Event]) => void,
|
|
40
40
|
): void,
|
|
41
41
|
removeListener(
|
|
42
|
-
event:
|
|
42
|
+
event: keyof ReactDevToolsAgentEvents,
|
|
43
43
|
listener: () => void,
|
|
44
44
|
): void,
|
|
45
45
|
};
|
|
@@ -99,7 +99,12 @@ export function setColorScheme(colorScheme: ColorSchemeName): void {
|
|
|
99
99
|
if (NativeAppearance != null) {
|
|
100
100
|
NativeAppearance.setColorScheme(colorScheme);
|
|
101
101
|
state.appearance = {
|
|
102
|
-
|
|
102
|
+
// When setting to 'unspecified', get the actual system color scheme.
|
|
103
|
+
// Fall back to the passed value if getColorScheme() returns null.
|
|
104
|
+
colorScheme:
|
|
105
|
+
colorScheme === 'unspecified'
|
|
106
|
+
? (NativeAppearance.getColorScheme() ?? colorScheme)
|
|
107
|
+
: colorScheme,
|
|
103
108
|
};
|
|
104
109
|
}
|
|
105
110
|
}
|
|
@@ -60,7 +60,7 @@ class Dimensions {
|
|
|
60
60
|
*
|
|
61
61
|
* @param {DimensionsPayload} dims Simple string-keyed object of dimensions to set
|
|
62
62
|
*/
|
|
63
|
-
static set(dims:
|
|
63
|
+
static set(dims: Readonly<DimensionsPayload>): void {
|
|
64
64
|
// We calculate the window dimensions in JS so that we don't encounter loss of
|
|
65
65
|
// precision in transferring the dimensions (which could be non-integers) over
|
|
66
66
|
// the bridge.
|
|
@@ -64,7 +64,7 @@ class Dimensions {
|
|
|
64
64
|
*
|
|
65
65
|
* @param {DimensionsPayload} dims Simple string-keyed object of dimensions to set
|
|
66
66
|
*/
|
|
67
|
-
static set(dims:
|
|
67
|
+
static set(dims: Readonly<DimensionsPayload>): void {
|
|
68
68
|
let {screen, window} = dims;
|
|
69
69
|
const {windowPhysicalPixels} = dims;
|
|
70
70
|
if (windowPhysicalPixels) {
|
|
@@ -26,7 +26,7 @@ let hmrUnavailableReason: string | null = null;
|
|
|
26
26
|
let hmrOrigin: string | null = null;
|
|
27
27
|
let currentCompileErrorMessage: string | null = null;
|
|
28
28
|
let didConnect: boolean = false;
|
|
29
|
-
let pendingLogs: Array<[LogLevel,
|
|
29
|
+
let pendingLogs: Array<[LogLevel, ReadonlyArray<unknown>]> = [];
|
|
30
30
|
|
|
31
31
|
type LogLevel =
|
|
32
32
|
| 'trace'
|
|
@@ -43,7 +43,7 @@ export type HMRClientNativeInterface = {
|
|
|
43
43
|
enable(): void,
|
|
44
44
|
disable(): void,
|
|
45
45
|
registerBundle(requestUrl: string): void,
|
|
46
|
-
log(level: LogLevel, data:
|
|
46
|
+
log(level: LogLevel, data: ReadonlyArray<unknown>): void,
|
|
47
47
|
setup(
|
|
48
48
|
platform: string,
|
|
49
49
|
bundleEntry: string,
|
|
@@ -113,7 +113,7 @@ const HMRClient: HMRClientNativeInterface = {
|
|
|
113
113
|
registerBundleEntryPoints(hmrClient);
|
|
114
114
|
},
|
|
115
115
|
|
|
116
|
-
log(level: LogLevel, data:
|
|
116
|
+
log(level: LogLevel, data: ReadonlyArray<unknown>) {
|
|
117
117
|
if (!hmrClient) {
|
|
118
118
|
// Catch a reasonable number of early logs
|
|
119
119
|
// in case hmrClient gets initialized later.
|
|
@@ -141,7 +141,7 @@ const HMRClient: HMRClientNativeInterface = {
|
|
|
141
141
|
),
|
|
142
142
|
}),
|
|
143
143
|
);
|
|
144
|
-
} catch
|
|
144
|
+
} catch {
|
|
145
145
|
// If sending logs causes any failures we want to silently ignore them
|
|
146
146
|
// to ensure we do not cause infinite-logging loops.
|
|
147
147
|
}
|
|
@@ -212,6 +212,7 @@ Error: ${e.message}`;
|
|
|
212
212
|
});
|
|
213
213
|
|
|
214
214
|
let pendingUpdatesCount = 0;
|
|
215
|
+
let lastMarkerChangeId: string | null = null;
|
|
215
216
|
client.on('update-start', ({isInitialUpdate}) => {
|
|
216
217
|
pendingUpdatesCount++;
|
|
217
218
|
currentCompileErrorMessage = null;
|
|
@@ -229,10 +230,15 @@ Error: ${e.message}`;
|
|
|
229
230
|
}
|
|
230
231
|
});
|
|
231
232
|
|
|
232
|
-
client.on('update-done',
|
|
233
|
+
client.on('update-done', body => {
|
|
233
234
|
pendingUpdatesCount--;
|
|
234
235
|
if (pendingUpdatesCount === 0) {
|
|
235
236
|
DevLoadingView.hide();
|
|
237
|
+
const changeId = body?.changeId;
|
|
238
|
+
if (changeId != null && changeId !== lastMarkerChangeId) {
|
|
239
|
+
lastMarkerChangeId = changeId;
|
|
240
|
+
emitFastRefreshCompleteEvents();
|
|
241
|
+
}
|
|
236
242
|
}
|
|
237
243
|
});
|
|
238
244
|
|
|
@@ -379,4 +385,25 @@ function showCompileError() {
|
|
|
379
385
|
throw error;
|
|
380
386
|
}
|
|
381
387
|
|
|
388
|
+
function emitFastRefreshCompleteEvents() {
|
|
389
|
+
// Add marker entry in performance timeline
|
|
390
|
+
performance.mark('Fast Refresh - Update done', {
|
|
391
|
+
detail: {
|
|
392
|
+
devtools: {
|
|
393
|
+
dataType: 'marker',
|
|
394
|
+
color: 'primary',
|
|
395
|
+
tooltipText: 'Fast Refresh \u269b',
|
|
396
|
+
},
|
|
397
|
+
},
|
|
398
|
+
});
|
|
399
|
+
|
|
400
|
+
// Notify CDP clients via internal binding
|
|
401
|
+
if (
|
|
402
|
+
// $FlowFixMe[prop-missing] - Injected by RuntimeTarget
|
|
403
|
+
typeof globalThis.__notifyFastRefreshComplete === 'function'
|
|
404
|
+
) {
|
|
405
|
+
globalThis.__notifyFastRefreshComplete();
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
|
|
382
409
|
export default HMRClient;
|
|
@@ -34,10 +34,10 @@ export interface IPerformanceLogger {
|
|
|
34
34
|
clearCompleted(): void;
|
|
35
35
|
close(): void;
|
|
36
36
|
currentTimestamp(): number;
|
|
37
|
-
getExtras():
|
|
38
|
-
getPoints():
|
|
39
|
-
getPointExtras():
|
|
40
|
-
getTimespans():
|
|
37
|
+
getExtras(): Readonly<{[key: string]: ?ExtraValue, ...}>;
|
|
38
|
+
getPoints(): Readonly<{[key: string]: ?number, ...}>;
|
|
39
|
+
getPointExtras(): Readonly<{[key: string]: ?Extras, ...}>;
|
|
40
|
+
getTimespans(): Readonly<{[key: string]: ?Timespan, ...}>;
|
|
41
41
|
hasTimespan(key: string): boolean;
|
|
42
42
|
isClosed(): boolean;
|
|
43
43
|
logEverything(): void;
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
|
|
11
11
|
const {dispatchCommand} = require('../ReactNative/RendererProxy');
|
|
12
12
|
|
|
13
|
-
type NativeCommandsOptions<T = string> =
|
|
14
|
-
supportedCommands:
|
|
13
|
+
type NativeCommandsOptions<T = string> = Readonly<{
|
|
14
|
+
supportedCommands: ReadonlyArray<T>,
|
|
15
15
|
}>;
|
|
16
16
|
|
|
17
17
|
function codegenNativeCommands<T: interface {}>(
|
|
18
|
-
options: NativeCommandsOptions
|
|
18
|
+
options: NativeCommandsOptions<keyof T>,
|
|
19
19
|
): T {
|
|
20
|
-
const commandObj: {[
|
|
20
|
+
const commandObj: {[keyof T]: (...ReadonlyArray<unknown>) => void} = {};
|
|
21
21
|
|
|
22
22
|
options.supportedCommands.forEach(command => {
|
|
23
23
|
// $FlowFixMe[missing-local-annot]
|
|
@@ -14,6 +14,8 @@ interface Options {
|
|
|
14
14
|
readonly paperComponentName?: string | undefined;
|
|
15
15
|
readonly paperComponentNameDeprecated?: string | undefined;
|
|
16
16
|
readonly excludedPlatforms?: ReadonlyArray<'iOS' | 'android'> | undefined;
|
|
17
|
+
readonly generateOptionalProperties?: boolean | undefined;
|
|
18
|
+
readonly generateOptionalObjectProperties?: boolean | undefined;
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
type NativeComponentType<T> = HostComponent<T>;
|