react-native-inapp-inspector 2.4.1 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ar.md +163 -0
- package/README.de.md +163 -0
- package/README.es.md +164 -0
- package/README.fr.md +163 -0
- package/README.hi.md +163 -0
- package/README.ja.md +180 -0
- package/README.ko.md +163 -0
- package/README.md +340 -243
- package/README.pt-BR.md +163 -0
- package/README.ru.md +163 -0
- package/README.zh-CN.md +387 -0
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +605 -23
- package/assets/banner_dark.svg +186 -0
- package/assets/banner_light.svg +186 -0
- package/assets/icon_circle.svg +148 -0
- package/assets/icon_square.svg +369 -0
- package/assets/inapp_inspector_icon.gif +0 -0
- package/assets/inapp_inspector_icon_original.gif +0 -0
- package/assets/social_preview.png +0 -0
- package/assets/walkthrough.gif +0 -0
- package/dist/commonjs/capture.d.ts +2 -0
- package/dist/commonjs/capture.js +1 -1
- package/dist/commonjs/components/AnalyticsDetail.js +23 -23
- package/dist/commonjs/components/AnalyticsEventCard.js +1 -1
- package/dist/commonjs/components/AnalyticsGraph.js +44 -44
- package/dist/commonjs/components/AnimatedBrandOwl.d.ts +7 -0
- package/dist/commonjs/components/AnimatedBrandOwl.js +175 -0
- package/dist/commonjs/components/AppHeaderLogo.d.ts +1 -0
- package/dist/commonjs/components/AppHeaderLogo.js +5 -3
- package/dist/commonjs/components/BrandCircleIcon.js +28 -28
- package/dist/commonjs/components/BrandSquareIcon.d.ts +5 -0
- package/dist/commonjs/components/BrandSquareIcon.js +139 -0
- package/dist/commonjs/components/ConsoleLogCard.d.ts +2 -1
- package/dist/commonjs/components/ConsoleLogCard.js +23 -39
- package/dist/commonjs/components/Inspector/AboutModal.js +44 -54
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +6 -6
- package/dist/commonjs/components/Inspector/ConfirmationModal.d.ts +13 -0
- package/dist/commonjs/components/Inspector/ConfirmationModal.js +30 -0
- package/dist/commonjs/components/Inspector/ConsoleTab.js +12 -12
- package/dist/commonjs/components/Inspector/CrashTab.js +44 -9
- package/dist/commonjs/components/Inspector/DebuggingTab.js +17 -17
- package/dist/commonjs/components/Inspector/DeviceInfoTab.js +1 -1
- package/dist/commonjs/components/Inspector/FabLauncher.js +30 -33
- package/dist/commonjs/components/Inspector/FeatureUnderDevNotice.js +2 -2
- package/dist/commonjs/components/Inspector/FloatingCaptureWidget.d.ts +3 -0
- package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +54 -0
- package/dist/commonjs/components/Inspector/GlobalCrashScreenModal.d.ts +11 -0
- package/dist/commonjs/components/Inspector/GlobalCrashScreenModal.js +234 -0
- package/dist/commonjs/components/Inspector/InspectorHeader.js +137 -127
- package/dist/commonjs/components/Inspector/LanguageSelectorModal.d.ts +15 -0
- package/dist/commonjs/components/Inspector/LanguageSelectorModal.js +172 -0
- package/dist/commonjs/components/Inspector/MainScreen.js +55 -35
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +40 -35
- package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +36 -0
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +341 -135
- package/dist/commonjs/components/Inspector/NetworkTab.js +50 -50
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +1 -1
- package/dist/commonjs/components/Inspector/PushCard.d.ts +3 -2
- package/dist/commonjs/components/Inspector/PushCard.js +5 -4
- package/dist/commonjs/components/Inspector/PushDetail.js +41 -32
- package/dist/commonjs/components/Inspector/PushTab.js +12 -12
- package/dist/commonjs/components/Inspector/ReduxDetail.js +32 -32
- package/dist/commonjs/components/Inspector/ReduxTab.js +10 -8
- package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.d.ts +2 -0
- package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.js +43 -0
- package/dist/commonjs/components/Inspector/SettingsPanel.js +287 -139
- package/dist/commonjs/components/Inspector/SocketCard.d.ts +5 -0
- package/dist/commonjs/components/Inspector/SocketCard.js +116 -0
- package/dist/commonjs/components/Inspector/SocketDetail.d.ts +4 -0
- package/dist/commonjs/components/Inspector/SocketDetail.js +327 -0
- package/dist/commonjs/components/Inspector/SocketFilterModal.d.ts +13 -0
- package/dist/commonjs/components/Inspector/SocketFilterModal.js +69 -0
- package/dist/commonjs/components/Inspector/SocketTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/SocketTab.js +112 -0
- package/dist/commonjs/components/Inspector/StorageTab.js +39 -37
- package/dist/commonjs/components/Inspector/SupportModal.d.ts +7 -0
- package/dist/commonjs/components/Inspector/SupportModal.js +125 -0
- package/dist/commonjs/components/Inspector/SupportPage.d.ts +5 -0
- package/dist/commonjs/components/Inspector/SupportPage.js +227 -0
- package/dist/commonjs/components/Inspector/TabBar.js +24 -23
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +24 -24
- package/dist/commonjs/components/JsonViewer.js +50 -48
- package/dist/commonjs/components/LogCard.d.ts +3 -2
- package/dist/commonjs/components/LogCard.js +27 -25
- package/dist/commonjs/components/LogSyntaxHighlighter.js +5 -5
- package/dist/commonjs/components/ModuleErrorBoundary.js +5 -5
- package/dist/commonjs/components/NetworkIcons.d.ts +42 -0
- package/dist/commonjs/components/NetworkIcons.js +139 -6
- package/dist/commonjs/components/SegmentedTabs.js +1 -1
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/crash.d.ts +1 -1
- package/dist/commonjs/crash.js +1 -1
- package/dist/commonjs/customHooks/crashHandler.d.ts +2 -1
- package/dist/commonjs/customHooks/crashHandler.js +7 -7
- package/dist/commonjs/customHooks/socketLogger.d.ts +26 -0
- package/dist/commonjs/customHooks/socketLogger.js +2 -0
- package/dist/commonjs/editor.d.ts +13 -0
- package/dist/commonjs/editor.js +1 -0
- package/dist/commonjs/helpers/index.d.ts +1 -0
- package/dist/commonjs/helpers/index.js +3 -3
- package/dist/commonjs/helpers/memoryManager.d.ts +1 -0
- package/dist/commonjs/helpers/memoryManager.js +1 -1
- package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -1
- package/dist/commonjs/helpers/searchQueryParser.js +5 -1
- package/dist/commonjs/helpers/settingsStore.d.ts +1 -0
- package/dist/commonjs/helpers/settingsStore.js +1 -1
- package/dist/commonjs/helpers/shareFormatter.d.ts +3 -1
- package/dist/commonjs/helpers/shareFormatter.js +8 -7
- package/dist/commonjs/helpers/telemetry.js +1 -1
- package/dist/commonjs/i18n/index.d.ts +99 -1
- package/dist/commonjs/i18n/index.js +1 -1
- package/dist/commonjs/i18n/locales/ar.json +1 -1
- package/dist/commonjs/i18n/locales/bn.json +1 -0
- package/dist/commonjs/i18n/locales/de.json +1 -1
- package/dist/commonjs/i18n/locales/en.json +1 -1
- package/dist/commonjs/i18n/locales/es.json +1 -1
- package/dist/commonjs/i18n/locales/fr.json +1 -1
- package/dist/commonjs/i18n/locales/gu.json +1 -0
- package/dist/commonjs/i18n/locales/hi.json +1 -1
- package/dist/commonjs/i18n/locales/id.json +1 -0
- package/dist/commonjs/i18n/locales/it.json +1 -0
- package/dist/commonjs/i18n/locales/ja.json +1 -1
- package/dist/commonjs/i18n/locales/kn.json +1 -0
- package/dist/commonjs/i18n/locales/ko.json +1 -1
- package/dist/commonjs/i18n/locales/ml.json +1 -0
- package/dist/commonjs/i18n/locales/mr.json +1 -0
- package/dist/commonjs/i18n/locales/nl.json +1 -0
- package/dist/commonjs/i18n/locales/pa.json +1 -0
- package/dist/commonjs/i18n/locales/pl.json +1 -0
- package/dist/commonjs/i18n/locales/pt.json +1 -1
- package/dist/commonjs/i18n/locales/ru.json +1 -1
- package/dist/commonjs/i18n/locales/ta.json +1 -0
- package/dist/commonjs/i18n/locales/te.json +1 -0
- package/dist/commonjs/i18n/locales/tr.json +1 -0
- package/dist/commonjs/i18n/locales/vi.json +1 -0
- package/dist/commonjs/i18n/locales/zh.json +1 -1
- package/dist/commonjs/index.d.ts +16 -13
- package/dist/commonjs/index.js +5 -4
- package/dist/commonjs/native/NativeInspector.d.ts +4 -0
- package/dist/commonjs/native/NativeInspector.js +1 -1
- package/dist/commonjs/native/NativeNetworkInspector.d.ts +4 -0
- package/dist/commonjs/socket.d.ts +4 -0
- package/dist/commonjs/socket.js +1 -0
- package/dist/commonjs/styles/AppColors.d.ts +42 -2
- package/dist/commonjs/styles/AppColors.js +1 -1
- package/dist/commonjs/styles/common.js +1 -1
- package/dist/commonjs/styles/index.d.ts +30 -0
- package/dist/commonjs/styles/index.js +1 -1
- package/dist/commonjs/types/editor.d.ts +96 -0
- package/dist/commonjs/types/editor.js +1 -0
- package/dist/commonjs/types/enums.d.ts +40 -0
- package/dist/commonjs/types/enums.js +1 -1
- package/dist/commonjs/types/interfaces.d.ts +143 -1
- package/dist/esm/capture.d.ts +2 -0
- package/dist/esm/capture.js +1 -1
- package/dist/esm/components/AnalyticsDetail.js +31 -31
- package/dist/esm/components/AnalyticsEventCard.js +1 -1
- package/dist/esm/components/AnalyticsGraph.js +74 -74
- package/dist/esm/components/AnimatedBrandOwl.d.ts +7 -0
- package/dist/esm/components/AnimatedBrandOwl.js +175 -0
- package/dist/esm/components/AppHeaderLogo.d.ts +1 -0
- package/dist/esm/components/AppHeaderLogo.js +7 -5
- package/dist/esm/components/BrandCircleIcon.js +70 -70
- package/dist/esm/components/BrandSquareIcon.d.ts +5 -0
- package/dist/esm/components/BrandSquareIcon.js +139 -0
- package/dist/esm/components/ConsoleLogCard.d.ts +2 -1
- package/dist/esm/components/ConsoleLogCard.js +61 -77
- package/dist/esm/components/Inspector/AboutModal.js +85 -95
- package/dist/esm/components/Inspector/AnalyticsTab.js +24 -24
- package/dist/esm/components/Inspector/ConfirmationModal.d.ts +13 -0
- package/dist/esm/components/Inspector/ConfirmationModal.js +30 -0
- package/dist/esm/components/Inspector/ConsoleTab.js +48 -48
- package/dist/esm/components/Inspector/CrashTab.js +203 -168
- package/dist/esm/components/Inspector/DebuggingTab.js +29 -29
- package/dist/esm/components/Inspector/DeviceInfoTab.js +75 -75
- package/dist/esm/components/Inspector/FabLauncher.js +57 -60
- package/dist/esm/components/Inspector/FeatureUnderDevNotice.js +7 -7
- package/dist/esm/components/Inspector/FloatingCaptureWidget.d.ts +3 -0
- package/dist/esm/components/Inspector/FloatingCaptureWidget.js +54 -0
- package/dist/esm/components/Inspector/GlobalCrashScreenModal.d.ts +11 -0
- package/dist/esm/components/Inspector/GlobalCrashScreenModal.js +234 -0
- package/dist/esm/components/Inspector/InspectorHeader.js +162 -152
- package/dist/esm/components/Inspector/LanguageSelectorModal.d.ts +15 -0
- package/dist/esm/components/Inspector/LanguageSelectorModal.js +172 -0
- package/dist/esm/components/Inspector/MainScreen.js +130 -110
- package/dist/esm/components/Inspector/MediaGalleryTab.js +83 -78
- package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +36 -0
- package/dist/esm/components/Inspector/MediaPreviewModal.js +345 -139
- package/dist/esm/components/Inspector/NetworkTab.js +130 -130
- package/dist/esm/components/Inspector/NpmUpdateToast.js +1 -1
- package/dist/esm/components/Inspector/PushCard.d.ts +3 -2
- package/dist/esm/components/Inspector/PushCard.js +23 -22
- package/dist/esm/components/Inspector/PushDetail.js +45 -36
- package/dist/esm/components/Inspector/PushTab.js +23 -23
- package/dist/esm/components/Inspector/ReduxDetail.js +42 -42
- package/dist/esm/components/Inspector/ReduxTab.js +20 -18
- package/dist/esm/components/Inspector/SecondaryTelemetryStrip.d.ts +2 -0
- package/dist/esm/components/Inspector/SecondaryTelemetryStrip.js +43 -0
- package/dist/esm/components/Inspector/SettingsPanel.js +526 -378
- package/dist/esm/components/Inspector/SocketCard.d.ts +5 -0
- package/dist/esm/components/Inspector/SocketCard.js +116 -0
- package/dist/esm/components/Inspector/SocketDetail.d.ts +4 -0
- package/dist/esm/components/Inspector/SocketDetail.js +327 -0
- package/dist/esm/components/Inspector/SocketFilterModal.d.ts +13 -0
- package/dist/esm/components/Inspector/SocketFilterModal.js +69 -0
- package/dist/esm/components/Inspector/SocketTab.d.ts +3 -0
- package/dist/esm/components/Inspector/SocketTab.js +112 -0
- package/dist/esm/components/Inspector/StorageTab.js +139 -137
- package/dist/esm/components/Inspector/SupportModal.d.ts +7 -0
- package/dist/esm/components/Inspector/SupportModal.js +125 -0
- package/dist/esm/components/Inspector/SupportPage.d.ts +5 -0
- package/dist/esm/components/Inspector/SupportPage.js +227 -0
- package/dist/esm/components/Inspector/TabBar.js +36 -35
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +22 -22
- package/dist/esm/components/JsonViewer.js +66 -64
- package/dist/esm/components/LogCard.d.ts +3 -2
- package/dist/esm/components/LogCard.js +57 -55
- package/dist/esm/components/LogSyntaxHighlighter.js +5 -5
- package/dist/esm/components/ModuleErrorBoundary.js +23 -23
- package/dist/esm/components/NetworkIcons.d.ts +42 -0
- package/dist/esm/components/NetworkIcons.js +139 -6
- package/dist/esm/components/SegmentedTabs.js +7 -7
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/crash.d.ts +1 -1
- package/dist/esm/crash.js +1 -1
- package/dist/esm/customHooks/crashHandler.d.ts +2 -1
- package/dist/esm/customHooks/crashHandler.js +7 -7
- package/dist/esm/customHooks/socketLogger.d.ts +26 -0
- package/dist/esm/customHooks/socketLogger.js +2 -0
- package/dist/esm/editor.d.ts +13 -0
- package/dist/esm/editor.js +1 -0
- package/dist/esm/helpers/index.d.ts +1 -0
- package/dist/esm/helpers/index.js +4 -4
- package/dist/esm/helpers/memoryManager.d.ts +1 -0
- package/dist/esm/helpers/memoryManager.js +1 -1
- package/dist/esm/helpers/searchQueryParser.d.ts +1 -1
- package/dist/esm/helpers/searchQueryParser.js +5 -1
- package/dist/esm/helpers/settingsStore.d.ts +1 -0
- package/dist/esm/helpers/settingsStore.js +1 -1
- package/dist/esm/helpers/shareFormatter.d.ts +3 -1
- package/dist/esm/helpers/shareFormatter.js +8 -7
- package/dist/esm/helpers/telemetry.js +1 -1
- package/dist/esm/i18n/index.d.ts +99 -1
- package/dist/esm/i18n/index.js +1 -1
- package/dist/esm/i18n/locales/ar.json +1 -1
- package/dist/esm/i18n/locales/bn.json +1 -0
- package/dist/esm/i18n/locales/de.json +1 -1
- package/dist/esm/i18n/locales/en.json +1 -1
- package/dist/esm/i18n/locales/es.json +1 -1
- package/dist/esm/i18n/locales/fr.json +1 -1
- package/dist/esm/i18n/locales/gu.json +1 -0
- package/dist/esm/i18n/locales/hi.json +1 -1
- package/dist/esm/i18n/locales/id.json +1 -0
- package/dist/esm/i18n/locales/it.json +1 -0
- package/dist/esm/i18n/locales/ja.json +1 -1
- package/dist/esm/i18n/locales/kn.json +1 -0
- package/dist/esm/i18n/locales/ko.json +1 -1
- package/dist/esm/i18n/locales/ml.json +1 -0
- package/dist/esm/i18n/locales/mr.json +1 -0
- package/dist/esm/i18n/locales/nl.json +1 -0
- package/dist/esm/i18n/locales/pa.json +1 -0
- package/dist/esm/i18n/locales/pl.json +1 -0
- package/dist/esm/i18n/locales/pt.json +1 -1
- package/dist/esm/i18n/locales/ru.json +1 -1
- package/dist/esm/i18n/locales/ta.json +1 -0
- package/dist/esm/i18n/locales/te.json +1 -0
- package/dist/esm/i18n/locales/tr.json +1 -0
- package/dist/esm/i18n/locales/vi.json +1 -0
- package/dist/esm/i18n/locales/zh.json +1 -1
- package/dist/esm/index.d.ts +16 -13
- package/dist/esm/index.js +8 -7
- package/dist/esm/native/NativeInspector.d.ts +4 -0
- package/dist/esm/native/NativeInspector.js +1 -1
- package/dist/esm/native/NativeNetworkInspector.d.ts +4 -0
- package/dist/esm/socket.d.ts +4 -0
- package/dist/esm/socket.js +1 -0
- package/dist/esm/styles/AppColors.d.ts +42 -2
- package/dist/esm/styles/AppColors.js +1 -1
- package/dist/esm/styles/common.js +1 -1
- package/dist/esm/styles/index.d.ts +30 -0
- package/dist/esm/styles/index.js +1 -1
- package/dist/esm/types/editor.d.ts +96 -0
- package/dist/esm/types/editor.js +1 -0
- package/dist/esm/types/enums.d.ts +40 -0
- package/dist/esm/types/enums.js +1 -1
- package/dist/esm/types/interfaces.d.ts +143 -1
- package/editor.d.ts +1 -0
- package/editor.js +1 -0
- package/ios/NetworkInspectorModule.mm +531 -12
- package/package.json +213 -2
- package/react-native-inapp-inspector.podspec +1 -1
- package/src/native/NativeInspector.ts +65 -4
- package/src/native/NativeNetworkInspector.ts +4 -0
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import
|
|
1
|
+
import U,{useMemo as j,useState as J}from"react";import{Image as K,ScrollView as P,StyleSheet as E,Text as T,View as C}from"react-native";import I from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as V}from"../../styles/AppFonts";import{useTranslation as _}from"../../i18n";import{formatDateTime as Y}from"../../helpers";import{sharePushReport as q}from"../../helpers/shareFormatter";import G from"../ShareButton";import R from"../CopyButton";import F from"../JsonViewer";import Q from"../SegmentedTabs";import{BellIcon as X,ClockIcon as Z,CloudPushIcon as Te,EyeIcon as Ce,LayersIcon as Ve,MetadataIcon as Se,RawJsonIcon as Be,LinkChainIcon as Ie,VolumeIcon as De,BoltIcon as Pe,BuildingIcon as Re,SettingsIcon as Fe}from"../NetworkIcons";const A=U.memo(function({item:o}){const{t:S}=_(),[z,N]=J("preview"),v=j(()=>o?Y(o.timestamp):"",[o]);if(!o)return null;const W=async()=>{await q(o)},H=[{key:"preview",label:S("push.preview","Preview"),themeColor:e.brandPurple,icon:B=><Ce size={12}color={B?e.white:e.grayText}/>},{key:"payload",label:S("push.payload","Custom Payload"),themeColor:e.violet600,icon:B=><Ve size={12}color={B?e.white:e.grayText}/>},{key:"headers",label:S("push.deliveryMetadata","Delivery Metadata"),themeColor:e.teal600,icon:B=><Se size={12}color={B?e.white:e.grayText}/>},{key:"raw",label:S("push.rawPayload","Raw Payload"),themeColor:e.sky600,icon:B=><Be size={12}color={B?e.white:e.grayText}/>}],O=(o.source||"PUSH").toUpperCase(),L=(o.appState||"STATE").toUpperCase(),$=!!(o.data?.deepLink||o.data?.openDirectUrl||o.data?._od||o.customDomainAttributes?.openDirectUrl),M=o.data?.deepLink||o.data?.openDirectUrl||o.data?._od||o.customDomainAttributes?.openDirectUrl||"";return<C style={{flex:1}}>
|
|
2
2
|
|
|
3
3
|
<C style={{paddingHorizontal:8,paddingTop:4}}>
|
|
4
|
-
<C style={
|
|
4
|
+
<C style={I.detailInfoBar}>
|
|
5
5
|
|
|
6
6
|
<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:6,paddingBottom:8,borderBottomWidth:1,borderBottomColor:e.dividerColor}}>
|
|
7
7
|
<C style={{flexDirection:"row",alignItems:"center",gap:5,flexWrap:"wrap",flex:1}}>
|
|
8
8
|
|
|
9
|
-
<C style={[
|
|
9
|
+
<C style={[I.methodBadge,{backgroundColor:e.brandPurple,paddingHorizontal:8,paddingVertical:3.5,borderRadius:6,flexDirection:"row",alignItems:"center",gap:4}]}>
|
|
10
10
|
<Te size={10}color={e.white}/>
|
|
11
|
-
<T style={[
|
|
11
|
+
<T style={[I.methodBadgeText,{color:e.white,fontSize:10.5,fontFamily:V.interBold}]}>
|
|
12
12
|
{O}
|
|
13
13
|
</T>
|
|
14
14
|
</C>
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
<C style={[
|
|
18
|
-
<T style={[
|
|
17
|
+
<C style={[I.chip,{backgroundColor:o.appState==="foreground"?`${e.greenColor}18`:`${e.amber600}18`,borderColor:o.appState==="foreground"?`${e.greenColor}40`:`${e.amber600}40`,paddingHorizontal:6,paddingVertical:3,borderRadius:6}]}>
|
|
18
|
+
<T style={[I.chipText,{fontFamily:V.interBold,fontSize:9.5,color:o.appState==="foreground"?e.greenColor:e.amber700}]}>
|
|
19
19
|
{L}
|
|
20
20
|
</T>
|
|
21
21
|
</C>
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
{o.action&&<C style={[
|
|
25
|
-
<T style={[
|
|
24
|
+
{o.action&&<C style={[I.chip,{backgroundColor:`${e.purple}14`,borderColor:`${e.purple}30`,paddingHorizontal:6,paddingVertical:3,borderRadius:6}]}>
|
|
25
|
+
<T style={[I.chipText,{fontFamily:V.interBold,fontSize:9.5,color:e.purple}]}>
|
|
26
26
|
{o.action.toUpperCase()}
|
|
27
27
|
</T>
|
|
28
28
|
</C>}
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
<C style={[
|
|
31
|
+
<C style={[I.chip,{backgroundColor:`${e.brandPurple}10`,borderColor:`${e.brandPurple}25`,paddingHorizontal:7,paddingVertical:3,borderRadius:6,gap:4}]}>
|
|
32
32
|
<Z color={e.brandPurple}size={10}/>
|
|
33
|
-
<T style={[
|
|
34
|
-
{
|
|
33
|
+
<T style={[I.chipText,{color:e.brandPurple,fontFamily:V.interBold,fontSize:10.5}]}>
|
|
34
|
+
{v}
|
|
35
35
|
</T>
|
|
36
36
|
</C>
|
|
37
37
|
</C>
|
|
@@ -64,11 +64,12 @@ import j,{useMemo as M,useState as J}from"react";import{Image as K,ScrollView as
|
|
|
64
64
|
{o.body}
|
|
65
65
|
</T>:null}
|
|
66
66
|
{$?<C style={{flexDirection:"row",alignItems:"center",gap:4,marginTop:2}}>
|
|
67
|
+
<Ie size={11}color={e.brandPurple}/>
|
|
67
68
|
<T style={{fontSize:10,fontFamily:V.interBold,color:e.brandPurple}}>
|
|
68
|
-
|
|
69
|
+
{S("push.link","LINK")}:
|
|
69
70
|
</T>
|
|
70
71
|
<T style={{fontSize:10.5,fontFamily:V.interRegular,color:e.sky600}}numberOfLines={1}>
|
|
71
|
-
{
|
|
72
|
+
{M}
|
|
72
73
|
</T>
|
|
73
74
|
</C>:null}
|
|
74
75
|
</C>
|
|
@@ -78,7 +79,7 @@ import j,{useMemo as M,useState as J}from"react";import{Image as K,ScrollView as
|
|
|
78
79
|
|
|
79
80
|
|
|
80
81
|
<C style={{paddingHorizontal:8,paddingVertical:6}}>
|
|
81
|
-
<Q tabs={H}activeKey={z}onChange={
|
|
82
|
+
<Q tabs={H}activeKey={z}onChange={B=>N(B)}scrollable={!0}/>
|
|
82
83
|
</C>
|
|
83
84
|
|
|
84
85
|
|
|
@@ -91,9 +92,9 @@ import j,{useMemo as M,useState as J}from"react";import{Image as K,ScrollView as
|
|
|
91
92
|
<X size={12}color={e.white}/>
|
|
92
93
|
</C>
|
|
93
94
|
<T style={t.mockupAppName}>
|
|
94
|
-
{o.domain||"App Notification"}
|
|
95
|
+
{o.domain||S("push.appNotification","App Notification")}
|
|
95
96
|
</T>
|
|
96
|
-
<T style={t.mockupTime}>• now</T>
|
|
97
|
+
<T style={t.mockupTime}>• {S("push.now","now")}</T>
|
|
97
98
|
</C>
|
|
98
99
|
|
|
99
100
|
|
|
@@ -117,25 +118,30 @@ import j,{useMemo as M,useState as J}from"react";import{Image as K,ScrollView as
|
|
|
117
118
|
{o.channelId?<C style={t.tagPill}>
|
|
118
119
|
<T style={t.tagPillText}>Channel: {o.channelId}</T>
|
|
119
120
|
</C>:null}
|
|
120
|
-
{o.sound?<C style={t.tagPill}>
|
|
121
|
-
<
|
|
121
|
+
{o.sound?<C style={[t.tagPill,{flexDirection:"row",alignItems:"center",gap:4}]}>
|
|
122
|
+
<De size={11}color={e.violet600}/>
|
|
123
|
+
<T style={t.tagPillText}>{o.sound}</T>
|
|
122
124
|
</C>:null}
|
|
123
125
|
{o.badge!=null?<C style={t.tagPill}>
|
|
124
126
|
<T style={t.tagPillText}>Badge: {o.badge}</T>
|
|
125
127
|
</C>:null}
|
|
126
|
-
{o.priority?<C style={t.tagPill}>
|
|
127
|
-
<
|
|
128
|
+
{o.priority?<C style={[t.tagPill,{flexDirection:"row",alignItems:"center",gap:4}]}>
|
|
129
|
+
<Pe size={11}color={e.amber600}/>
|
|
130
|
+
<T style={t.tagPillText}>{o.priority}</T>
|
|
128
131
|
</C>:null}
|
|
129
132
|
</C>
|
|
130
133
|
</C>
|
|
131
134
|
|
|
132
135
|
|
|
133
136
|
{o.customDomainAttributes&&Object.keys(o.customDomainAttributes).length>0&&<C style={t.sectionCard}>
|
|
134
|
-
<
|
|
135
|
-
|
|
136
|
-
|
|
137
|
+
<C style={{flexDirection:"row",alignItems:"center",gap:6,marginBottom:8}}>
|
|
138
|
+
<Re size={13}color={e.blue600}/>
|
|
139
|
+
<T style={t.sectionTitle}>{S("push.domainFields","Domain Specific Fields")}</T>
|
|
140
|
+
</C>
|
|
141
|
+
{Object.entries(o.customDomainAttributes).map(([B,D])=><C key={B}style={t.keyValRow}>
|
|
142
|
+
<T style={t.keyText}>{B}:</T>
|
|
137
143
|
<T style={t.valText}numberOfLines={2}>
|
|
138
|
-
{typeof
|
|
144
|
+
{typeof D=="object"?JSON.stringify(D):String(D)}
|
|
139
145
|
</T>
|
|
140
146
|
</C>)}
|
|
141
147
|
</C>}
|
|
@@ -145,41 +151,44 @@ import j,{useMemo as M,useState as J}from"react";import{Image as K,ScrollView as
|
|
|
145
151
|
|
|
146
152
|
{z==="headers"&&<P contentContainerStyle={t.scrollContent}>
|
|
147
153
|
<C style={t.sectionCard}>
|
|
148
|
-
<
|
|
154
|
+
<C style={{flexDirection:"row",alignItems:"center",gap:6,marginBottom:8}}>
|
|
155
|
+
<Fe size={13}color={e.slate600}/>
|
|
156
|
+
<T style={t.sectionTitle}>{S("push.deliveryMetadata","Delivery & Message Metadata")}</T>
|
|
157
|
+
</C>
|
|
149
158
|
<C style={t.keyValRow}>
|
|
150
|
-
<T style={t.keyText}>Message ID
|
|
159
|
+
<T style={t.keyText}>{S("push.messageId","Message ID:")}</T>
|
|
151
160
|
<T style={t.valText}selectable>{o.id||"N/A"}</T>
|
|
152
161
|
</C>
|
|
153
162
|
<C style={t.keyValRow}>
|
|
154
|
-
<T style={t.keyText}>Source / Domain
|
|
163
|
+
<T style={t.keyText}>{S("push.sourceDomain","Source / Domain:")}</T>
|
|
155
164
|
<T style={t.valText}>{o.domain||o.source||"N/A"}</T>
|
|
156
165
|
</C>
|
|
157
166
|
<C style={t.keyValRow}>
|
|
158
|
-
<T style={t.keyText}>App State
|
|
167
|
+
<T style={t.keyText}>{S("push.appState","App State:")}</T>
|
|
159
168
|
<T style={t.valText}>{o.appState}</T>
|
|
160
169
|
</C>
|
|
161
170
|
<C style={t.keyValRow}>
|
|
162
|
-
<T style={t.keyText}>Action Type
|
|
171
|
+
<T style={t.keyText}>{S("push.actionType","Action Type:")}</T>
|
|
163
172
|
<T style={t.valText}>{o.action}</T>
|
|
164
173
|
</C>
|
|
165
174
|
<C style={t.keyValRow}>
|
|
166
|
-
<T style={t.keyText}>Timestamp
|
|
167
|
-
<T style={t.valText}>{
|
|
175
|
+
<T style={t.keyText}>{S("push.timestamp","Timestamp:")}</T>
|
|
176
|
+
<T style={t.valText}>{v}</T>
|
|
168
177
|
</C>
|
|
169
178
|
<C style={t.keyValRow}>
|
|
170
|
-
<T style={t.keyText}>Channel ID
|
|
179
|
+
<T style={t.keyText}>{S("push.channelId","Channel ID:")}</T>
|
|
171
180
|
<T style={t.valText}>{o.channelId||"default"}</T>
|
|
172
181
|
</C>
|
|
173
182
|
<C style={t.keyValRow}>
|
|
174
|
-
<T style={t.keyText}>Sound
|
|
183
|
+
<T style={t.keyText}>{S("push.sound","Sound:")}</T>
|
|
175
184
|
<T style={t.valText}>{o.sound||"default"}</T>
|
|
176
185
|
</C>
|
|
177
186
|
<C style={t.keyValRow}>
|
|
178
|
-
<T style={t.keyText}>Badge Count
|
|
187
|
+
<T style={t.keyText}>{S("push.badgeCount","Badge Count:")}</T>
|
|
179
188
|
<T style={t.valText}>{o.badge!=null?o.badge:"None"}</T>
|
|
180
189
|
</C>
|
|
181
190
|
<C style={t.keyValRow}>
|
|
182
|
-
<T style={t.keyText}>Collapse Key
|
|
191
|
+
<T style={t.keyText}>{S("push.collapseKey","Collapse Key:")}</T>
|
|
183
192
|
<T style={t.valText}>{o.collapseKey||"None"}</T>
|
|
184
193
|
</C>
|
|
185
194
|
</C>
|
|
@@ -187,4 +196,4 @@ import j,{useMemo as M,useState as J}from"react";import{Image as K,ScrollView as
|
|
|
187
196
|
|
|
188
197
|
{z==="raw"&&<F data={o.rawPayload||o}fullHeight={!0}/>}
|
|
189
198
|
</C>
|
|
190
|
-
</C>}),t=E.create({container:{flex:1,backgroundColor:e.white},headerBar:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:12,paddingVertical:10,borderBottomWidth:1,borderBottomColor:e.dividerColor,backgroundColor:e.white},headerLeft:{flexDirection:"row",alignItems:"center",gap:8,flex:1},backBtn:{width:32,height:32,borderRadius:8,backgroundColor:e.grayBackground,alignItems:"center",justifyContent:"center",borderWidth:1,borderColor:e.dividerColor},titleWrap:{flex:1,gap:2},badgeRow:{flexDirection:"row",alignItems:"center",gap:5},sourceBadge:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:`${e.brandPurple}14`,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,borderWidth:1,borderColor:`${e.brandPurple}30`},sourceBadgeText:{fontSize:9,fontFamily:V.interBold,color:e.brandPurple},stateBadge:{backgroundColor:`${e.greenColor}14`,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,borderWidth:1,borderColor:`${e.greenColor}30`},stateBadgeText:{fontSize:9,fontFamily:V.interBold,color:e.greenColor},headerTitle:{fontSize:13,fontFamily:V.interSemiBold,color:e.primaryBlack},headerActions:{flexDirection:"row",alignItems:"center",gap:6},tabsContainer:{paddingHorizontal:10,paddingVertical:6,backgroundColor:e.grayBackground,borderBottomWidth:1,borderBottomColor:e.dividerColor},bodyContainer:{flex:1},scrollContent:{padding:12,gap:12},mockupCard:{backgroundColor:e.white,borderRadius:14,borderWidth:1,borderColor:e.dividerColor,padding:14,gap:8,shadowColor:
|
|
199
|
+
</C>}),t=E.create({container:{flex:1,backgroundColor:e.white},headerBar:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:12,paddingVertical:10,borderBottomWidth:1,borderBottomColor:e.dividerColor,backgroundColor:e.white},headerLeft:{flexDirection:"row",alignItems:"center",gap:8,flex:1},backBtn:{width:32,height:32,borderRadius:8,backgroundColor:e.grayBackground,alignItems:"center",justifyContent:"center",borderWidth:1,borderColor:e.dividerColor},titleWrap:{flex:1,gap:2},badgeRow:{flexDirection:"row",alignItems:"center",gap:5},sourceBadge:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:`${e.brandPurple}14`,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,borderWidth:1,borderColor:`${e.brandPurple}30`},sourceBadgeText:{fontSize:9,fontFamily:V.interBold,color:e.brandPurple},stateBadge:{backgroundColor:`${e.greenColor}14`,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,borderWidth:1,borderColor:`${e.greenColor}30`},stateBadgeText:{fontSize:9,fontFamily:V.interBold,color:e.greenColor},headerTitle:{fontSize:13,fontFamily:V.interSemiBold,color:e.primaryBlack},headerActions:{flexDirection:"row",alignItems:"center",gap:6},tabsContainer:{paddingHorizontal:10,paddingVertical:6,backgroundColor:e.grayBackground,borderBottomWidth:1,borderBottomColor:e.dividerColor},bodyContainer:{flex:1},scrollContent:{padding:12,gap:12},mockupCard:{backgroundColor:e.white,borderRadius:14,borderWidth:1,borderColor:e.dividerColor,padding:14,gap:8,shadowColor:e.black,shadowOpacity:.05,shadowOffset:{width:0,height:2},shadowRadius:6,elevation:2},mockupHeader:{flexDirection:"row",alignItems:"center",gap:6},mockupAppIcon:{width:20,height:20,borderRadius:5,backgroundColor:e.brandPurple,alignItems:"center",justifyContent:"center"},mockupAppName:{fontSize:11,fontFamily:V.interSemiBold,color:e.primaryBlack,textTransform:"uppercase"},mockupTime:{fontSize:10,fontFamily:V.interRegular,color:e.grayTextWeak},mockupImage:{width:"100%",height:140,borderRadius:8,marginVertical:4},mockupTitle:{fontSize:14,fontFamily:V.interBold,color:e.primaryBlack},mockupSubtitle:{fontSize:12,fontFamily:V.interMedium,color:e.grayText},mockupBody:{fontSize:12.5,fontFamily:V.interRegular,color:e.grayText,lineHeight:18},mockupFooterTags:{flexDirection:"row",alignItems:"center",flexWrap:"wrap",gap:6,marginTop:6,paddingTop:8,borderTopWidth:1,borderTopColor:e.dividerColor},tagPill:{backgroundColor:e.grayBackground,paddingHorizontal:6,paddingVertical:3,borderRadius:4,borderWidth:1,borderColor:e.dividerColor},tagPillText:{fontSize:10,fontFamily:V.interMedium,color:e.grayText},sectionCard:{backgroundColor:e.white,borderRadius:12,borderWidth:1,borderColor:e.dividerColor,padding:12,gap:8},sectionTitle:{fontSize:12,fontFamily:V.interBold,color:e.primaryBlack,marginBottom:4},keyValRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingVertical:3,borderBottomWidth:.5,borderBottomColor:`${e.dividerColor}40`,gap:8},keyText:{fontSize:11,fontFamily:V.interMedium,color:e.grayTextWeak},valText:{fontSize:11,fontFamily:V.interSemiBold,color:e.primaryBlack,textAlign:"right",flexShrink:1}});A.displayName="PushDetail";export default A;
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import
|
|
2
|
-
<Le item={e}searchStr={r}onPress={()=>
|
|
3
|
-
</Ve>,[r,
|
|
1
|
+
import K,{useCallback as B,useMemo as F,useRef as ne,useState as U}from"react";import{FlatList as Ce,Platform as Se,Pressable as Pe,ScrollView as Te,StyleSheet as we,Text as Ie,TextInput as Be,View as C}from"react-native";import{useInspector as Re}from"./InspectorContext";import Le from"./PushCard";import A from"../TouchableScale";import Ve from"../AnimatedEntrance";import Ee from"../EmptyState";import Fe from"../EndOfListFooter";import S from"../../styles";import{AppColors as t}from"../../styles/AppColors";import{AppFonts as G}from"../../styles/AppFonts";import{useTranslation as Ae}from"../../i18n";import{ClearIcon as Me,SearchIcon as Oe,TrashIcon as Ne,BellIcon as We,SunIcon as He,MoonIcon as $e,ExternalLinkIcon as De,CloudPushIcon as _e,BoltIcon as Qe}from"../NetworkIcons";const J=10,X=K.memo(()=>{const{t:x}=Ae(),{pushRecords:I,filteredPushRecords:P,pushSearch:r,setPushSearch:R,pushQuickFilter:T,setPushQuickFilter:M,setSelectedPush:O,clearAllPushLogs:Y,simulatePush:N,maxPushLogs:L}=Re(),Z=L||50,W=ne(null),[v,ee]=U(0),[H,$]=U(Z);K.useEffect(()=>{$(L||50),W.current?.scrollToOffset({offset:0,animated:!1})},[r,T,L]);const V=F(()=>P.slice(0,H),[P,H]),D=["salesforce","fcm","apns","deeplink","rich_media"],oe=B(()=>{const e=D[v%D.length];N(e),ee(o=>o+1)},[v,N]),_=F(()=>{let e=0,o=0,z=0;const w={};return I.forEach(E=>{const Q=(E.appState||"").toLowerCase();Q==="foreground"&&e++,Q==="background"&&o++,E.action==="opened"&&z++;const q=(E.source||"other").toLowerCase();w[q]=(w[q]||0)+1}),{all:I.length,foreground:e,background:o,opened:z,sources:w}},[I]),te=F(()=>{const e=[{id:"all",label:"All",color:t.purple,icon:o=><We size={12}color={o}/>},{id:"foreground",label:"Foreground",color:t.greenColor,icon:o=><He size={12}color={o}/>},{id:"background",label:"Background",color:t.darkOrange,icon:o=><$e size={12}color={o}/>},{id:"opened",label:"Opened",color:t.brandPurple,icon:o=><De size={12}color={o}/>}];return Object.entries(_.sources).forEach(([o,z])=>{z>0&&o!=="all"&&e.push({id:`source:${o}`,label:o.toUpperCase(),color:o==="salesforce"?t.sky600:t.brandPurple,icon:w=><_e size={12}color={w}/>})}),e},[_]),j=B(e=>{O(e)},[O]),re=B(({item:e,index:o})=><Ve index={o}distance={8}>
|
|
2
|
+
<Le item={e}searchStr={r}onPress={()=>j(e)}/>
|
|
3
|
+
</Ve>,[r,j]),le=B(e=>e.id||`push_${e.timestamp}`,[]);return<C style={{flex:1}}>
|
|
4
4
|
|
|
5
5
|
<C style={{marginTop:6}}>
|
|
6
6
|
<C style={S.toolbarRow}>
|
|
7
7
|
<C style={[S.searchContainer,{flex:1,marginRight:8,height:38}]}>
|
|
8
8
|
<C style={S.searchIcon}>
|
|
9
|
-
<
|
|
9
|
+
<Oe color={t.grayTextWeak}size={15}/>
|
|
10
10
|
</C>
|
|
11
|
-
<Be style={[S.searchInput,{paddingVertical:0}]}placeholder="Search notifications..."placeholderTextColor={t.grayTextWeak}value={r}onChangeText={
|
|
12
|
-
{r.length>0&&
|
|
13
|
-
<
|
|
14
|
-
<
|
|
15
|
-
</
|
|
11
|
+
<Be style={[S.searchInput,{paddingVertical:0}]}placeholder="Search notifications..."placeholderTextColor={t.grayTextWeak}value={r}onChangeText={R}autoCapitalize="none"autoCorrect={!1}returnKeyType="search"clearButtonMode="while-editing"/>
|
|
12
|
+
{r.length>0&&Se.OS==="android"&&<C style={{position:"absolute",right:8,top:0,bottom:0,justifyContent:"center"}}>
|
|
13
|
+
<Pe onPress={()=>R("")}hitSlop={10}style={S.clearBtn}>
|
|
14
|
+
<Me color={t.grayTextWeak}size={13}/>
|
|
15
|
+
</Pe>
|
|
16
16
|
</C>}
|
|
17
17
|
</C>
|
|
18
18
|
|
|
19
19
|
<C style={S.toolbarRight}>
|
|
20
|
-
<
|
|
21
|
-
<
|
|
22
|
-
</
|
|
20
|
+
<A style={[S.toolbarBtn,{backgroundColor:`${t.brandPurple}14`,borderColor:`${t.brandPurple}30`}]}onPress={oe}hitSlop={6}accessibilityRole="button"accessibilityLabel="Simulate incoming push notification">
|
|
21
|
+
<Qe color={t.brandPurple}size={15}/>
|
|
22
|
+
</A>
|
|
23
23
|
|
|
24
|
-
{
|
|
25
|
-
<
|
|
26
|
-
</
|
|
24
|
+
{I.length>0&&<A style={[S.toolbarBtn,{borderColor:`${t.errorColor}38`,backgroundColor:`${t.errorColor}0F`}]}onPress={Y}hitSlop={6}accessibilityRole="button"accessibilityLabel="Clear all push notification history">
|
|
25
|
+
<Ne color={t.errorColor}size={15}/>
|
|
26
|
+
</A>}
|
|
27
27
|
</C>
|
|
28
28
|
</C>
|
|
29
29
|
</C>
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<C style={
|
|
33
|
-
<
|
|
34
|
-
{
|
|
32
|
+
<C style={k.carouselWrapper}>
|
|
33
|
+
<Te horizontal showsHorizontalScrollIndicator={!1}contentContainerStyle={k.carouselContent}>
|
|
34
|
+
{te.map(e=>{const o=T===e.id;return<A key={e.id}onPress={()=>M(e.id)}style={[k.filterPill,o&&{backgroundColor:e.color,borderColor:e.color}]}>
|
|
35
35
|
{e.icon?e.icon(o?t.white:e.color):null}
|
|
36
|
-
<Ie style={[
|
|
36
|
+
<Ie style={[k.filterPillText,o&&{color:t.white}]}>
|
|
37
37
|
{e.label}
|
|
38
38
|
</Ie>
|
|
39
|
-
</
|
|
40
|
-
</
|
|
39
|
+
</A>})}
|
|
40
|
+
</Te>
|
|
41
41
|
</C>
|
|
42
42
|
|
|
43
43
|
|
|
44
|
-
<Ce ref={W}data={
|
|
45
|
-
</C>}),
|
|
44
|
+
<Ce ref={W}data={V}renderItem={re}keyExtractor={le}style={{flex:1}}contentContainerStyle={[k.listContent,{flexGrow:1}]}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}showsVerticalScrollIndicator={!1}nestedScrollEnabled={!0}keyboardShouldPersistTaps="handled"ListEmptyComponent={<Ee isSearch={!!(r||T!=="all")}searchQuery={r}customTitle={r||T!=="all"?x("push.noMatching","No matching push notifications"):x("push.noNotifications","No push notifications captured yet")}customSub={r||T!=="all"?x("push.adjustSearchFilter","Try adjusting your search query or filter chips."):x("push.noNotificationsDesc","Incoming or opened push payloads from any domain (Salesforce, FCM, APNs, etc.) will appear here automatically.")}onClearSearch={()=>{R(""),M("all")}}showReload={!1}/>}ListFooterComponent={P.length>0?<Fe count={V.length}totalCount={P.length}label="push notifications"loadMoreStep={J}hasMore={V.length<P.length}onLoadMore={()=>$(e=>e+J)}/>:null}/>
|
|
45
|
+
</C>}),k=we.create({carouselWrapper:{paddingVertical:6,borderBottomWidth:1,borderBottomColor:t.dividerColor,backgroundColor:t.white},carouselContent:{paddingHorizontal:8,gap:6,flexDirection:"row",alignItems:"center"},filterPill:{flexDirection:"row",alignItems:"center",gap:5,paddingHorizontal:9,paddingVertical:4.5,borderRadius:20,backgroundColor:t.grayBackground,borderWidth:1,borderColor:t.dividerColor},filterPillText:{fontSize:11,fontFamily:G.interMedium,color:t.primaryBlack},countBadge:{paddingHorizontal:5,paddingVertical:1,borderRadius:10},countBadgeText:{fontSize:9.5,fontFamily:G.interBold},listContent:{padding:8,paddingBottom:24}});X.displayName="PushTab";export default X;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert as ze,Platform as tt,Pressable as U,ScrollView as Z,StyleSheet as rt,Text as C,TextInput as Tt,ToastAndroid as Oe,TouchableOpacity as Ne,View as T}from"react-native";import{useTranslation as ht}from"../../i18n";import{useInspector as wt}from"./InspectorContext";import He from"../SegmentedTabs";import K from"../JsonViewer";import Me from"../DiffViewer";import Ee from"../CopyButton";import Ct from"../ShareButton";import St from"../TouchableScale";import Bt from"../HighlightText";import Vt from"../AnimatedEntrance";import{getActionHistory as zt}from"../../customHooks/reduxLogger";import{getSize as q,openInVSCode as _,parseStackLine as je}from"../../helpers";import{shareReduxReport as It}from"../../helpers/shareFormatter";import{getCustomStorage as $e}from"../../helpers/settingsStore";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as k}from"../../styles/AppFonts";import{TerminalIcon as Je,SearchIcon as Pt,ClearIcon as Wt,ClockIcon as Ie,LayersIcon as Ge,TrashIcon as Ue,ForwardChevronIcon as Rt,LiveStateIcon as Ke,TimelineIcon as Te,StorageIcon as Ce,MetadataIcon as Ft,BoltIcon as Pe,AtomIcon as Dt,ScreenIcon as At,ListenerIcon as Lt,DocIcon as We,ExternalLinkIcon as Se,CodeBracketsIcon as Ot}from"../NetworkIcons";const qe=
|
|
1
|
+
import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert as ze,Platform as tt,Pressable as U,ScrollView as Z,StyleSheet as rt,Text as C,TextInput as Tt,ToastAndroid as Oe,TouchableOpacity as Ne,View as T}from"react-native";import{useTranslation as ht}from"../../i18n";import{useInspector as wt}from"./InspectorContext";import He from"../SegmentedTabs";import K from"../JsonViewer";import Me from"../DiffViewer";import Ee from"../CopyButton";import Ct from"../ShareButton";import St from"../TouchableScale";import Bt from"../HighlightText";import Vt from"../AnimatedEntrance";import{getActionHistory as zt}from"../../customHooks/reduxLogger";import{getSize as q,openInVSCode as _,parseStackLine as je}from"../../helpers";import{shareReduxReport as It}from"../../helpers/shareFormatter";import{getCustomStorage as $e}from"../../helpers/settingsStore";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as k}from"../../styles/AppFonts";import{TerminalIcon as Je,SearchIcon as Pt,ClearIcon as Wt,ClockIcon as Ie,LayersIcon as Ge,TrashIcon as Ue,ForwardChevronIcon as Rt,LiveStateIcon as Ke,TimelineIcon as Te,StorageIcon as Ce,MetadataIcon as Ft,BoltIcon as Pe,AtomIcon as Dt,ScreenIcon as At,ListenerIcon as Lt,DocIcon as We,ExternalLinkIcon as Se,CodeBracketsIcon as Ot}from"../NetworkIcons";const qe=V=>{switch(V){case"saga":return{label:"SAGA",renderIcon:(D,F=9)=><Dt color={D}size={F}/>,bg:e.purple100,text:e.brandPurple,border:e.purple200};case"thunk":return{label:"THUNK",renderIcon:(D,F=9)=><Pe color={D}size={F}/>,bg:e.amber100,text:e.amber800Warm,border:e.amber200};case"epic":return{label:"EPIC",renderIcon:(D,F=9)=><Je color={D}size={F}/>,bg:e.sky100,text:e.sky600,border:e.sky400};case"listener":return{label:"LISTENER",renderIcon:(D,F=9)=><Lt color={D}size={F}/>,bg:e.teal100,text:e.teal700,border:e.teal400};case"component":return{label:"UI DISPATCH",renderIcon:(D,F=9)=><At color={D}size={F}/>,bg:e.sky100,text:e.sky600,border:e.sky400};default:return{label:"DISPATCH",renderIcon:(D,F=9)=><Pe color={D}size={F}/>,bg:e.slate100,text:e.slate700,border:e.slate200}}},Nt=_e.memo(()=>{const{t:V}=ht(),{reduxState:D,reduxLastActionMap:F,selectedReduxSlice:W,selectedReduxAction:z}=wt(),[A,Re]=E(""),[O,Fe]=E("live"),[Q,Qe]=E("payload"),[ve,De]=E("raw"),[Xe,Ye]=E(null),[J,G]=E(!1),[X,N]=E(null),ke=Ve(()=>zt(),[F]),j=Ve(()=>W?ke.filter(B=>!B.affectedSlices||B.affectedSlices.length===0?!0:B.affectedSlices.includes(W)):ke,[ke,W]),Ae=Ve(()=>{if(!A.trim())return j;const B=A.toLowerCase();return j.filter(R=>R.type.toLowerCase().includes(B)||R.callerFile&&R.callerFile.toLowerCase().includes(B)||R.payload&&JSON.stringify(R.payload).toLowerCase().includes(B))},[j,A]);et(()=>{if(!W)return;async function B(){try{const R=$e();if(!R){G(!1),N(null);return}let v=await R.getItem(`persist:${W}`);if(v){try{N(JSON.parse(v))}catch{N(v)}G(!0);return}let I=await R.getItem("persist:root");if(I){const S=JSON.parse(I);if(S&&S[W]!==void 0){const P=S[W];try{N(typeof P=="string"?JSON.parse(P):P)}catch{N(P)}G(!0);return}}}catch{}G(!1),N(null)}B()},[W]);const Le=()=>{W&&ze.alert(V("redux.clearPersistedTitle","Clear Persisted State"),V("redux.clearPersistedMessage",'Are you sure you want to delete persisted storage for slice "{{slice}}"?').replace("{{slice}}",W||""),[{text:V("common.cancel","Cancel"),style:"cancel"},{text:"Delete",style:"destructive",onPress:async()=>{try{const B=$e();if(!B)return;typeof B.removeItem=="function"?await B.removeItem(`persist:${W}`):await B.setItem(`persist:${W}`,""),G(!1),N(null),Fe("live"),tt.OS==="android"?Oe.show("Persisted state cleared",Oe.SHORT):ze.alert(V("redux.clearedPersisted","Persisted state has been cleared."))}catch{ze.alert(V("common.failed","Failed"),V("redux.clearPersistedError","Failed to clear persisted state."))}}}])};if(W!=null){const B=D?.[W],R=B&&typeof B=="object"?Object.keys(B).length:typeof B<"u"?1:0,v=F[W],I=[{key:"live",label:V("redux.liveState","Live State"),icon:S=><Ke color={S?e.white:e.grayText}size={12}/>},{key:"timeline",label:`${V("redux.timeline","Timeline")} (${j.length})`,icon:S=><Te color={S?e.white:e.grayText}size={12}/>},{key:"persisted",label:J?V("redux.persisted","Persisted"):V("redux.storage","Storage"),icon:S=><Ce color={S?e.white:e.grayText}size={12}/>},{key:"metadata",label:V("redux.metadata","Metadata"),icon:S=><Ft color={S?e.white:e.grayText}size={12}/>}];return<T style={{flex:1,backgroundColor:e.grayBackground}}>
|
|
2
2
|
|
|
3
3
|
<T style={t.infoBar}>
|
|
4
4
|
<T style={t.infoTopRow}>
|
|
5
5
|
<T style={{flexDirection:"row",alignItems:"center",gap:6,flexWrap:"wrap",flex:1,minWidth:0}}>
|
|
6
6
|
<T style={[t.methodBadge,{backgroundColor:e.indigo600Alt}]}>
|
|
7
7
|
<C style={t.methodBadgeText}>
|
|
8
|
-
{
|
|
8
|
+
{V("redux.slice","SLICE")}
|
|
9
9
|
</C>
|
|
10
10
|
</T>
|
|
11
11
|
<C style={t.sliceNameText}numberOfLines={1}>
|
|
@@ -14,23 +14,23 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
14
14
|
{J?<T style={t.persistedChip}>
|
|
15
15
|
<Ce color={e.emerald700}size={10}/>
|
|
16
16
|
<C style={t.persistedChipText}>
|
|
17
|
-
{
|
|
17
|
+
{V("redux.persisted","Persisted").toUpperCase()}
|
|
18
18
|
</C>
|
|
19
19
|
</T>:<T style={t.inMemoryChip}>
|
|
20
20
|
<C style={t.inMemoryChipText}>
|
|
21
|
-
{
|
|
21
|
+
{V("redux.inMemory","In-Memory").toUpperCase()}
|
|
22
22
|
</C>
|
|
23
23
|
</T>}
|
|
24
|
-
{
|
|
24
|
+
{v?.timestamp&&<T style={t.timePill}>
|
|
25
25
|
<Ie color={e.violet600}size={10}/>
|
|
26
26
|
<C style={t.timeText}>
|
|
27
|
-
{
|
|
27
|
+
{v.timestamp}
|
|
28
28
|
</C>
|
|
29
29
|
</T>}
|
|
30
30
|
</T>
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
<Ee value={()=>O==="live"?B:X}label={
|
|
33
|
+
<Ee value={()=>O==="live"?B:X}label={V("redux.sliceJson","Slice JSON")}/>
|
|
34
34
|
</T>
|
|
35
35
|
|
|
36
36
|
|
|
@@ -38,7 +38,7 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
38
38
|
<T style={[t.statPill,{backgroundColor:e.indigo50,borderColor:e.indigo400}]}>
|
|
39
39
|
<Ge color={e.indigo600Alt}size={11}/>
|
|
40
40
|
<C style={[t.statLabel,{color:e.indigo600Alt}]}>
|
|
41
|
-
{
|
|
41
|
+
{V("redux.keys","Keys")}:
|
|
42
42
|
</C>
|
|
43
43
|
<C style={[t.statValue,{color:e.indigo600Alt}]}>
|
|
44
44
|
{R}
|
|
@@ -46,7 +46,7 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
46
46
|
</T>
|
|
47
47
|
<T style={[t.statPill,{backgroundColor:e.sky100,borderColor:e.sky400}]}>
|
|
48
48
|
<C style={[t.statLabel,{color:e.sky600}]}>
|
|
49
|
-
{
|
|
49
|
+
{V("redux.size","Size")}:
|
|
50
50
|
</C>
|
|
51
51
|
<C style={[t.statValue,{color:e.sky600}]}>
|
|
52
52
|
{q(B)}
|
|
@@ -55,25 +55,25 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
55
55
|
<T style={[t.statPill,{backgroundColor:e.purple100,borderColor:e.purple200}]}>
|
|
56
56
|
<Te color={e.violet600}size={11}/>
|
|
57
57
|
<C style={[t.statLabel,{color:e.brandPurple}]}>
|
|
58
|
-
{
|
|
58
|
+
{V("redux.timeline","Timeline")}:
|
|
59
59
|
</C>
|
|
60
60
|
<C style={[t.statValue,{color:e.brandPurple}]}>
|
|
61
61
|
{j.length}
|
|
62
62
|
</C>
|
|
63
63
|
</T>
|
|
64
|
-
{
|
|
64
|
+
{v&&<T style={[t.statPill,{backgroundColor:e.amber100,borderColor:e.amber200,flexShrink:1,maxWidth:160}]}>
|
|
65
65
|
<Pe color={e.amber800Warm}size={11}/>
|
|
66
66
|
<C style={[t.statLabel,{color:e.amber800Warm}]}>
|
|
67
|
-
{
|
|
67
|
+
{V("redux.last","Last")}:
|
|
68
68
|
</C>
|
|
69
69
|
<C style={[t.statValue,{color:e.amber800Warm,flexShrink:1}]}numberOfLines={1}>
|
|
70
|
-
{
|
|
70
|
+
{v.type}
|
|
71
71
|
</C>
|
|
72
72
|
</T>}
|
|
73
73
|
</T>
|
|
74
74
|
|
|
75
75
|
|
|
76
|
-
<He tabs={I}activeKey={O}onChange={S=>
|
|
76
|
+
<He tabs={I}activeKey={O}onChange={S=>Fe(S)}style={{marginTop:10}}/>
|
|
77
77
|
</T>
|
|
78
78
|
|
|
79
79
|
|
|
@@ -125,7 +125,7 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
125
125
|
<T style={{flexDirection:"row",alignItems:"center",gap:5,flex:1,minWidth:0}}>
|
|
126
126
|
<We color={e.sky600}size={10}/>
|
|
127
127
|
<C style={{fontFamily:k.interMedium,fontSize:9.5,color:e.grayTextWeak}}>
|
|
128
|
-
{
|
|
128
|
+
{V("redux.triggeredFrom","Triggered From:")}
|
|
129
129
|
</C>
|
|
130
130
|
<C style={{fontFamily:k.interBold,fontSize:9.5,color:e.sky600}}numberOfLines={1}>
|
|
131
131
|
{Ze}:{S.callerLine||1}
|
|
@@ -135,7 +135,7 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
135
135
|
<U onPress={()=>_(S.callerFile,S.callerLine,S.callerCol)}hitSlop={8}style={{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:e.sky100,paddingHorizontal:5,paddingVertical:2,borderRadius:4}}>
|
|
136
136
|
<Se color={e.sky600}size={9}/>
|
|
137
137
|
<C style={{fontFamily:k.interBold,fontSize:8.5,color:e.sky600}}>
|
|
138
|
-
{
|
|
138
|
+
{V("redux.openInEditor","Open in Editor")}
|
|
139
139
|
</C>
|
|
140
140
|
</U>
|
|
141
141
|
</T>}
|
|
@@ -145,7 +145,7 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
145
145
|
|
|
146
146
|
{S.stack?<T style={{marginBottom:12}}>
|
|
147
147
|
<C style={t.expandedSectionTitle}>
|
|
148
|
-
{
|
|
148
|
+
{V("redux.callStack","Call Stack Trace")}:
|
|
149
149
|
</C>
|
|
150
150
|
<T style={{backgroundColor:e.grayBackground,borderRadius:8,padding:8,borderWidth:1,borderColor:e.dividerColor,gap:4}}>
|
|
151
151
|
{S.stack.split(`
|
|
@@ -167,18 +167,18 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
167
167
|
|
|
168
168
|
{S.payload!==void 0&&<T style={{marginBottom:12}}>
|
|
169
169
|
<C style={t.expandedSectionTitle}>
|
|
170
|
-
{
|
|
170
|
+
{V("redux.actionPayload","Action Payload:")}
|
|
171
171
|
</C>
|
|
172
172
|
<K data={S.payload}search={A}forceOpen={!0}wrap={!0}/>
|
|
173
173
|
</T>}
|
|
174
174
|
|
|
175
175
|
<C style={t.expandedSectionTitle}>
|
|
176
|
-
{
|
|
176
|
+
{V("redux.stateChangesDiff","State Changes (Diff):")}
|
|
177
177
|
</C>
|
|
178
178
|
<Me oldData={S.prevState?.[W]||{}}newData={S.nextState?.[W]||{}}forceOpen={!0}/>
|
|
179
179
|
</T>:<T style={t.collapsedPrompt}>
|
|
180
180
|
<C style={t.collapsedPromptText}>
|
|
181
|
-
{
|
|
181
|
+
{V("redux.tapToInspectAction","Tap to inspect action payload & diff changes")}
|
|
182
182
|
</C>
|
|
183
183
|
<Rt color={e.grayTextWeak}size={12}/>
|
|
184
184
|
</T>}
|
|
@@ -186,7 +186,7 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
186
186
|
</Vt>})}
|
|
187
187
|
</Z>:O==="metadata"?<Z style={{flex:1}}contentContainerStyle={{padding:12,paddingBottom:40}}keyboardShouldPersistTaps="handled">
|
|
188
188
|
<T style={t.metadataCard}>
|
|
189
|
-
{[{label:"Slice Name",value:W},{label:"Root Keys Count",value:`${R} keys`},{label:"In-Memory State Size",value:q(B)},{label:"Persistence Status",value:J?`Persisted (${q(X)})`:"Not Persisted (In-Memory)"},{label:"Dispatched Actions History",value:`${j.length} recorded actions`},{label:"Last Dispatched Action",value:
|
|
189
|
+
{[{label:"Slice Name",value:W},{label:"Root Keys Count",value:`${R} keys`},{label:"In-Memory State Size",value:q(B)},{label:"Persistence Status",value:J?`Persisted (${q(X)})`:"Not Persisted (In-Memory)"},{label:"Dispatched Actions History",value:`${j.length} recorded actions`},{label:"Last Dispatched Action",value:v?v.type:"None"},{label:"Last Action Timestamp",value:v?v.timestamp:"Initial"}].map((S,P)=><T key={P}style={[t.metaRow,P===6&&{borderBottomWidth:0}]}>
|
|
190
190
|
<C style={t.metaLabel}>{S.label}</C>
|
|
191
191
|
<C style={t.metaValue}selectable numberOfLines={2}>
|
|
192
192
|
{S.value}
|
|
@@ -219,7 +219,7 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
219
219
|
</T>
|
|
220
220
|
</T>
|
|
221
221
|
<T style={{flex:1,marginTop:8}}>
|
|
222
|
-
<K data={X}search={A}forceOpen={A.length>0?!0:void 0}mode={
|
|
222
|
+
<K data={X}search={A}forceOpen={A.length>0?!0:void 0}mode={ve}onModeChange={De}fullHeight={!0}wrap={!0}/>
|
|
223
223
|
</T>
|
|
224
224
|
</T>:<T style={t.emptyBox}>
|
|
225
225
|
<Ce color={e.grayTextWeak}size={32}/>
|
|
@@ -232,16 +232,16 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
232
232
|
</C>
|
|
233
233
|
</T>}
|
|
234
234
|
</T>:<T style={{flex:1,padding:10}}>
|
|
235
|
-
<K data={B}search={A}forceOpen={A.length>0?!0:void 0}mode={
|
|
235
|
+
<K data={B}search={A}forceOpen={A.length>0?!0:void 0}mode={ve}onModeChange={De}fullHeight={!0}wrap={!0}/>
|
|
236
236
|
</T>}
|
|
237
|
-
</T>}if(
|
|
237
|
+
</T>}if(z!=null){const B=qe(z.originType),R=z.callerFile?z.callerFile.split("/").pop():null,v=[{key:"payload",label:V("redux.payload","Payload"),icon:I=><Ot color={I?e.white:e.grayText}size={12}/>},{key:"diff",label:V("redux.diff","State Diff"),icon:I=><Te color={I?e.white:e.grayText}size={12}/>},{key:"stack",label:V("redux.callStack","Call Stack"),icon:I=><We color={I?e.white:e.grayText}size={12}/>},{key:"raw",label:"Raw Action",icon:I=><Ke color={I?e.white:e.grayText}size={12}/>}];return<T style={{flex:1,backgroundColor:e.grayBackground}}>
|
|
238
238
|
|
|
239
239
|
<T style={t.infoBar}>
|
|
240
240
|
<T style={t.infoTopRow}>
|
|
241
241
|
<T style={{flexDirection:"row",alignItems:"center",gap:6,flexWrap:"wrap",flex:1,minWidth:0}}>
|
|
242
242
|
<T style={t.actionBadge}>
|
|
243
243
|
<C style={t.actionBadgeText}>
|
|
244
|
-
#{
|
|
244
|
+
#{z.id}
|
|
245
245
|
</C>
|
|
246
246
|
</T>
|
|
247
247
|
|
|
@@ -252,32 +252,32 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
252
252
|
</C>
|
|
253
253
|
</T>
|
|
254
254
|
<C style={t.sliceNameText}numberOfLines={1}>
|
|
255
|
-
{
|
|
255
|
+
{z.type}
|
|
256
256
|
</C>
|
|
257
|
-
{
|
|
257
|
+
{z.timestamp&&<T style={t.timePill}>
|
|
258
258
|
<Ie color={e.purple}size={10}/>
|
|
259
259
|
<C style={t.timeText}>
|
|
260
|
-
{
|
|
260
|
+
{z.timestamp}
|
|
261
261
|
</C>
|
|
262
262
|
</T>}
|
|
263
263
|
</T>
|
|
264
264
|
|
|
265
265
|
|
|
266
266
|
<T style={{flexDirection:"row",alignItems:"center",gap:6}}>
|
|
267
|
-
<Ct onShare={()=>It(
|
|
268
|
-
<Ee value={()=>
|
|
267
|
+
<Ct onShare={()=>It(z)}/>
|
|
268
|
+
<Ee value={()=>z}label="Copy Action"/>
|
|
269
269
|
</T>
|
|
270
270
|
</T>
|
|
271
271
|
|
|
272
272
|
|
|
273
273
|
<T style={t.subStatsRow}>
|
|
274
|
-
{
|
|
274
|
+
{z.affectedSlices&&z.affectedSlices.length>0&&<T style={[t.statPill,{backgroundColor:e.indigo50,borderColor:e.indigo400}]}>
|
|
275
275
|
<Ge color={e.indigo600Alt}size={11}/>
|
|
276
276
|
<C style={[t.statLabel,{color:e.indigo600Alt}]}>
|
|
277
277
|
Slices:
|
|
278
278
|
</C>
|
|
279
279
|
<C style={[t.statValue,{color:e.indigo600Alt}]}>
|
|
280
|
-
{
|
|
280
|
+
{z.affectedSlices.join(", ")}
|
|
281
281
|
</C>
|
|
282
282
|
</T>}
|
|
283
283
|
<T style={[t.statPill,{backgroundColor:e.sky100,borderColor:e.sky400}]}>
|
|
@@ -285,24 +285,24 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
285
285
|
Payload Size:
|
|
286
286
|
</C>
|
|
287
287
|
<C style={[t.statValue,{color:e.sky600}]}>
|
|
288
|
-
{q(
|
|
288
|
+
{q(z.payload)}
|
|
289
289
|
</C>
|
|
290
290
|
</T>
|
|
291
291
|
</T>
|
|
292
292
|
|
|
293
293
|
|
|
294
|
-
{
|
|
294
|
+
{z.callerFile&&<T style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginTop:8,paddingHorizontal:8,paddingVertical:4,backgroundColor:e.grayBackground,borderRadius:6,borderWidth:1,borderColor:e.dividerColor}}>
|
|
295
295
|
<T style={{flexDirection:"row",alignItems:"center",gap:5,flex:1,minWidth:0}}>
|
|
296
296
|
<We color={e.sky600}size={10}/>
|
|
297
297
|
<C style={{fontFamily:k.interMedium,fontSize:9.5,color:e.grayTextWeak}}>
|
|
298
298
|
Triggered from:
|
|
299
299
|
</C>
|
|
300
300
|
<C style={{fontFamily:k.interBold,fontSize:9.5,color:e.sky600}}numberOfLines={1}>
|
|
301
|
-
{R}:{
|
|
301
|
+
{R}:{z.callerLine||1}
|
|
302
302
|
</C>
|
|
303
303
|
</T>
|
|
304
304
|
|
|
305
|
-
<U onPress={()=>_(
|
|
305
|
+
<U onPress={()=>_(z.callerFile,z.callerLine,z.callerCol)}hitSlop={8}style={{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:e.sky100,paddingHorizontal:5,paddingVertical:2,borderRadius:4}}>
|
|
306
306
|
<Se color={e.sky600}size={9}/>
|
|
307
307
|
<C style={{fontFamily:k.interBold,fontSize:8.5,color:e.sky600}}>
|
|
308
308
|
Open in Editor
|
|
@@ -311,24 +311,24 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
311
311
|
</T>}
|
|
312
312
|
|
|
313
313
|
|
|
314
|
-
<He tabs={
|
|
314
|
+
<He tabs={v}activeKey={Q}onChange={I=>Qe(I)}style={{marginTop:10}}/>
|
|
315
315
|
</T>
|
|
316
316
|
|
|
317
317
|
|
|
318
318
|
{Q==="payload"?<T style={{flex:1,padding:10}}>
|
|
319
|
-
{
|
|
319
|
+
{z.payload!==void 0?<K data={z.payload}search={A}forceOpen={!0}fullHeight={!0}wrap={!0}/>:<T style={t.emptyBox}>
|
|
320
320
|
<C style={t.emptyBoxText}>
|
|
321
321
|
This action has no payload dispatched.
|
|
322
322
|
</C>
|
|
323
323
|
</T>}
|
|
324
324
|
</T>:Q==="diff"?<Z style={{flex:1}}contentContainerStyle={{padding:12,paddingBottom:40}}keyboardShouldPersistTaps="handled">
|
|
325
|
-
<Me oldData={
|
|
325
|
+
<Me oldData={z.prevState||{}}newData={z.nextState||{}}forceOpen={!0}/>
|
|
326
326
|
</Z>:Q==="stack"?<Z style={{flex:1}}contentContainerStyle={{padding:12,paddingBottom:40}}keyboardShouldPersistTaps="handled">
|
|
327
|
-
{
|
|
327
|
+
{z.stack?<T style={{backgroundColor:e.white,borderRadius:10,padding:10,borderWidth:1,borderColor:e.dividerColor}}>
|
|
328
328
|
<C style={t.expandedSectionTitle}>
|
|
329
329
|
Dispatched from call stack:
|
|
330
330
|
</C>
|
|
331
|
-
{
|
|
331
|
+
{z.stack.split(`
|
|
332
332
|
`).map(I=>I.trim()).filter(I=>I.length>0&&!I.includes("reduxLogger")&&!I.includes("inspectorReduxMiddleware")).map((I,S)=>{const P=je(I,S===0),H=P.frameType==="app";return<U key={S}onPress={()=>{P.fileName!=="Unknown"&&_(P.fullPath||P.fileName,P.lineNumber,P.columnNumber)}}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:5,borderBottomWidth:.5,borderBottomColor:e.dividerColor}}>
|
|
333
333
|
<T style={{flex:1,minWidth:0}}>
|
|
334
334
|
<C style={{fontFamily:H?k.interBold:k.interRegular,fontSize:10.5,color:H?e.primaryBlack:e.grayTextWeak}}numberOfLines={1}>
|
|
@@ -347,7 +347,7 @@ import _e,{useState as E,useMemo as Ve,useEffect as et}from"react";import{Alert
|
|
|
347
347
|
</C>
|
|
348
348
|
</T>}
|
|
349
349
|
</Z>:<T style={{flex:1,padding:10}}>
|
|
350
|
-
<K data={
|
|
350
|
+
<K data={z}forceOpen={!0}fullHeight={!0}wrap={!0}/>
|
|
351
351
|
</T>}
|
|
352
352
|
</T>}return<T style={t.emptyBox}>
|
|
353
353
|
<Je color={e.purple}size={32}/>
|