@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
|
@@ -18,26 +18,21 @@ import LogBoxMessage from './LogBoxMessage';
|
|
|
18
18
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
19
19
|
import * as React from 'react';
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
const SHOW_MORE_MESSAGE_LENGTH = 300;
|
|
22
|
+
|
|
23
|
+
component LogBoxInspectorMessageHeader(
|
|
22
24
|
collapsed: boolean,
|
|
23
25
|
message: Message,
|
|
24
26
|
level: LogLevel,
|
|
25
27
|
title: string,
|
|
26
28
|
onPress: () => void,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const SHOW_MORE_MESSAGE_LENGTH = 300;
|
|
30
|
-
|
|
31
|
-
function LogBoxInspectorMessageHeader(props: Props): React.Node {
|
|
29
|
+
) {
|
|
32
30
|
function renderShowMore() {
|
|
33
|
-
if (
|
|
34
|
-
props.message.content.length < SHOW_MORE_MESSAGE_LENGTH ||
|
|
35
|
-
!props.collapsed
|
|
36
|
-
) {
|
|
31
|
+
if (message.content.length < SHOW_MORE_MESSAGE_LENGTH || !collapsed) {
|
|
37
32
|
return null;
|
|
38
33
|
}
|
|
39
34
|
return (
|
|
40
|
-
<Text style={messageStyles.collapse} onPress={() =>
|
|
35
|
+
<Text style={messageStyles.collapse} onPress={() => onPress()}>
|
|
41
36
|
... See More
|
|
42
37
|
</Text>
|
|
43
38
|
);
|
|
@@ -47,15 +42,15 @@ function LogBoxInspectorMessageHeader(props: Props): React.Node {
|
|
|
47
42
|
<View style={messageStyles.body}>
|
|
48
43
|
<View style={messageStyles.heading}>
|
|
49
44
|
<Text
|
|
50
|
-
style={[messageStyles.headingText, messageStyles[
|
|
45
|
+
style={[messageStyles.headingText, messageStyles[level]]}
|
|
51
46
|
id="logbox_message_title_text">
|
|
52
|
-
{
|
|
47
|
+
{title}
|
|
53
48
|
</Text>
|
|
54
49
|
</View>
|
|
55
50
|
<Text style={messageStyles.bodyText} id="logbox_message_contents_text">
|
|
56
51
|
<LogBoxMessage
|
|
57
|
-
maxLength={
|
|
58
|
-
message={
|
|
52
|
+
maxLength={collapsed ? SHOW_MORE_MESSAGE_LENGTH : Infinity}
|
|
53
|
+
message={message}
|
|
59
54
|
style={messageStyles.messageText}
|
|
60
55
|
/>
|
|
61
56
|
{renderShowMore()}
|
|
@@ -21,10 +21,6 @@ import * as LogBoxStyle from './LogBoxStyle';
|
|
|
21
21
|
import * as React from 'react';
|
|
22
22
|
import {useState} from 'react';
|
|
23
23
|
|
|
24
|
-
type Props = $ReadOnly<{
|
|
25
|
-
log: LogBoxLog,
|
|
26
|
-
}>;
|
|
27
|
-
|
|
28
24
|
const BEFORE_SLASH_RE = /^(.*)[\\/]/;
|
|
29
25
|
|
|
30
26
|
// Taken from React https://github.com/facebook/react/blob/206d61f72214e8ae5b935f0bf8628491cb7f0797/packages/react-devtools-shared/src/backend/describeComponentFrame.js#L27-L41
|
|
@@ -49,29 +45,30 @@ function getPrettyFileName(path: string) {
|
|
|
49
45
|
|
|
50
46
|
return fileName;
|
|
51
47
|
}
|
|
52
|
-
|
|
48
|
+
|
|
49
|
+
component LogBoxInspectorReactFrames(log: LogBoxLog) {
|
|
53
50
|
const [collapsed, setCollapsed] = useState(true);
|
|
54
51
|
if (
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
log.getAvailableComponentStack() == null ||
|
|
53
|
+
log.getAvailableComponentStack().length < 1
|
|
57
54
|
) {
|
|
58
55
|
return null;
|
|
59
56
|
}
|
|
60
57
|
|
|
61
58
|
function getStackList() {
|
|
62
59
|
if (collapsed) {
|
|
63
|
-
return
|
|
60
|
+
return log.getAvailableComponentStack().slice(0, 3);
|
|
64
61
|
} else {
|
|
65
|
-
return
|
|
62
|
+
return log.getAvailableComponentStack();
|
|
66
63
|
}
|
|
67
64
|
}
|
|
68
65
|
|
|
69
66
|
function getCollapseMessage() {
|
|
70
|
-
if (
|
|
67
|
+
if (log.getAvailableComponentStack().length <= 3) {
|
|
71
68
|
return;
|
|
72
69
|
}
|
|
73
70
|
|
|
74
|
-
const count =
|
|
71
|
+
const count = log.getAvailableComponentStack().length - 3;
|
|
75
72
|
if (collapsed) {
|
|
76
73
|
return `See ${count} more components`;
|
|
77
74
|
} else {
|
|
@@ -95,9 +92,9 @@ function LogBoxInspectorReactFrames(props: Props): React.Node {
|
|
|
95
92
|
// Older versions of DevTools do not provide full path.
|
|
96
93
|
// This will not work on Windows, remove check once the
|
|
97
94
|
// DevTools return the full file path.
|
|
98
|
-
frame.
|
|
95
|
+
frame.file != null && frame.file.startsWith('/')
|
|
99
96
|
? () =>
|
|
100
|
-
openFileInEditor(frame.
|
|
97
|
+
openFileInEditor(frame.file ?? '', frame.lineNumber ?? 1)
|
|
101
98
|
: null
|
|
102
99
|
}
|
|
103
100
|
style={componentStyles.frame}>
|
|
@@ -106,13 +103,13 @@ function LogBoxInspectorReactFrames(props: Props): React.Node {
|
|
|
106
103
|
id="logbox_component_stack_frame_text"
|
|
107
104
|
style={componentStyles.frameName}>
|
|
108
105
|
<Text style={componentStyles.bracket}>{'<'}</Text>
|
|
109
|
-
{frame.
|
|
106
|
+
{frame.methodName}
|
|
110
107
|
<Text style={componentStyles.bracket}>{' />'}</Text>
|
|
111
108
|
</Text>
|
|
112
109
|
</View>
|
|
113
110
|
<Text style={componentStyles.frameLocation}>
|
|
114
|
-
{getPrettyFileName(frame.
|
|
115
|
-
{frame.
|
|
111
|
+
{frame.file != null ? getPrettyFileName(frame.file) : ''}
|
|
112
|
+
{frame.lineNumber != null ? `:${frame.lineNumber}` : ''}
|
|
116
113
|
</Text>
|
|
117
114
|
</LogBoxButton>
|
|
118
115
|
</View>
|
|
@@ -164,14 +161,24 @@ const componentStyles = StyleSheet.create({
|
|
|
164
161
|
paddingRight: 10,
|
|
165
162
|
},
|
|
166
163
|
frameName: {
|
|
167
|
-
fontFamily: Platform.select({
|
|
164
|
+
fontFamily: Platform.select({
|
|
165
|
+
android: 'monospace',
|
|
166
|
+
ios: 'Menlo',
|
|
167
|
+
macos: 'Menlo',
|
|
168
|
+
windows: 'Consolas',
|
|
169
|
+
}),
|
|
168
170
|
color: LogBoxStyle.getTextColor(1),
|
|
169
171
|
fontSize: 14,
|
|
170
172
|
includeFontPadding: false,
|
|
171
173
|
lineHeight: 18,
|
|
172
174
|
},
|
|
173
175
|
bracket: {
|
|
174
|
-
fontFamily: Platform.select({
|
|
176
|
+
fontFamily: Platform.select({
|
|
177
|
+
android: 'monospace',
|
|
178
|
+
ios: 'Menlo',
|
|
179
|
+
macos: 'Menlo',
|
|
180
|
+
windows: 'Consolas',
|
|
181
|
+
}),
|
|
175
182
|
color: LogBoxStyle.getTextColor(0.4),
|
|
176
183
|
fontSize: 14,
|
|
177
184
|
fontWeight: '500',
|
|
@@ -21,10 +21,6 @@ import * as LogBoxStyle from './LogBoxStyle';
|
|
|
21
21
|
import * as React from 'react';
|
|
22
22
|
import {useState} from 'react';
|
|
23
23
|
|
|
24
|
-
type Props = $ReadOnly<{
|
|
25
|
-
log: LogBoxLog,
|
|
26
|
-
}>;
|
|
27
|
-
|
|
28
24
|
const BEFORE_SLASH_RE = /^(.*)[\\/]/;
|
|
29
25
|
|
|
30
26
|
// Taken from React https://github.com/facebook/react/blob/206d61f72214e8ae5b935f0bf8628491cb7f0797/packages/react-devtools-shared/src/backend/describeComponentFrame.js#L27-L41
|
|
@@ -49,29 +45,30 @@ function getPrettyFileName(path: string) {
|
|
|
49
45
|
|
|
50
46
|
return fileName;
|
|
51
47
|
}
|
|
52
|
-
|
|
48
|
+
|
|
49
|
+
component LogBoxInspectorReactFrames(log: LogBoxLog) {
|
|
53
50
|
const [collapsed, setCollapsed] = useState(true);
|
|
54
51
|
if (
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
log.getAvailableComponentStack() == null ||
|
|
53
|
+
log.getAvailableComponentStack().length < 1
|
|
57
54
|
) {
|
|
58
55
|
return null;
|
|
59
56
|
}
|
|
60
57
|
|
|
61
58
|
function getStackList() {
|
|
62
59
|
if (collapsed) {
|
|
63
|
-
return
|
|
60
|
+
return log.getAvailableComponentStack().slice(0, 3);
|
|
64
61
|
} else {
|
|
65
|
-
return
|
|
62
|
+
return log.getAvailableComponentStack();
|
|
66
63
|
}
|
|
67
64
|
}
|
|
68
65
|
|
|
69
66
|
function getCollapseMessage() {
|
|
70
|
-
if (
|
|
67
|
+
if (log.getAvailableComponentStack().length <= 3) {
|
|
71
68
|
return;
|
|
72
69
|
}
|
|
73
70
|
|
|
74
|
-
const count =
|
|
71
|
+
const count = log.getAvailableComponentStack().length - 3;
|
|
75
72
|
if (collapsed) {
|
|
76
73
|
return `See ${count} more components`;
|
|
77
74
|
} else {
|
|
@@ -95,9 +92,9 @@ function LogBoxInspectorReactFrames(props: Props): React.Node {
|
|
|
95
92
|
// Older versions of DevTools do not provide full path.
|
|
96
93
|
// This will not work on Windows, remove check once the
|
|
97
94
|
// DevTools return the full file path.
|
|
98
|
-
frame.
|
|
95
|
+
frame.file != null && frame.file.startsWith('/')
|
|
99
96
|
? () =>
|
|
100
|
-
openFileInEditor(frame.
|
|
97
|
+
openFileInEditor(frame.file ?? '', frame.lineNumber ?? 1)
|
|
101
98
|
: null
|
|
102
99
|
}
|
|
103
100
|
style={componentStyles.frame}>
|
|
@@ -106,13 +103,13 @@ function LogBoxInspectorReactFrames(props: Props): React.Node {
|
|
|
106
103
|
id="logbox_component_stack_frame_text"
|
|
107
104
|
style={componentStyles.frameName}>
|
|
108
105
|
<Text style={componentStyles.bracket}>{'<'}</Text>
|
|
109
|
-
{frame.
|
|
106
|
+
{frame.methodName}
|
|
110
107
|
<Text style={componentStyles.bracket}>{' />'}</Text>
|
|
111
108
|
</Text>
|
|
112
109
|
</View>
|
|
113
110
|
<Text style={componentStyles.frameLocation}>
|
|
114
|
-
{getPrettyFileName(frame.
|
|
115
|
-
{frame.
|
|
111
|
+
{frame.file != null ? getPrettyFileName(frame.file) : ''}
|
|
112
|
+
{frame.lineNumber != null ? `:${frame.lineNumber}` : ''}
|
|
116
113
|
</Text>
|
|
117
114
|
</LogBoxButton>
|
|
118
115
|
</View>
|
|
@@ -167,6 +164,7 @@ const componentStyles = StyleSheet.create({
|
|
|
167
164
|
fontFamily: Platform.select({
|
|
168
165
|
android: 'monospace',
|
|
169
166
|
ios: 'Menlo',
|
|
167
|
+
macos: 'Menlo',
|
|
170
168
|
win32: 'Consolas', // Win32
|
|
171
169
|
}),
|
|
172
170
|
color: LogBoxStyle.getTextColor(1),
|
|
@@ -178,6 +176,7 @@ const componentStyles = StyleSheet.create({
|
|
|
178
176
|
fontFamily: Platform.select({
|
|
179
177
|
android: 'monospace',
|
|
180
178
|
ios: 'Menlo',
|
|
179
|
+
macos: 'Menlo',
|
|
181
180
|
win32: 'Consolas', // Win32
|
|
182
181
|
}),
|
|
183
182
|
color: LogBoxStyle.getTextColor(0.4),
|
|
@@ -14,20 +14,18 @@ import Text from '../../Text/Text';
|
|
|
14
14
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
15
15
|
import * as React from 'react';
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
component LogBoxInspectorSection(
|
|
18
18
|
heading: string,
|
|
19
19
|
children: React.Node,
|
|
20
20
|
action?: ?React.Node,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
function LogBoxInspectorSection(props: Props): React.Node {
|
|
21
|
+
) {
|
|
24
22
|
return (
|
|
25
23
|
<View style={styles.section}>
|
|
26
24
|
<View style={styles.heading}>
|
|
27
|
-
<Text style={styles.headingText}>{
|
|
28
|
-
{
|
|
25
|
+
<Text style={styles.headingText}>{heading}</Text>
|
|
26
|
+
{action}
|
|
29
27
|
</View>
|
|
30
|
-
<View style={styles.body}>{
|
|
28
|
+
<View style={styles.body}>{children}</View>
|
|
31
29
|
</View>
|
|
32
30
|
);
|
|
33
31
|
}
|
|
@@ -19,19 +19,17 @@ import * as LogBoxStyle from './LogBoxStyle';
|
|
|
19
19
|
import * as React from 'react';
|
|
20
20
|
import {useEffect, useState} from 'react';
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
component LogBoxInspectorSourceMapStatus(
|
|
23
23
|
onPress?: ?(event: GestureResponderEvent) => void,
|
|
24
24
|
status: 'COMPLETE' | 'FAILED' | 'NONE' | 'PENDING',
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
|
|
25
|
+
) {
|
|
28
26
|
const [state, setState] = useState({
|
|
29
27
|
animation: null,
|
|
30
28
|
rotate: null,
|
|
31
29
|
});
|
|
32
30
|
|
|
33
31
|
useEffect(() => {
|
|
34
|
-
if (
|
|
32
|
+
if (status === 'PENDING') {
|
|
35
33
|
if (state.animation == null) {
|
|
36
34
|
const animated = new Animated.Value(0);
|
|
37
35
|
const animation = Animated.loop(
|
|
@@ -67,11 +65,11 @@ function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
|
|
|
67
65
|
state.animation.stop();
|
|
68
66
|
}
|
|
69
67
|
};
|
|
70
|
-
}, [
|
|
68
|
+
}, [status, state.animation]);
|
|
71
69
|
|
|
72
70
|
let image;
|
|
73
71
|
let color;
|
|
74
|
-
switch (
|
|
72
|
+
switch (status) {
|
|
75
73
|
case 'FAILED':
|
|
76
74
|
image = require('./LogBoxImages/alert-triangle.png');
|
|
77
75
|
color = LogBoxStyle.getErrorColor(1);
|
|
@@ -82,7 +80,7 @@ function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
|
|
|
82
80
|
break;
|
|
83
81
|
}
|
|
84
82
|
|
|
85
|
-
if (
|
|
83
|
+
if (status === 'COMPLETE' || image == null) {
|
|
86
84
|
return null;
|
|
87
85
|
}
|
|
88
86
|
|
|
@@ -93,14 +91,14 @@ function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
|
|
|
93
91
|
pressed: LogBoxStyle.getBackgroundColor(1),
|
|
94
92
|
}}
|
|
95
93
|
hitSlop={{bottom: 8, left: 8, right: 8, top: 8}}
|
|
96
|
-
onPress={
|
|
94
|
+
onPress={onPress}
|
|
97
95
|
style={styles.root}>
|
|
98
96
|
<Animated.Image
|
|
99
97
|
source={image}
|
|
100
98
|
style={[
|
|
101
99
|
styles.image,
|
|
102
100
|
{tintColor: color},
|
|
103
|
-
state.rotate == null ||
|
|
101
|
+
state.rotate == null || status !== 'PENDING'
|
|
104
102
|
? null
|
|
105
103
|
: {transform: [{rotate: state.rotate}]},
|
|
106
104
|
]}
|
|
@@ -19,12 +19,10 @@ import * as LogBoxStyle from './LogBoxStyle';
|
|
|
19
19
|
import * as React from 'react';
|
|
20
20
|
import {useEffect, useState} from 'react';
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
component LogBoxInspectorSourceMapStatus(
|
|
23
23
|
onPress?: ?(event: GestureResponderEvent) => void,
|
|
24
24
|
status: 'COMPLETE' | 'FAILED' | 'NONE' | 'PENDING',
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
|
|
25
|
+
) {
|
|
28
26
|
// [Win32] Dont use Animated
|
|
29
27
|
/*
|
|
30
28
|
const [state, setState] = useState({
|
|
@@ -33,7 +31,7 @@ function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
|
|
|
33
31
|
});
|
|
34
32
|
|
|
35
33
|
useEffect(() => {
|
|
36
|
-
if (
|
|
34
|
+
if (status === 'PENDING') {
|
|
37
35
|
if (state.animation == null) {
|
|
38
36
|
const animated = new Animated.Value(0);
|
|
39
37
|
const animation = Animated.loop(
|
|
@@ -69,12 +67,12 @@ function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
|
|
|
69
67
|
state.animation.stop();
|
|
70
68
|
}
|
|
71
69
|
};
|
|
72
|
-
}, [
|
|
70
|
+
}, [status, state.animation]);
|
|
73
71
|
|
|
74
72
|
let image;
|
|
75
73
|
*/
|
|
76
74
|
let color;
|
|
77
|
-
switch (
|
|
75
|
+
switch (status) {
|
|
78
76
|
case 'FAILED':
|
|
79
77
|
// image = require('./LogBoxImages/alert-triangle.png'); // [win32] Dont use LogBox images
|
|
80
78
|
color = LogBoxStyle.getErrorColor(1);
|
|
@@ -87,10 +85,10 @@ function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
|
|
|
87
85
|
return null; // [Win32]
|
|
88
86
|
}
|
|
89
87
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
// [Win32] 'COMPLETE' and 'NONE' are already handled by the switch default
|
|
89
|
+
// above (which returns null), so status is narrowed to 'FAILED' | 'PENDING'
|
|
90
|
+
// here. The upstream `if (status === 'COMPLETE' || image == null)` check is
|
|
91
|
+
// therefore dead code on Win32 and is omitted.
|
|
94
92
|
return (
|
|
95
93
|
<LogBoxButton
|
|
96
94
|
backgroundColor={{
|
|
@@ -98,7 +96,7 @@ function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
|
|
|
98
96
|
pressed: LogBoxStyle.getBackgroundColor(1),
|
|
99
97
|
}}
|
|
100
98
|
hitSlop={{bottom: 8, left: 8, right: 8, top: 8}}
|
|
101
|
-
onPress={
|
|
99
|
+
onPress={onPress}
|
|
102
100
|
style={styles.root}>
|
|
103
101
|
{/* [Win32] Avoid Animated usage
|
|
104
102
|
<Animated.Image
|
|
@@ -106,7 +104,7 @@ function LogBoxInspectorSourceMapStatus(props: Props): React.Node {
|
|
|
106
104
|
style={[
|
|
107
105
|
styles.image,
|
|
108
106
|
{tintColor: color},
|
|
109
|
-
state.rotate == null ||
|
|
107
|
+
state.rotate == null || status !== 'PENDING'
|
|
110
108
|
? null
|
|
111
109
|
: {transform: [{rotate: state.rotate}]},
|
|
112
110
|
]}
|
|
@@ -19,13 +19,10 @@ import LogBoxButton from './LogBoxButton';
|
|
|
19
19
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
20
20
|
import * as React from 'react';
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
component LogBoxInspectorStackFrame(
|
|
23
23
|
frame: StackFrame,
|
|
24
24
|
onPress?: ?(event: GestureResponderEvent) => void,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
function LogBoxInspectorStackFrame(props: Props): React.Node {
|
|
28
|
-
const {frame, onPress} = props;
|
|
25
|
+
) {
|
|
29
26
|
const column = frame.column != null && parseInt(frame.column, 10);
|
|
30
27
|
const location =
|
|
31
28
|
getFileName(frame.file) +
|
|
@@ -90,7 +87,12 @@ const styles = StyleSheet.create({
|
|
|
90
87
|
includeFontPadding: false,
|
|
91
88
|
lineHeight: 18,
|
|
92
89
|
fontWeight: '400',
|
|
93
|
-
fontFamily: Platform.select({
|
|
90
|
+
fontFamily: Platform.select({
|
|
91
|
+
android: 'monospace',
|
|
92
|
+
ios: 'Menlo',
|
|
93
|
+
macos: 'Menlo',
|
|
94
|
+
windows: 'Consolas',
|
|
95
|
+
}),
|
|
94
96
|
},
|
|
95
97
|
location: {
|
|
96
98
|
color: LogBoxStyle.getTextColor(0.8),
|
|
@@ -19,13 +19,10 @@ import LogBoxButton from './LogBoxButton';
|
|
|
19
19
|
import * as LogBoxStyle from './LogBoxStyle';
|
|
20
20
|
import * as React from 'react';
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
component LogBoxInspectorStackFrame(
|
|
23
23
|
frame: StackFrame,
|
|
24
24
|
onPress?: ?(event: GestureResponderEvent) => void,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
function LogBoxInspectorStackFrame(props: Props): React.Node {
|
|
28
|
-
const {frame, onPress} = props;
|
|
25
|
+
) {
|
|
29
26
|
const column = frame.column != null && parseInt(frame.column, 10);
|
|
30
27
|
const location =
|
|
31
28
|
getFileName(frame.file) +
|
|
@@ -93,6 +90,7 @@ const styles = StyleSheet.create({
|
|
|
93
90
|
fontFamily: Platform.select({
|
|
94
91
|
android: 'monospace',
|
|
95
92
|
ios: 'Menlo',
|
|
93
|
+
macos: 'Menlo',
|
|
96
94
|
win32: 'Consolas',
|
|
97
95
|
}),
|
|
98
96
|
},
|
|
@@ -24,11 +24,6 @@ import * as LogBoxStyle from './LogBoxStyle';
|
|
|
24
24
|
import * as React from 'react';
|
|
25
25
|
import {useState} from 'react';
|
|
26
26
|
|
|
27
|
-
type Props = $ReadOnly<{
|
|
28
|
-
log: LogBoxLog,
|
|
29
|
-
onRetry: () => void,
|
|
30
|
-
}>;
|
|
31
|
-
|
|
32
27
|
export function getCollapseMessage(
|
|
33
28
|
stackFrames: Stack,
|
|
34
29
|
collapsed: boolean,
|
|
@@ -65,21 +60,21 @@ export function getCollapseMessage(
|
|
|
65
60
|
}
|
|
66
61
|
}
|
|
67
62
|
|
|
68
|
-
|
|
63
|
+
component LogBoxInspectorStackFrames(log: LogBoxLog, onRetry: () => void) {
|
|
69
64
|
const [collapsed, setCollapsed] = useState(() => {
|
|
70
65
|
// Only collapse frames initially if some frames are not collapsed.
|
|
71
|
-
return
|
|
66
|
+
return log.getAvailableStack().some(({collapse}) => !collapse);
|
|
72
67
|
});
|
|
73
68
|
|
|
74
69
|
function getStackList() {
|
|
75
70
|
if (collapsed === true) {
|
|
76
|
-
return
|
|
71
|
+
return log.getAvailableStack().filter(({collapse}) => !collapse);
|
|
77
72
|
} else {
|
|
78
|
-
return
|
|
73
|
+
return log.getAvailableStack();
|
|
79
74
|
}
|
|
80
75
|
}
|
|
81
76
|
|
|
82
|
-
if (
|
|
77
|
+
if (log.getAvailableStack().length === 0) {
|
|
83
78
|
return null;
|
|
84
79
|
}
|
|
85
80
|
|
|
@@ -88,13 +83,11 @@ function LogBoxInspectorStackFrames(props: Props): React.Node {
|
|
|
88
83
|
heading="Call Stack"
|
|
89
84
|
action={
|
|
90
85
|
<LogBoxInspectorSourceMapStatus
|
|
91
|
-
onPress={
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
status={props.log.symbolicated.status}
|
|
86
|
+
onPress={log.symbolicated.status === 'FAILED' ? onRetry : null}
|
|
87
|
+
status={log.symbolicated.status}
|
|
95
88
|
/>
|
|
96
89
|
}>
|
|
97
|
-
{
|
|
90
|
+
{log.symbolicated.status !== 'COMPLETE' && (
|
|
98
91
|
<View style={stackStyles.hintBox}>
|
|
99
92
|
<Text style={stackStyles.hintText}>
|
|
100
93
|
This call stack is not symbolicated. Some features are unavailable
|
|
@@ -102,32 +95,29 @@ function LogBoxInspectorStackFrames(props: Props): React.Node {
|
|
|
102
95
|
</Text>
|
|
103
96
|
</View>
|
|
104
97
|
)}
|
|
105
|
-
<StackFrameList
|
|
106
|
-
list={getStackList()}
|
|
107
|
-
status={props.log.symbolicated.status}
|
|
108
|
-
/>
|
|
98
|
+
<StackFrameList list={getStackList()} status={log.symbolicated.status} />
|
|
109
99
|
<StackFrameFooter
|
|
110
100
|
onPress={() => setCollapsed(!collapsed)}
|
|
111
|
-
message={getCollapseMessage(
|
|
101
|
+
message={getCollapseMessage(log.getAvailableStack(), collapsed)}
|
|
112
102
|
/>
|
|
113
103
|
</LogBoxInspectorSection>
|
|
114
104
|
);
|
|
115
105
|
}
|
|
116
106
|
|
|
117
|
-
|
|
107
|
+
component StackFrameList(
|
|
118
108
|
list: Stack | Array<StackFrame>,
|
|
119
109
|
status: string | 'COMPLETE' | 'FAILED' | 'NONE' | 'PENDING',
|
|
120
|
-
|
|
110
|
+
) {
|
|
121
111
|
return (
|
|
122
112
|
<>
|
|
123
|
-
{
|
|
113
|
+
{list.map((frame, index) => {
|
|
124
114
|
const {file, lineNumber} = frame;
|
|
125
115
|
return (
|
|
126
116
|
<LogBoxInspectorStackFrame
|
|
127
117
|
key={index}
|
|
128
118
|
frame={frame}
|
|
129
119
|
onPress={
|
|
130
|
-
|
|
120
|
+
status === 'COMPLETE' && file != null && lineNumber != null
|
|
131
121
|
? () => openFileInEditor(file, lineNumber)
|
|
132
122
|
: null
|
|
133
123
|
}
|
|
@@ -138,9 +128,7 @@ function StackFrameList(props: {
|
|
|
138
128
|
);
|
|
139
129
|
}
|
|
140
130
|
|
|
141
|
-
|
|
142
|
-
props: $ReadOnly<{message: string, onPress: () => void}>,
|
|
143
|
-
) {
|
|
131
|
+
component StackFrameFooter(message: string, onPress: () => void) {
|
|
144
132
|
return (
|
|
145
133
|
<View style={stackStyles.collapseContainer}>
|
|
146
134
|
<LogBoxButton
|
|
@@ -148,9 +136,9 @@ function StackFrameFooter(
|
|
|
148
136
|
default: 'transparent',
|
|
149
137
|
pressed: LogBoxStyle.getBackgroundColor(1),
|
|
150
138
|
}}
|
|
151
|
-
onPress={
|
|
139
|
+
onPress={onPress}
|
|
152
140
|
style={stackStyles.collapseButton}>
|
|
153
|
-
<Text style={stackStyles.collapse}>{
|
|
141
|
+
<Text style={stackStyles.collapse}>{message}</Text>
|
|
154
142
|
</LogBoxButton>
|
|
155
143
|
</View>
|
|
156
144
|
);
|