@office-iss/react-native-win32 0.0.0-canary.282 → 0.0.0-canary.284
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 +1 -1
- package/CHANGELOG.json +79 -1
- package/CHANGELOG.md +28 -4
- package/IntegrationTests/AccessibilityManagerTest.js +17 -12
- package/IntegrationTests/AppEventsTest.js +47 -32
- package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +10 -14
- package/IntegrationTests/ImageCachePolicyTest.js +64 -81
- package/IntegrationTests/ImageSnapshotTest.js +17 -20
- package/IntegrationTests/IntegrationTestHarnessTest.js +34 -52
- package/IntegrationTests/IntegrationTestsApp.js +11 -6
- package/IntegrationTests/LayoutEventsTest.js +1 -1
- package/IntegrationTests/LoggingTestModule.js +2 -1
- package/IntegrationTests/PromiseTest.js +51 -43
- package/IntegrationTests/SimpleSnapshotTest.js +19 -24
- package/IntegrationTests/SyncMethodTest.js +9 -13
- package/IntegrationTests/TimersTest.js +3 -3
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
- package/Libraries/Alert/Alert.js +1 -1
- package/Libraries/Alert/Alert.win32.js +1 -1
- package/Libraries/Alert/RCTAlertManager.android.js +1 -1
- package/Libraries/Alert/RCTAlertManager.ios.js +1 -1
- package/Libraries/Animated/AnimatedMock.js +1 -1
- package/Libraries/Animated/AnimatedWeb.js +27 -9
- package/Libraries/Animated/nodes/AnimatedValue.js +35 -13
- package/Libraries/Animated/useAnimatedProps.js +47 -85
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/BatchedBridge.js +4 -2
- package/Libraries/BatchedBridge/MessageQueue.js +2 -2
- package/Libraries/BatchedBridge/NativeModules.js +4 -3
- package/Libraries/Blob/Blob.js +4 -4
- package/Libraries/Blob/BlobManager.js +3 -2
- package/Libraries/Blob/BlobRegistry.js +3 -9
- package/Libraries/Blob/File.js +3 -2
- package/Libraries/Blob/FileReader.js +1 -1
- package/Libraries/BugReporting/BugReporting.js +2 -2
- package/Libraries/BugReporting/dumpReactTree.js +2 -2
- package/Libraries/BugReporting/getReactData.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +5 -5
- package/Libraries/Components/Button.js +2 -2
- package/Libraries/Components/Button.win32.js +2 -2
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +7 -7
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -2
- package/Libraries/Components/Keyboard/Keyboard.js +9 -9
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +4 -4
- package/Libraries/Components/Pressable/Pressable.js +4 -4
- package/Libraries/Components/Pressable/Pressable.win32.js +4 -4
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +9 -9
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +10 -11
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +9 -9
- package/Libraries/Components/ScrollView/ScrollView.js +32 -26
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +2 -2
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +2 -2
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
- package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
- package/Libraries/Components/Sound/SoundManager.js +1 -1
- package/Libraries/Components/StaticRenderer.js +4 -4
- package/Libraries/Components/StatusBar/StatusBar.js +33 -18
- package/Libraries/Components/Switch/Switch.js +6 -6
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +31 -31
- package/Libraries/Components/TextInput/InputAccessoryView.js +2 -2
- package/Libraries/Components/TextInput/TextInput.flow.js +35 -35
- package/Libraries/Components/TextInput/TextInput.js +35 -35
- package/Libraries/Components/TextInput/TextInput.win32.js +35 -35
- package/Libraries/Components/TextInput/TextInputNativeCommands.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +68 -6
- package/Libraries/Components/Touchable/TouchableBounce.js +5 -5
- package/Libraries/Components/Touchable/TouchableHighlight.js +11 -11
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +14 -14
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +6 -6
- package/Libraries/Components/Touchable/TouchableOpacity.js +6 -6
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +9 -1
- package/Libraries/Components/View/ViewAccessibility.js +2 -2
- package/Libraries/Components/View/ViewAccessibility.win32.js +2 -2
- package/Libraries/Components/View/ViewPropTypes.js +22 -22
- package/Libraries/Components/View/ViewPropTypes.win32.js +22 -22
- package/Libraries/Core/RawEventEmitter.js +2 -2
- package/Libraries/Core/ReactNativeVersion.js +3 -5
- package/Libraries/Core/Timers/JSTimers.js +3 -3
- package/Libraries/Core/polyfillPromise.js +1 -1
- package/Libraries/Core/registerCallableModule.js +1 -1
- package/Libraries/Core/setUpAlert.js +1 -1
- package/Libraries/Core/setUpDeveloperTools.js +0 -2
- package/Libraries/Core/setUpErrorHandling.js +6 -1
- package/Libraries/Core/setUpReactDevTools.js +1 -1
- package/Libraries/Core/setUpTimers.js +35 -56
- package/Libraries/Core/setUpXHR.js +5 -5
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
- package/Libraries/Events/CustomEvent.js +2 -2
- package/Libraries/Image/AssetRegistry.js +6 -1
- package/Libraries/Image/AssetSourceResolver.js +2 -2
- package/Libraries/Image/ImageProps.js +17 -17
- package/Libraries/Image/nativeImageSource.js +2 -2
- package/Libraries/Inspector/ElementProperties.js +4 -3
- package/Libraries/Inspector/Inspector.js +1 -1
- package/Libraries/Inspector/Inspector.win32.js +1 -1
- package/Libraries/Inspector/InspectorOverlay.js +4 -3
- package/Libraries/Inspector/InspectorOverlay.win32.js +3 -3
- package/Libraries/Inspector/InspectorPanel.js +6 -6
- package/Libraries/Inspector/NetworkOverlay.js +6 -5
- package/Libraries/Inspector/PerformanceOverlay.js +2 -1
- package/Libraries/Inspector/resolveBoxStyle.js +2 -2
- package/Libraries/Interaction/InteractionManager.js +3 -2
- package/Libraries/Interaction/PanResponder.js +6 -6
- package/Libraries/Interaction/TouchHistoryMath.js +26 -0
- package/Libraries/JSInspector/NetworkAgent.js +2 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Linking/Linking.js +0 -1
- package/Libraries/Lists/FlatList.js +9 -10
- package/Libraries/Lists/SectionList.js +7 -9
- package/Libraries/Lists/SectionListModern.js +6 -6
- package/Libraries/LogBox/Data/LogBoxData.js +14 -14
- package/Libraries/LogBox/Data/LogBoxLog.js +51 -29
- package/Libraries/LogBox/Data/parseLogBoxLog.js +10 -10
- package/Libraries/LogBox/LogBox.js +13 -1
- package/Libraries/LogBox/LogBoxInspectorContainer.js +3 -3
- package/Libraries/LogBox/LogBoxNotificationContainer.js +3 -3
- package/Libraries/LogBox/UI/LogBoxButton.js +4 -4
- package/Libraries/LogBox/UI/LogBoxInspectorBody.js +8 -2
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +50 -31
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +50 -31
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -2
- package/Libraries/Modal/Modal.js +7 -7
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/Network/convertRequestBody.js +3 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
- package/Libraries/Pressability/Pressability.js +10 -10
- package/Libraries/Pressability/Pressability.win32.js +10 -10
- package/Libraries/Pressability/PressabilityDebug.js +2 -2
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +2 -2
- package/Libraries/Promise.js +2 -2
- package/Libraries/ReactNative/AppContainer.js +2 -2
- package/Libraries/ReactNative/BridgelessUIManager.js +3 -8
- package/Libraries/ReactNative/I18nManager.js +3 -2
- package/Libraries/ReactNative/PaperUIManager.js +1 -1
- package/Libraries/ReactNative/PaperUIManager.win32.js +1 -1
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +2 -2
- package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +2 -2
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +3 -2
- package/Libraries/StyleSheet/Rect.js +2 -2
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.win32.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
- package/Libraries/StyleSheet/private/_TransformStyle.js +18 -18
- package/Libraries/StyleSheet/processBackgroundImage.js +138 -136
- package/Libraries/Text/TextAncestor.js +1 -2
- package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
- package/Libraries/Types/CodegenTypes.js +2 -1
- package/Libraries/Types/CoreEventTypes.js +40 -40
- package/Libraries/Types/CoreEventTypes.win32.js +40 -40
- package/Libraries/UTFSequence.js +2 -2
- package/Libraries/Utilities/BackHandler.android.js +2 -2
- package/Libraries/Utilities/BackHandler.ios.js +2 -2
- package/Libraries/Utilities/BackHandler.win32.js +2 -2
- package/Libraries/Utilities/HMRClient.js +2 -2
- package/Libraries/Utilities/Platform.android.js +4 -4
- package/Libraries/Utilities/Platform.flow.js +8 -8
- package/Libraries/Utilities/Platform.flow.win32.js +8 -8
- package/Libraries/Utilities/Platform.ios.js +4 -4
- package/Libraries/Utilities/Platform.win32.js +2 -2
- package/Libraries/Utilities/ReactNativeTestTools.js +3 -2
- package/Libraries/Utilities/codegenNativeCommands.js +2 -2
- package/Libraries/Utilities/codegenNativeComponent.js +2 -2
- package/Libraries/Utilities/differ/deepDiffer.js +3 -3
- package/Libraries/Utilities/stringifySafe.js +2 -2
- package/Libraries/Vibration/Vibration.js +1 -1
- package/Libraries/WebSocket/WebSocketEvent.js +1 -1
- package/Libraries/YellowBox/YellowBoxDeprecated.js +4 -3
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/flow/jest.js +14 -14
- package/index.js +16 -13
- package/index.win32.js +16 -13
- package/jest/setup.js +214 -197
- package/overrides.json +26 -26
- package/package.json +16 -16
- package/src/private/featureflags/ReactNativeFeatureFlags.js +11 -30
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -2
- package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +2 -2
- package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +6 -6
- package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
- package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/src/private/specs/components/AndroidSwitchNativeComponent.js +4 -4
- package/src/private/specs/components/DebuggingOverlayNativeComponent.js +2 -2
- package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +2 -2
- package/src/private/specs/components/PullToRefreshViewNativeComponent.js +2 -2
- package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +2 -2
- package/src/private/specs/components/RCTModalHostViewNativeComponent.js +4 -4
- package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +2 -2
- package/src/private/specs/components/SwitchNativeComponent.js +4 -4
- package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +2 -2
- package/src/private/specs/modules/NativeAccessibilityManager.js +2 -2
- package/src/private/specs/modules/NativeActionSheetManager.js +7 -7
- package/src/private/specs/modules/NativeAlertManager.js +2 -2
- package/src/private/specs/modules/NativeAnimatedModule.js +2 -2
- package/src/private/specs/modules/NativeAnimatedTurboModule.js +2 -2
- package/src/private/specs/modules/NativeAppState.js +3 -3
- package/src/private/specs/modules/NativeBlobModule.js +1 -1
- package/src/private/specs/modules/NativeClipboard.js +1 -1
- package/src/private/specs/modules/NativeDeviceInfo.js +8 -8
- package/src/private/specs/modules/NativeDialogManagerAndroid.js +4 -4
- package/src/private/specs/modules/NativeExceptionsManager.js +2 -2
- package/src/private/specs/modules/NativeFantom.js +6 -0
- package/src/private/specs/modules/NativeFrameRateLogger.js +1 -1
- package/src/private/specs/modules/NativeI18nManager.js +2 -2
- package/src/private/specs/modules/NativeImageEditor.js +9 -9
- package/src/private/specs/modules/NativeImageLoaderAndroid.js +1 -1
- package/src/private/specs/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/specs/modules/NativeImageLoaderWin32.js +1 -1
- package/src/private/specs/modules/NativeImageStoreAndroid.js +1 -1
- package/src/private/specs/modules/NativeImageStoreIOS.js +3 -3
- package/src/private/specs/modules/NativeNetworkingIOS.js +2 -2
- package/src/private/specs/modules/NativePlatformConstantsAndroid.js +4 -4
- package/src/private/specs/modules/NativePlatformConstantsIOS.js +4 -4
- package/src/private/specs/modules/NativePlatformConstantsWin.js +5 -10
- package/src/private/specs/modules/NativePushNotificationManagerIOS.js +7 -7
- package/src/private/specs/modules/NativeSampleTurboModule.js +2 -2
- package/src/private/specs/modules/NativeSettingsManager.js +2 -2
- package/src/private/specs/modules/NativeShareModule.js +3 -3
- package/src/private/specs/modules/NativeSourceCode.js +2 -2
- package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +4 -4
- package/src/private/specs/modules/NativeStatusBarManagerIOS.js +6 -6
- package/src/private/specs/modules/NativeToastAndroid.js +2 -2
- package/src/private/specs/modules/NativeVibration.js +1 -1
- package/src/private/specs/modules/NativeWebSocketModule.js +1 -1
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +2 -2
- package/src/private/webapis/intersectionobserver/{IntersectionObserverManager.js → internals/IntersectionObserverManager.js} +9 -9
- package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
- package/src/private/webapis/mutationobserver/{MutationObserverManager.js → internals/MutationObserverManager.js} +8 -8
- package/src/private/webapis/performance/EventTiming.js +1 -1
- package/src/private/webapis/performance/Performance.js +3 -3
- package/src/private/webapis/performance/PerformanceObserver.js +2 -2
- package/src/private/webapis/performance/{RawPerformanceEntry.js → internals/RawPerformanceEntry.js} +6 -6
- package/src/private/webapis/performance/{Utilities.js → internals/Utilities.js} +1 -1
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +1 -1
|
@@ -79,26 +79,27 @@ class LogBoxLog {
|
|
|
79
79
|
count: number;
|
|
80
80
|
level: LogLevel;
|
|
81
81
|
codeFrame: ?CodeFrame;
|
|
82
|
+
componentCodeFrame: ?CodeFrame;
|
|
82
83
|
isComponentError: boolean;
|
|
83
84
|
extraData: mixed | void;
|
|
84
85
|
symbolicated:
|
|
85
|
-
| $ReadOnly<{
|
|
86
|
-
| $ReadOnly<{
|
|
87
|
-
| $ReadOnly<{
|
|
88
|
-
| $ReadOnly<{
|
|
86
|
+
| $ReadOnly<{error: null, stack: null, status: 'NONE'}>
|
|
87
|
+
| $ReadOnly<{error: null, stack: null, status: 'PENDING'}>
|
|
88
|
+
| $ReadOnly<{error: null, stack: Stack, status: 'COMPLETE'}>
|
|
89
|
+
| $ReadOnly<{error: Error, stack: null, status: 'FAILED'}> = {
|
|
89
90
|
error: null,
|
|
90
91
|
stack: null,
|
|
91
92
|
status: 'NONE',
|
|
92
93
|
};
|
|
93
94
|
symbolicatedComponentStack:
|
|
94
|
-
| $ReadOnly<{
|
|
95
|
-
| $ReadOnly<{
|
|
96
|
-
| $ReadOnly<{
|
|
95
|
+
| $ReadOnly<{error: null, componentStack: null, status: 'NONE'}>
|
|
96
|
+
| $ReadOnly<{error: null, componentStack: null, status: 'PENDING'}>
|
|
97
|
+
| $ReadOnly<{
|
|
97
98
|
error: null,
|
|
98
99
|
componentStack: ComponentStack,
|
|
99
100
|
status: 'COMPLETE',
|
|
100
|
-
|
|
101
|
-
| $ReadOnly<{
|
|
101
|
+
}>
|
|
102
|
+
| $ReadOnly<{error: Error, componentStack: null, status: 'FAILED'}> = {
|
|
102
103
|
error: null,
|
|
103
104
|
componentStack: null,
|
|
104
105
|
status: 'NONE',
|
|
@@ -140,8 +141,18 @@ class LogBoxLog {
|
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
retrySymbolicate(callback?: (status: SymbolicationStatus) => void): void {
|
|
144
|
+
let retry = false;
|
|
143
145
|
if (this.symbolicated.status !== 'COMPLETE') {
|
|
144
146
|
LogBoxSymbolication.deleteStack(this.stack);
|
|
147
|
+
retry = true;
|
|
148
|
+
}
|
|
149
|
+
if (this.symbolicatedComponentStack.status !== 'COMPLETE') {
|
|
150
|
+
LogBoxSymbolication.deleteStack(
|
|
151
|
+
convertComponentStateToStack(this.componentStack),
|
|
152
|
+
);
|
|
153
|
+
retry = true;
|
|
154
|
+
}
|
|
155
|
+
if (retry) {
|
|
145
156
|
this.handleSymbolicate(callback);
|
|
146
157
|
}
|
|
147
158
|
}
|
|
@@ -153,7 +164,10 @@ class LogBoxLog {
|
|
|
153
164
|
}
|
|
154
165
|
|
|
155
166
|
handleSymbolicate(callback?: (status: SymbolicationStatus) => void): void {
|
|
156
|
-
if (
|
|
167
|
+
if (
|
|
168
|
+
this.symbolicated.status !== 'PENDING' &&
|
|
169
|
+
this.symbolicated.status !== 'COMPLETE'
|
|
170
|
+
) {
|
|
157
171
|
this.updateStatus(null, null, null, callback);
|
|
158
172
|
LogBoxSymbolication.symbolicate(this.stack, this.extraData).then(
|
|
159
173
|
data => {
|
|
@@ -163,25 +177,30 @@ class LogBoxLog {
|
|
|
163
177
|
this.updateStatus(error, null, null, callback);
|
|
164
178
|
},
|
|
165
179
|
);
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
180
|
+
}
|
|
181
|
+
if (
|
|
182
|
+
this.componentStack != null &&
|
|
183
|
+
this.componentStackType === 'stack' &&
|
|
184
|
+
this.symbolicatedComponentStack.status !== 'PENDING' &&
|
|
185
|
+
this.symbolicatedComponentStack.status !== 'COMPLETE'
|
|
186
|
+
) {
|
|
187
|
+
this.updateComponentStackStatus(null, null, null, callback);
|
|
188
|
+
const componentStackFrames = convertComponentStateToStack(
|
|
189
|
+
this.componentStack,
|
|
190
|
+
);
|
|
191
|
+
LogBoxSymbolication.symbolicate(componentStackFrames, []).then(
|
|
192
|
+
data => {
|
|
193
|
+
this.updateComponentStackStatus(
|
|
194
|
+
null,
|
|
195
|
+
convertStackToComponentStack(data.stack),
|
|
196
|
+
data?.codeFrame,
|
|
197
|
+
callback,
|
|
198
|
+
);
|
|
199
|
+
},
|
|
200
|
+
error => {
|
|
201
|
+
this.updateComponentStackStatus(error, null, null, callback);
|
|
202
|
+
},
|
|
203
|
+
);
|
|
185
204
|
}
|
|
186
205
|
}
|
|
187
206
|
|
|
@@ -235,6 +254,9 @@ class LogBoxLog {
|
|
|
235
254
|
status: 'FAILED',
|
|
236
255
|
};
|
|
237
256
|
} else if (componentStack != null) {
|
|
257
|
+
if (codeFrame) {
|
|
258
|
+
this.componentCodeFrame = codeFrame;
|
|
259
|
+
}
|
|
238
260
|
this.symbolicatedComponentStack = {
|
|
239
261
|
error: null,
|
|
240
262
|
componentStack,
|
|
@@ -107,7 +107,7 @@ export type ExtendedExceptionData = ExceptionData & {
|
|
|
107
107
|
...
|
|
108
108
|
};
|
|
109
109
|
export type Category = string;
|
|
110
|
-
export type CodeFrame = $ReadOnly<{
|
|
110
|
+
export type CodeFrame = $ReadOnly<{
|
|
111
111
|
content: string,
|
|
112
112
|
location: ?{
|
|
113
113
|
row: number,
|
|
@@ -120,26 +120,26 @@ export type CodeFrame = $ReadOnly<{|
|
|
|
120
120
|
// we gained the ability to use the collapse flag, but
|
|
121
121
|
// it is not integrated into the LogBox UI.
|
|
122
122
|
collapse?: boolean,
|
|
123
|
-
|
|
124
|
-
export type Message = $ReadOnly<{
|
|
123
|
+
}>;
|
|
124
|
+
export type Message = $ReadOnly<{
|
|
125
125
|
content: string,
|
|
126
126
|
substitutions: $ReadOnlyArray<
|
|
127
|
-
$ReadOnly<{
|
|
127
|
+
$ReadOnly<{
|
|
128
128
|
length: number,
|
|
129
129
|
offset: number,
|
|
130
|
-
|
|
130
|
+
}>,
|
|
131
131
|
>,
|
|
132
|
-
|
|
132
|
+
}>;
|
|
133
133
|
|
|
134
134
|
export type ComponentStack = $ReadOnlyArray<CodeFrame>;
|
|
135
135
|
export type ComponentStackType = 'legacy' | 'stack';
|
|
136
136
|
|
|
137
137
|
const SUBSTITUTION = UTFSequence.BOM + '%s';
|
|
138
138
|
|
|
139
|
-
export function parseInterpolation(args: $ReadOnlyArray<mixed>): $ReadOnly<{
|
|
139
|
+
export function parseInterpolation(args: $ReadOnlyArray<mixed>): $ReadOnly<{
|
|
140
140
|
category: Category,
|
|
141
141
|
message: Message,
|
|
142
|
-
|
|
142
|
+
}> {
|
|
143
143
|
const categoryParts = [];
|
|
144
144
|
const contentParts = [];
|
|
145
145
|
const substitutionOffsets = [];
|
|
@@ -456,12 +456,12 @@ export function withoutANSIColorStyles(message: mixed): mixed {
|
|
|
456
456
|
);
|
|
457
457
|
}
|
|
458
458
|
|
|
459
|
-
export function parseLogBoxLog(args: $ReadOnlyArray<mixed>): {
|
|
459
|
+
export function parseLogBoxLog(args: $ReadOnlyArray<mixed>): {
|
|
460
460
|
componentStack: ComponentStack,
|
|
461
461
|
componentStackType: ComponentStackType,
|
|
462
462
|
category: Category,
|
|
463
463
|
message: Message,
|
|
464
|
-
|
|
464
|
+
} {
|
|
465
465
|
const message = withoutANSIColorStyles(args[0]);
|
|
466
466
|
let argsWithoutComponentStack: Array<mixed> = [];
|
|
467
467
|
let componentStack: ComponentStack = [];
|
|
@@ -14,6 +14,7 @@ import type {ExtendedExceptionData} from './Data/parseLogBoxLog';
|
|
|
14
14
|
import Platform from '../Utilities/Platform';
|
|
15
15
|
import RCTLog from '../Utilities/RCTLog';
|
|
16
16
|
import {hasComponentStack} from './Data/parseLogBoxLog';
|
|
17
|
+
import * as React from 'react';
|
|
17
18
|
|
|
18
19
|
export type {LogData, ExtendedExceptionData, IgnorePattern};
|
|
19
20
|
|
|
@@ -192,9 +193,20 @@ if (__DEV__) {
|
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
try {
|
|
196
|
+
let stack;
|
|
197
|
+
// $FlowFixMe[prop-missing] Not added to flow types yet.
|
|
198
|
+
if (!hasComponentStack(args) && React.captureOwnerStack != null) {
|
|
199
|
+
stack = React.captureOwnerStack();
|
|
200
|
+
if (!hasComponentStack(args)) {
|
|
201
|
+
if (stack !== '') {
|
|
202
|
+
args[0] = args[0] += '%s';
|
|
203
|
+
args.push(stack);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
195
207
|
if (!isWarningModuleWarning(...args) && !hasComponentStack(args)) {
|
|
196
208
|
// Only show LogBox for the 'warning' module, or React errors with
|
|
197
|
-
// component stacks, otherwise pass the error through.
|
|
209
|
+
// component stacks, otherwise pass the error through.
|
|
198
210
|
//
|
|
199
211
|
// By passing through, this will get picked up by the React console override,
|
|
200
212
|
// potentially adding the component stack. React then passes it back to the
|
|
@@ -16,11 +16,11 @@ import * as LogBoxData from './Data/LogBoxData';
|
|
|
16
16
|
import LogBoxInspector from './UI/LogBoxInspector';
|
|
17
17
|
import * as React from 'react';
|
|
18
18
|
|
|
19
|
-
type Props = $ReadOnly<{
|
|
19
|
+
type Props = $ReadOnly<{
|
|
20
20
|
logs: $ReadOnlyArray<LogBoxLog>,
|
|
21
21
|
selectedLogIndex: number,
|
|
22
22
|
isDisabled?: ?boolean,
|
|
23
|
-
|
|
23
|
+
}>;
|
|
24
24
|
|
|
25
25
|
export class _LogBoxInspectorContainer extends React.Component<Props> {
|
|
26
26
|
render(): React.Node {
|
|
@@ -65,4 +65,4 @@ export class _LogBoxInspectorContainer extends React.Component<Props> {
|
|
|
65
65
|
|
|
66
66
|
export default (LogBoxData.withSubscription(
|
|
67
67
|
_LogBoxInspectorContainer,
|
|
68
|
-
): React.ComponentType<{
|
|
68
|
+
): React.ComponentType<{}>);
|
|
@@ -16,11 +16,11 @@ import LogBoxLog from './Data/LogBoxLog';
|
|
|
16
16
|
import LogBoxLogNotification from './UI/LogBoxNotification';
|
|
17
17
|
import * as React from 'react';
|
|
18
18
|
|
|
19
|
-
type Props = $ReadOnly<{
|
|
19
|
+
type Props = $ReadOnly<{
|
|
20
20
|
logs: $ReadOnlyArray<LogBoxLog>,
|
|
21
21
|
selectedLogIndex: number,
|
|
22
22
|
isDisabled?: ?boolean,
|
|
23
|
-
|
|
23
|
+
}>;
|
|
24
24
|
|
|
25
25
|
export function _LogBoxNotificationContainer(props: Props): React.Node {
|
|
26
26
|
const {logs} = props;
|
|
@@ -102,4 +102,4 @@ const styles = StyleSheet.create({
|
|
|
102
102
|
|
|
103
103
|
export default (LogBoxData.withSubscription(
|
|
104
104
|
_LogBoxNotificationContainer,
|
|
105
|
-
): React.ComponentType<{
|
|
105
|
+
): React.ComponentType<{}>);
|
|
@@ -18,16 +18,16 @@ import StyleSheet from '../../StyleSheet/StyleSheet';
|
|
|
18
18
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
19
19
|
import * as React from 'react';
|
|
20
20
|
|
|
21
|
-
type Props = $ReadOnly<{
|
|
22
|
-
backgroundColor: $ReadOnly<{
|
|
21
|
+
type Props = $ReadOnly<{
|
|
22
|
+
backgroundColor: $ReadOnly<{
|
|
23
23
|
default: string,
|
|
24
24
|
pressed: string,
|
|
25
|
-
|
|
25
|
+
}>,
|
|
26
26
|
children?: React.Node,
|
|
27
27
|
hitSlop?: ?EdgeInsetsProp,
|
|
28
28
|
onPress?: ?(event: PressEvent) => void,
|
|
29
29
|
style?: ViewStyleProp,
|
|
30
|
-
|
|
30
|
+
}>;
|
|
31
31
|
|
|
32
32
|
function LogBoxButton(props: Props): React.Node {
|
|
33
33
|
const [pressed, setPressed] = React.useState(false);
|
|
@@ -52,7 +52,10 @@ export default function LogBoxInspectorBody(props: {
|
|
|
52
52
|
title={headerTitle}
|
|
53
53
|
/>
|
|
54
54
|
<ScrollView style={styles.scrollBody}>
|
|
55
|
-
<LogBoxInspectorCodeFrame
|
|
55
|
+
<LogBoxInspectorCodeFrame
|
|
56
|
+
codeFrame={props.log.codeFrame}
|
|
57
|
+
componentCodeFrame={props.log.componentCodeFrame}
|
|
58
|
+
/>
|
|
56
59
|
<LogBoxInspectorReactFrames log={props.log} />
|
|
57
60
|
<LogBoxInspectorStackFrames log={props.log} onRetry={props.onRetry} />
|
|
58
61
|
</ScrollView>
|
|
@@ -68,7 +71,10 @@ export default function LogBoxInspectorBody(props: {
|
|
|
68
71
|
level={props.log.level}
|
|
69
72
|
title={headerTitle}
|
|
70
73
|
/>
|
|
71
|
-
<LogBoxInspectorCodeFrame
|
|
74
|
+
<LogBoxInspectorCodeFrame
|
|
75
|
+
codeFrame={props.log.codeFrame}
|
|
76
|
+
componentCodeFrame={props.log.componentCodeFrame}
|
|
77
|
+
/>
|
|
72
78
|
<LogBoxInspectorReactFrames log={props.log} />
|
|
73
79
|
<LogBoxInspectorStackFrames log={props.log} onRetry={props.onRetry} />
|
|
74
80
|
</ScrollView>
|
|
@@ -22,16 +22,13 @@ import LogBoxButton from './LogBoxButton';
|
|
|
22
22
|
import LogBoxInspectorSection from './LogBoxInspectorSection';
|
|
23
23
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
24
24
|
import * as React from 'react';
|
|
25
|
-
type Props = $ReadOnly<{|
|
|
26
|
-
codeFrame: ?CodeFrame,
|
|
27
|
-
|}>;
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
26
|
+
type Props = $ReadOnly<{
|
|
27
|
+
componentCodeFrame: ?CodeFrame,
|
|
28
|
+
codeFrame: ?CodeFrame,
|
|
29
|
+
}>;
|
|
34
30
|
|
|
31
|
+
function CodeFrameDisplay({codeFrame}: {codeFrame: CodeFrame}): React.Node {
|
|
35
32
|
function getFileName() {
|
|
36
33
|
// $FlowFixMe[incompatible-use]
|
|
37
34
|
const matches = /[^/]*$/.exec(codeFrame.fileName);
|
|
@@ -56,30 +53,52 @@ function LogBoxInspectorCodeFrame(props: Props): React.Node {
|
|
|
56
53
|
}
|
|
57
54
|
|
|
58
55
|
return (
|
|
59
|
-
<
|
|
60
|
-
<View style={styles.
|
|
61
|
-
<
|
|
62
|
-
<
|
|
63
|
-
|
|
64
|
-
contentContainerStyle={styles.contentContainer}>
|
|
65
|
-
<AnsiHighlight style={styles.content} text={codeFrame.content} />
|
|
66
|
-
</ScrollView>
|
|
67
|
-
</View>
|
|
68
|
-
<LogBoxButton
|
|
69
|
-
backgroundColor={{
|
|
70
|
-
default: 'transparent',
|
|
71
|
-
pressed: LogBoxStyle.getBackgroundDarkColor(1),
|
|
72
|
-
}}
|
|
73
|
-
style={styles.button}
|
|
74
|
-
onPress={() => {
|
|
75
|
-
openFileInEditor(codeFrame.fileName, codeFrame.location?.row ?? 0);
|
|
76
|
-
}}>
|
|
77
|
-
<Text style={styles.fileText}>
|
|
78
|
-
{getFileName()}
|
|
79
|
-
{getLocation()}
|
|
80
|
-
</Text>
|
|
81
|
-
</LogBoxButton>
|
|
56
|
+
<View style={styles.box}>
|
|
57
|
+
<View style={styles.frame}>
|
|
58
|
+
<ScrollView horizontal contentContainerStyle={styles.contentContainer}>
|
|
59
|
+
<AnsiHighlight style={styles.content} text={codeFrame.content} />
|
|
60
|
+
</ScrollView>
|
|
82
61
|
</View>
|
|
62
|
+
<LogBoxButton
|
|
63
|
+
backgroundColor={{
|
|
64
|
+
default: 'transparent',
|
|
65
|
+
pressed: LogBoxStyle.getBackgroundDarkColor(1),
|
|
66
|
+
}}
|
|
67
|
+
style={styles.button}
|
|
68
|
+
onPress={() => {
|
|
69
|
+
openFileInEditor(codeFrame.fileName, codeFrame.location?.row ?? 0);
|
|
70
|
+
}}>
|
|
71
|
+
<Text style={styles.fileText}>
|
|
72
|
+
{getFileName()}
|
|
73
|
+
{getLocation()}
|
|
74
|
+
</Text>
|
|
75
|
+
</LogBoxButton>
|
|
76
|
+
</View>
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function LogBoxInspectorCodeFrame(props: Props): React.Node {
|
|
81
|
+
const {codeFrame, componentCodeFrame} = props;
|
|
82
|
+
let sources = [];
|
|
83
|
+
if (codeFrame != null) {
|
|
84
|
+
sources.push(codeFrame);
|
|
85
|
+
}
|
|
86
|
+
if (
|
|
87
|
+
componentCodeFrame != null &&
|
|
88
|
+
componentCodeFrame?.content !== codeFrame?.content
|
|
89
|
+
) {
|
|
90
|
+
sources.push(componentCodeFrame);
|
|
91
|
+
}
|
|
92
|
+
if (sources.length === 0) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return (
|
|
96
|
+
<LogBoxInspectorSection
|
|
97
|
+
heading={sources.length > 1 ? 'Sources' : 'Source'}
|
|
98
|
+
action={<AppInfo />}>
|
|
99
|
+
{sources.map((frame, index) => (
|
|
100
|
+
<CodeFrameDisplay key={index} codeFrame={frame} />
|
|
101
|
+
))}
|
|
83
102
|
</LogBoxInspectorSection>
|
|
84
103
|
);
|
|
85
104
|
}
|
|
@@ -22,16 +22,13 @@ import LogBoxButton from './LogBoxButton';
|
|
|
22
22
|
import LogBoxInspectorSection from './LogBoxInspectorSection';
|
|
23
23
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
24
24
|
import * as React from 'react';
|
|
25
|
-
type Props = $ReadOnly<{|
|
|
26
|
-
codeFrame: ?CodeFrame,
|
|
27
|
-
|}>;
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
26
|
+
type Props = $ReadOnly<{
|
|
27
|
+
componentCodeFrame: ?CodeFrame,
|
|
28
|
+
codeFrame: ?CodeFrame,
|
|
29
|
+
}>;
|
|
34
30
|
|
|
31
|
+
function CodeFrameDisplay({codeFrame}: {codeFrame: CodeFrame}): React.Node {
|
|
35
32
|
function getFileName() {
|
|
36
33
|
// $FlowFixMe[incompatible-use]
|
|
37
34
|
const matches = /[^/]*$/.exec(codeFrame.fileName);
|
|
@@ -56,30 +53,52 @@ function LogBoxInspectorCodeFrame(props: Props): React.Node {
|
|
|
56
53
|
}
|
|
57
54
|
|
|
58
55
|
return (
|
|
59
|
-
<
|
|
60
|
-
<View style={styles.
|
|
61
|
-
<
|
|
62
|
-
<
|
|
63
|
-
|
|
64
|
-
contentContainerStyle={styles.contentContainer}>
|
|
65
|
-
<AnsiHighlight style={styles.content} text={codeFrame.content} />
|
|
66
|
-
</ScrollView>
|
|
67
|
-
</View>
|
|
68
|
-
<LogBoxButton
|
|
69
|
-
backgroundColor={{
|
|
70
|
-
default: 'transparent',
|
|
71
|
-
pressed: LogBoxStyle.getBackgroundDarkColor(1),
|
|
72
|
-
}}
|
|
73
|
-
style={styles.button}
|
|
74
|
-
onPress={() => {
|
|
75
|
-
openFileInEditor(codeFrame.fileName, codeFrame.location?.row ?? 0);
|
|
76
|
-
}}>
|
|
77
|
-
<Text style={styles.fileText}>
|
|
78
|
-
{getFileName()}
|
|
79
|
-
{getLocation()}
|
|
80
|
-
</Text>
|
|
81
|
-
</LogBoxButton>
|
|
56
|
+
<View style={styles.box}>
|
|
57
|
+
<View style={styles.frame}>
|
|
58
|
+
<ScrollView horizontal contentContainerStyle={styles.contentContainer}>
|
|
59
|
+
<AnsiHighlight style={styles.content} text={codeFrame.content} />
|
|
60
|
+
</ScrollView>
|
|
82
61
|
</View>
|
|
62
|
+
<LogBoxButton
|
|
63
|
+
backgroundColor={{
|
|
64
|
+
default: 'transparent',
|
|
65
|
+
pressed: LogBoxStyle.getBackgroundDarkColor(1),
|
|
66
|
+
}}
|
|
67
|
+
style={styles.button}
|
|
68
|
+
onPress={() => {
|
|
69
|
+
openFileInEditor(codeFrame.fileName, codeFrame.location?.row ?? 0);
|
|
70
|
+
}}>
|
|
71
|
+
<Text style={styles.fileText}>
|
|
72
|
+
{getFileName()}
|
|
73
|
+
{getLocation()}
|
|
74
|
+
</Text>
|
|
75
|
+
</LogBoxButton>
|
|
76
|
+
</View>
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function LogBoxInspectorCodeFrame(props: Props): React.Node {
|
|
81
|
+
const {codeFrame, componentCodeFrame} = props;
|
|
82
|
+
let sources = [];
|
|
83
|
+
if (codeFrame != null) {
|
|
84
|
+
sources.push(codeFrame);
|
|
85
|
+
}
|
|
86
|
+
if (
|
|
87
|
+
componentCodeFrame != null &&
|
|
88
|
+
componentCodeFrame?.content !== codeFrame?.content
|
|
89
|
+
) {
|
|
90
|
+
sources.push(componentCodeFrame);
|
|
91
|
+
}
|
|
92
|
+
if (sources.length === 0) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return (
|
|
96
|
+
<LogBoxInspectorSection
|
|
97
|
+
heading={sources.length > 1 ? 'Sources' : 'Source'}
|
|
98
|
+
action={<AppInfo />}>
|
|
99
|
+
{sources.map((frame, index) => (
|
|
100
|
+
<CodeFrameDisplay key={index} codeFrame={frame} />
|
|
101
|
+
))}
|
|
83
102
|
</LogBoxInspectorSection>
|
|
84
103
|
);
|
|
85
104
|
}
|
|
@@ -18,13 +18,13 @@ import LogBoxMessage from './LogBoxMessage';
|
|
|
18
18
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
19
19
|
import * as React from 'react';
|
|
20
20
|
|
|
21
|
-
type Props = $ReadOnly<{
|
|
21
|
+
type Props = $ReadOnly<{
|
|
22
22
|
collapsed: boolean,
|
|
23
23
|
message: Message,
|
|
24
24
|
level: LogLevel,
|
|
25
25
|
title: string,
|
|
26
26
|
onPress: () => void,
|
|
27
|
-
|
|
27
|
+
}>;
|
|
28
28
|
|
|
29
29
|
const SHOW_MORE_MESSAGE_LENGTH = 300;
|
|
30
30
|
|
|
@@ -20,9 +20,9 @@ import LogBoxInspectorSection from './LogBoxInspectorSection';
|
|
|
20
20
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
21
21
|
import * as React from 'react';
|
|
22
22
|
|
|
23
|
-
type Props = $ReadOnly<{
|
|
23
|
+
type Props = $ReadOnly<{
|
|
24
24
|
log: LogBoxLog,
|
|
25
|
-
|
|
25
|
+
}>;
|
|
26
26
|
|
|
27
27
|
const BEFORE_SLASH_RE = /^(.*)[\\/]/;
|
|
28
28
|
|
|
@@ -20,9 +20,9 @@ import LogBoxInspectorSection from './LogBoxInspectorSection';
|
|
|
20
20
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
21
21
|
import * as React from 'react';
|
|
22
22
|
|
|
23
|
-
type Props = $ReadOnly<{
|
|
23
|
+
type Props = $ReadOnly<{
|
|
24
24
|
log: LogBoxLog,
|
|
25
|
-
|
|
25
|
+
}>;
|
|
26
26
|
|
|
27
27
|
const BEFORE_SLASH_RE = /^(.*)[\\/]/;
|
|
28
28
|
|
|
@@ -14,11 +14,11 @@ import Text from '../../Text/Text';
|
|
|
14
14
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
15
15
|
import * as React from 'react';
|
|
16
16
|
|
|
17
|
-
type Props = $ReadOnly<{
|
|
17
|
+
type Props = $ReadOnly<{
|
|
18
18
|
heading: string,
|
|
19
19
|
children: React.Node,
|
|
20
20
|
action?: ?React.Node,
|
|
21
|
-
|
|
21
|
+
}>;
|
|
22
22
|
|
|
23
23
|
function LogBoxInspectorSection(props: Props): React.Node {
|
|
24
24
|
return (
|
|
@@ -18,10 +18,10 @@ import LogBoxButton from './LogBoxButton';
|
|
|
18
18
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
19
19
|
import * as React from 'react';
|
|
20
20
|
|
|
21
|
-
type Props = $ReadOnly<{
|
|
21
|
+
type Props = $ReadOnly<{
|
|
22
22
|
onPress?: ?(event: PressEvent) => void,
|
|
23
23
|
status: 'COMPLETE' | 'FAILED' | 'NONE' | 'PENDING',
|
|
24
|
-
|
|
24
|
+
}>;
|
|
25
25
|
|
|
26
26
|
function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
|
|
27
27
|
const [state, setState] = React.useState({
|
|
@@ -23,10 +23,10 @@ import LogBoxInspectorStackFrame from './LogBoxInspectorStackFrame';
|
|
|
23
23
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
24
24
|
import * as React from 'react';
|
|
25
25
|
|
|
26
|
-
type Props = $ReadOnly<{
|
|
26
|
+
type Props = $ReadOnly<{
|
|
27
27
|
log: LogBoxLog,
|
|
28
28
|
onRetry: () => void,
|
|
29
|
-
|
|
29
|
+
}>;
|
|
30
30
|
|
|
31
31
|
export function getCollapseMessage(
|
|
32
32
|
stackFrames: Stack,
|
package/Libraries/Modal/Modal.js
CHANGED
|
@@ -18,15 +18,15 @@ import ModalInjection from './ModalInjection';
|
|
|
18
18
|
import NativeModalManager from './NativeModalManager';
|
|
19
19
|
import RCTModalHostView from './RCTModalHostViewNativeComponent';
|
|
20
20
|
import {VirtualizedListContextResetter} from '@react-native/virtualized-lists';
|
|
21
|
+
import React from 'react';
|
|
21
22
|
|
|
22
|
-
const ScrollView = require('../Components/ScrollView/ScrollView');
|
|
23
|
+
const ScrollView = require('../Components/ScrollView/ScrollView').default;
|
|
23
24
|
const View = require('../Components/View/View');
|
|
24
25
|
const AppContainer = require('../ReactNative/AppContainer');
|
|
25
26
|
const I18nManager = require('../ReactNative/I18nManager');
|
|
26
27
|
const {RootTagContext} = require('../ReactNative/RootTag');
|
|
27
28
|
const StyleSheet = require('../StyleSheet/StyleSheet');
|
|
28
29
|
const Platform = require('../Utilities/Platform');
|
|
29
|
-
const React = require('react');
|
|
30
30
|
|
|
31
31
|
type ModalEventDefinitions = {
|
|
32
32
|
modalDismissed: [{modalID: number}],
|
|
@@ -53,11 +53,11 @@ const ModalEventEmitter =
|
|
|
53
53
|
// destroyed before the callback is fired.
|
|
54
54
|
let uniqueModalIdentifier = 0;
|
|
55
55
|
|
|
56
|
-
type OrientationChangeEvent = $ReadOnly<{
|
|
56
|
+
type OrientationChangeEvent = $ReadOnly<{
|
|
57
57
|
orientation: 'portrait' | 'landscape',
|
|
58
|
-
|
|
58
|
+
}>;
|
|
59
59
|
|
|
60
|
-
export type Props = $ReadOnly<{
|
|
60
|
+
export type Props = $ReadOnly<{
|
|
61
61
|
...ViewProps,
|
|
62
62
|
|
|
63
63
|
/**
|
|
@@ -171,7 +171,7 @@ export type Props = $ReadOnly<{|
|
|
|
171
171
|
* Defaults to `white` if not provided and transparent is `false`. Ignored if `transparent` is `true`.
|
|
172
172
|
*/
|
|
173
173
|
backdropColor?: ?string,
|
|
174
|
-
|
|
174
|
+
}>;
|
|
175
175
|
|
|
176
176
|
function confirmProps(props: Props) {
|
|
177
177
|
if (__DEV__) {
|
|
@@ -202,7 +202,7 @@ type State = {
|
|
|
202
202
|
};
|
|
203
203
|
|
|
204
204
|
class Modal extends React.Component<Props, State> {
|
|
205
|
-
static defaultProps: {
|
|
205
|
+
static defaultProps: {hardwareAccelerated: boolean, visible: boolean} = {
|
|
206
206
|
visible: true,
|
|
207
207
|
hardwareAccelerated: false,
|
|
208
208
|
};
|
|
@@ -15,7 +15,7 @@ import type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';
|
|
|
15
15
|
import {type EventSubscription} from '../vendor/emitter/EventEmitter';
|
|
16
16
|
import EventTarget from 'event-target-shim';
|
|
17
17
|
|
|
18
|
-
const BlobManager = require('../Blob/BlobManager');
|
|
18
|
+
const BlobManager = require('../Blob/BlobManager').default;
|
|
19
19
|
const GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');
|
|
20
20
|
const RCTNetworking = require('./RCTNetworking').default;
|
|
21
21
|
const base64 = require('base64-js');
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
import typeof BlobT from '../Blob/Blob';
|
|
14
|
+
|
|
15
|
+
const Blob: BlobT = require('../Blob/Blob').default;
|
|
14
16
|
const binaryToBase64 = require('../Utilities/binaryToBase64');
|
|
15
17
|
const FormData = require('./FormData');
|
|
16
18
|
|