react-native-xenon 0.7.0 → 1.0.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.
Files changed (268) hide show
  1. package/README.md +34 -30
  2. package/lib/commonjs/core/refs.js +33 -0
  3. package/lib/commonjs/core/refs.js.map +1 -0
  4. package/lib/commonjs/core/utils.js +40 -9
  5. package/lib/commonjs/core/utils.js.map +1 -1
  6. package/lib/commonjs/hooks/useNetworkInterceptor.js +14 -15
  7. package/lib/commonjs/hooks/useNetworkInterceptor.js.map +1 -1
  8. package/lib/commonjs/interceptors/FetchInterceptor.js +6 -9
  9. package/lib/commonjs/interceptors/FetchInterceptor.js.map +1 -1
  10. package/lib/commonjs/interceptors/WebSocketInterceptor.js +2 -9
  11. package/lib/commonjs/interceptors/WebSocketInterceptor.js.map +1 -1
  12. package/lib/commonjs/interceptors/XHRInterceptor.js +9 -6
  13. package/lib/commonjs/interceptors/XHRInterceptor.js.map +1 -1
  14. package/lib/commonjs/theme/colors.js +6 -1
  15. package/lib/commonjs/theme/colors.js.map +1 -1
  16. package/lib/commonjs/ui/Xenon.js +45 -40
  17. package/lib/commonjs/ui/Xenon.js.map +1 -1
  18. package/lib/commonjs/ui/components/bubble/Bubble.js +37 -28
  19. package/lib/commonjs/ui/components/bubble/Bubble.js.map +1 -1
  20. package/lib/commonjs/ui/components/common/Divider.js +21 -0
  21. package/lib/commonjs/ui/components/common/Divider.js.map +1 -0
  22. package/lib/commonjs/ui/components/common/Icon.js +25 -0
  23. package/lib/commonjs/ui/components/common/Icon.js.map +1 -0
  24. package/lib/commonjs/ui/components/common/IndexedStack.js +46 -0
  25. package/lib/commonjs/ui/components/common/IndexedStack.js.map +1 -0
  26. package/lib/commonjs/ui/components/common/Touchable.js +22 -0
  27. package/lib/commonjs/ui/components/common/Touchable.js.map +1 -0
  28. package/lib/commonjs/ui/components/details/LogMessageDetails.js +24 -11
  29. package/lib/commonjs/ui/components/details/LogMessageDetails.js.map +1 -1
  30. package/lib/commonjs/ui/components/details/NetworkRequestDetails.js +64 -39
  31. package/lib/commonjs/ui/components/details/NetworkRequestDetails.js.map +1 -1
  32. package/lib/commonjs/ui/components/headers/ConsoleHeader.js +30 -0
  33. package/lib/commonjs/ui/components/headers/ConsoleHeader.js.map +1 -0
  34. package/lib/commonjs/ui/components/headers/DebuggerHeader.js +56 -177
  35. package/lib/commonjs/ui/components/headers/DebuggerHeader.js.map +1 -1
  36. package/lib/commonjs/ui/components/headers/Header.js +34 -0
  37. package/lib/commonjs/ui/components/headers/Header.js.map +1 -0
  38. package/lib/commonjs/ui/components/headers/HeaderComponents.js +111 -0
  39. package/lib/commonjs/ui/components/headers/HeaderComponents.js.map +1 -0
  40. package/lib/commonjs/ui/components/headers/NetworkHeader.js +97 -0
  41. package/lib/commonjs/ui/components/headers/NetworkHeader.js.map +1 -0
  42. package/lib/commonjs/ui/components/index.js +0 -7
  43. package/lib/commonjs/ui/components/index.js.map +1 -1
  44. package/lib/commonjs/ui/components/items/ConsolePanelItem.js +8 -4
  45. package/lib/commonjs/ui/components/items/ConsolePanelItem.js.map +1 -1
  46. package/lib/commonjs/ui/components/items/DebuggerHeaderItem.js +5 -9
  47. package/lib/commonjs/ui/components/items/DebuggerHeaderItem.js.map +1 -1
  48. package/lib/commonjs/ui/components/items/NetworkPanelItem.js +54 -13
  49. package/lib/commonjs/ui/components/items/NetworkPanelItem.js.map +1 -1
  50. package/lib/commonjs/ui/components/items/NetworkRequestDetailsItem.js +19 -18
  51. package/lib/commonjs/ui/components/items/NetworkRequestDetailsItem.js.map +1 -1
  52. package/lib/commonjs/ui/components/panels/ConsolePanel.js +19 -10
  53. package/lib/commonjs/ui/components/panels/ConsolePanel.js.map +1 -1
  54. package/lib/commonjs/ui/components/panels/NetworkPanel.js +18 -13
  55. package/lib/commonjs/ui/components/panels/NetworkPanel.js.map +1 -1
  56. package/lib/commonjs/ui/components/panels/Panel.js +25 -0
  57. package/lib/commonjs/ui/components/panels/Panel.js.map +1 -0
  58. package/lib/module/core/refs.js +33 -0
  59. package/lib/module/core/refs.js.map +1 -0
  60. package/lib/module/core/utils.js +40 -9
  61. package/lib/module/core/utils.js.map +1 -1
  62. package/lib/module/hooks/useNetworkInterceptor.js +14 -15
  63. package/lib/module/hooks/useNetworkInterceptor.js.map +1 -1
  64. package/lib/module/interceptors/FetchInterceptor.js +6 -9
  65. package/lib/module/interceptors/FetchInterceptor.js.map +1 -1
  66. package/lib/module/interceptors/WebSocketInterceptor.js +2 -9
  67. package/lib/module/interceptors/WebSocketInterceptor.js.map +1 -1
  68. package/lib/module/interceptors/XHRInterceptor.js +9 -6
  69. package/lib/module/interceptors/XHRInterceptor.js.map +1 -1
  70. package/lib/module/theme/colors.js +6 -1
  71. package/lib/module/theme/colors.js.map +1 -1
  72. package/lib/module/ui/Xenon.js +45 -40
  73. package/lib/module/ui/Xenon.js.map +1 -1
  74. package/lib/module/ui/components/bubble/Bubble.js +37 -28
  75. package/lib/module/ui/components/bubble/Bubble.js.map +1 -1
  76. package/lib/module/ui/components/common/Divider.js +21 -0
  77. package/lib/module/ui/components/common/Divider.js.map +1 -0
  78. package/lib/module/ui/components/common/Icon.js +25 -0
  79. package/lib/module/ui/components/common/Icon.js.map +1 -0
  80. package/lib/module/ui/components/common/IndexedStack.js +46 -0
  81. package/lib/module/ui/components/common/IndexedStack.js.map +1 -0
  82. package/lib/module/ui/components/common/Touchable.js +22 -0
  83. package/lib/module/ui/components/common/Touchable.js.map +1 -0
  84. package/lib/module/ui/components/details/LogMessageDetails.js +24 -11
  85. package/lib/module/ui/components/details/LogMessageDetails.js.map +1 -1
  86. package/lib/module/ui/components/details/NetworkRequestDetails.js +64 -39
  87. package/lib/module/ui/components/details/NetworkRequestDetails.js.map +1 -1
  88. package/lib/module/ui/components/headers/ConsoleHeader.js +30 -0
  89. package/lib/module/ui/components/headers/ConsoleHeader.js.map +1 -0
  90. package/lib/module/ui/components/headers/DebuggerHeader.js +56 -177
  91. package/lib/module/ui/components/headers/DebuggerHeader.js.map +1 -1
  92. package/lib/module/ui/components/headers/Header.js +34 -0
  93. package/lib/module/ui/components/headers/Header.js.map +1 -0
  94. package/lib/module/ui/components/headers/HeaderComponents.js +111 -0
  95. package/lib/module/ui/components/headers/HeaderComponents.js.map +1 -0
  96. package/lib/module/ui/components/headers/NetworkHeader.js +97 -0
  97. package/lib/module/ui/components/headers/NetworkHeader.js.map +1 -0
  98. package/lib/module/ui/components/index.js +0 -7
  99. package/lib/module/ui/components/index.js.map +1 -1
  100. package/lib/module/ui/components/items/ConsolePanelItem.js +8 -4
  101. package/lib/module/ui/components/items/ConsolePanelItem.js.map +1 -1
  102. package/lib/module/ui/components/items/DebuggerHeaderItem.js +5 -9
  103. package/lib/module/ui/components/items/DebuggerHeaderItem.js.map +1 -1
  104. package/lib/module/ui/components/items/NetworkPanelItem.js +54 -13
  105. package/lib/module/ui/components/items/NetworkPanelItem.js.map +1 -1
  106. package/lib/module/ui/components/items/NetworkRequestDetailsItem.js +19 -18
  107. package/lib/module/ui/components/items/NetworkRequestDetailsItem.js.map +1 -1
  108. package/lib/module/ui/components/panels/ConsolePanel.js +19 -10
  109. package/lib/module/ui/components/panels/ConsolePanel.js.map +1 -1
  110. package/lib/module/ui/components/panels/NetworkPanel.js +18 -13
  111. package/lib/module/ui/components/panels/NetworkPanel.js.map +1 -1
  112. package/lib/module/ui/components/panels/Panel.js +25 -0
  113. package/lib/module/ui/components/panels/Panel.js.map +1 -0
  114. package/lib/typescript/commonjs/src/core/refs.d.ts +24 -0
  115. package/lib/typescript/commonjs/src/core/refs.d.ts.map +1 -0
  116. package/lib/typescript/commonjs/src/core/utils.d.ts +13 -5
  117. package/lib/typescript/commonjs/src/core/utils.d.ts.map +1 -1
  118. package/lib/typescript/commonjs/src/hooks/useNetworkInterceptor.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/src/interceptors/FetchInterceptor.d.ts.map +1 -1
  120. package/lib/typescript/commonjs/src/interceptors/WebSocketInterceptor.d.ts +0 -1
  121. package/lib/typescript/commonjs/src/interceptors/WebSocketInterceptor.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/src/interceptors/XHRInterceptor.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/src/theme/colors.d.ts +5 -0
  124. package/lib/typescript/commonjs/src/theme/colors.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/src/types/common.d.ts +2 -3
  126. package/lib/typescript/commonjs/src/types/common.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/src/types/http.d.ts +5 -6
  128. package/lib/typescript/commonjs/src/types/http.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/src/types/websocket.d.ts +2 -2
  130. package/lib/typescript/commonjs/src/types/websocket.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/src/ui/Xenon.d.ts +5 -2
  132. package/lib/typescript/commonjs/src/ui/Xenon.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/src/ui/components/bubble/Bubble.d.ts +4 -5
  134. package/lib/typescript/commonjs/src/ui/components/bubble/Bubble.d.ts.map +1 -1
  135. package/lib/typescript/commonjs/src/ui/components/common/Divider.d.ts +4 -0
  136. package/lib/typescript/commonjs/src/ui/components/common/Divider.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/src/ui/components/common/Icon.d.ts +8 -0
  138. package/lib/typescript/commonjs/src/ui/components/common/Icon.d.ts.map +1 -0
  139. package/lib/typescript/commonjs/src/ui/components/common/IndexedStack.d.ts +13 -0
  140. package/lib/typescript/commonjs/src/ui/components/common/IndexedStack.d.ts.map +1 -0
  141. package/lib/typescript/commonjs/src/ui/components/common/Touchable.d.ts +10 -0
  142. package/lib/typescript/commonjs/src/ui/components/common/Touchable.d.ts.map +1 -0
  143. package/lib/typescript/commonjs/src/ui/components/details/LogMessageDetails.d.ts +5 -6
  144. package/lib/typescript/commonjs/src/ui/components/details/LogMessageDetails.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/src/ui/components/details/NetworkRequestDetails.d.ts +5 -6
  146. package/lib/typescript/commonjs/src/ui/components/details/NetworkRequestDetails.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/src/ui/components/headers/ConsoleHeader.d.ts +9 -0
  148. package/lib/typescript/commonjs/src/ui/components/headers/ConsoleHeader.d.ts.map +1 -0
  149. package/lib/typescript/commonjs/src/ui/components/headers/DebuggerHeader.d.ts +9 -1
  150. package/lib/typescript/commonjs/src/ui/components/headers/DebuggerHeader.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/src/ui/components/headers/Header.d.ts +3 -0
  152. package/lib/typescript/commonjs/src/ui/components/headers/Header.d.ts.map +1 -0
  153. package/lib/typescript/commonjs/src/ui/components/headers/HeaderComponents.d.ts +20 -0
  154. package/lib/typescript/commonjs/src/ui/components/headers/HeaderComponents.d.ts.map +1 -0
  155. package/lib/typescript/commonjs/src/ui/components/headers/NetworkHeader.d.ts +9 -0
  156. package/lib/typescript/commonjs/src/ui/components/headers/NetworkHeader.d.ts.map +1 -0
  157. package/lib/typescript/commonjs/src/ui/components/index.d.ts +0 -1
  158. package/lib/typescript/commonjs/src/ui/components/index.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/src/ui/components/items/ConsolePanelItem.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/src/ui/components/items/DebuggerHeaderItem.d.ts.map +1 -1
  161. package/lib/typescript/commonjs/src/ui/components/items/NetworkPanelItem.d.ts +3 -2
  162. package/lib/typescript/commonjs/src/ui/components/items/NetworkPanelItem.d.ts.map +1 -1
  163. package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsItem.d.ts +4 -5
  164. package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsItem.d.ts.map +1 -1
  165. package/lib/typescript/commonjs/src/ui/components/panels/ConsolePanel.d.ts +5 -1
  166. package/lib/typescript/commonjs/src/ui/components/panels/ConsolePanel.d.ts.map +1 -1
  167. package/lib/typescript/commonjs/src/ui/components/panels/NetworkPanel.d.ts +5 -1
  168. package/lib/typescript/commonjs/src/ui/components/panels/NetworkPanel.d.ts.map +1 -1
  169. package/lib/typescript/commonjs/src/ui/components/panels/Panel.d.ts +2 -0
  170. package/lib/typescript/commonjs/src/ui/components/panels/Panel.d.ts.map +1 -0
  171. package/lib/typescript/module/src/core/refs.d.ts +24 -0
  172. package/lib/typescript/module/src/core/refs.d.ts.map +1 -0
  173. package/lib/typescript/module/src/core/utils.d.ts +13 -5
  174. package/lib/typescript/module/src/core/utils.d.ts.map +1 -1
  175. package/lib/typescript/module/src/hooks/useNetworkInterceptor.d.ts.map +1 -1
  176. package/lib/typescript/module/src/interceptors/FetchInterceptor.d.ts.map +1 -1
  177. package/lib/typescript/module/src/interceptors/WebSocketInterceptor.d.ts +0 -1
  178. package/lib/typescript/module/src/interceptors/WebSocketInterceptor.d.ts.map +1 -1
  179. package/lib/typescript/module/src/interceptors/XHRInterceptor.d.ts.map +1 -1
  180. package/lib/typescript/module/src/theme/colors.d.ts +5 -0
  181. package/lib/typescript/module/src/theme/colors.d.ts.map +1 -1
  182. package/lib/typescript/module/src/types/common.d.ts +2 -3
  183. package/lib/typescript/module/src/types/common.d.ts.map +1 -1
  184. package/lib/typescript/module/src/types/http.d.ts +5 -6
  185. package/lib/typescript/module/src/types/http.d.ts.map +1 -1
  186. package/lib/typescript/module/src/types/websocket.d.ts +2 -2
  187. package/lib/typescript/module/src/types/websocket.d.ts.map +1 -1
  188. package/lib/typescript/module/src/ui/Xenon.d.ts +5 -2
  189. package/lib/typescript/module/src/ui/Xenon.d.ts.map +1 -1
  190. package/lib/typescript/module/src/ui/components/bubble/Bubble.d.ts +4 -5
  191. package/lib/typescript/module/src/ui/components/bubble/Bubble.d.ts.map +1 -1
  192. package/lib/typescript/module/src/ui/components/common/Divider.d.ts +4 -0
  193. package/lib/typescript/module/src/ui/components/common/Divider.d.ts.map +1 -0
  194. package/lib/typescript/module/src/ui/components/common/Icon.d.ts +8 -0
  195. package/lib/typescript/module/src/ui/components/common/Icon.d.ts.map +1 -0
  196. package/lib/typescript/module/src/ui/components/common/IndexedStack.d.ts +13 -0
  197. package/lib/typescript/module/src/ui/components/common/IndexedStack.d.ts.map +1 -0
  198. package/lib/typescript/module/src/ui/components/common/Touchable.d.ts +10 -0
  199. package/lib/typescript/module/src/ui/components/common/Touchable.d.ts.map +1 -0
  200. package/lib/typescript/module/src/ui/components/details/LogMessageDetails.d.ts +5 -6
  201. package/lib/typescript/module/src/ui/components/details/LogMessageDetails.d.ts.map +1 -1
  202. package/lib/typescript/module/src/ui/components/details/NetworkRequestDetails.d.ts +5 -6
  203. package/lib/typescript/module/src/ui/components/details/NetworkRequestDetails.d.ts.map +1 -1
  204. package/lib/typescript/module/src/ui/components/headers/ConsoleHeader.d.ts +9 -0
  205. package/lib/typescript/module/src/ui/components/headers/ConsoleHeader.d.ts.map +1 -0
  206. package/lib/typescript/module/src/ui/components/headers/DebuggerHeader.d.ts +9 -1
  207. package/lib/typescript/module/src/ui/components/headers/DebuggerHeader.d.ts.map +1 -1
  208. package/lib/typescript/module/src/ui/components/headers/Header.d.ts +3 -0
  209. package/lib/typescript/module/src/ui/components/headers/Header.d.ts.map +1 -0
  210. package/lib/typescript/module/src/ui/components/headers/HeaderComponents.d.ts +20 -0
  211. package/lib/typescript/module/src/ui/components/headers/HeaderComponents.d.ts.map +1 -0
  212. package/lib/typescript/module/src/ui/components/headers/NetworkHeader.d.ts +9 -0
  213. package/lib/typescript/module/src/ui/components/headers/NetworkHeader.d.ts.map +1 -0
  214. package/lib/typescript/module/src/ui/components/index.d.ts +0 -1
  215. package/lib/typescript/module/src/ui/components/index.d.ts.map +1 -1
  216. package/lib/typescript/module/src/ui/components/items/ConsolePanelItem.d.ts.map +1 -1
  217. package/lib/typescript/module/src/ui/components/items/DebuggerHeaderItem.d.ts.map +1 -1
  218. package/lib/typescript/module/src/ui/components/items/NetworkPanelItem.d.ts +3 -2
  219. package/lib/typescript/module/src/ui/components/items/NetworkPanelItem.d.ts.map +1 -1
  220. package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsItem.d.ts +4 -5
  221. package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsItem.d.ts.map +1 -1
  222. package/lib/typescript/module/src/ui/components/panels/ConsolePanel.d.ts +5 -1
  223. package/lib/typescript/module/src/ui/components/panels/ConsolePanel.d.ts.map +1 -1
  224. package/lib/typescript/module/src/ui/components/panels/NetworkPanel.d.ts +5 -1
  225. package/lib/typescript/module/src/ui/components/panels/NetworkPanel.d.ts.map +1 -1
  226. package/lib/typescript/module/src/ui/components/panels/Panel.d.ts +2 -0
  227. package/lib/typescript/module/src/ui/components/panels/Panel.d.ts.map +1 -0
  228. package/package.json +4 -4
  229. package/src/core/refs.ts +29 -0
  230. package/src/core/utils.ts +45 -14
  231. package/src/hooks/useNetworkInterceptor.ts +20 -27
  232. package/src/interceptors/FetchInterceptor.ts +7 -20
  233. package/src/interceptors/WebSocketInterceptor.ts +2 -11
  234. package/src/interceptors/XHRInterceptor.ts +13 -8
  235. package/src/theme/colors.ts +5 -0
  236. package/src/types/common.ts +2 -3
  237. package/src/types/http.ts +5 -6
  238. package/src/types/websocket.ts +2 -1
  239. package/src/ui/Xenon.tsx +38 -41
  240. package/src/ui/components/bubble/Bubble.tsx +101 -97
  241. package/src/ui/components/common/Divider.tsx +13 -0
  242. package/src/ui/components/common/Icon.tsx +12 -0
  243. package/src/ui/components/common/IndexedStack.tsx +62 -0
  244. package/src/ui/components/common/Touchable.tsx +21 -0
  245. package/src/ui/components/details/LogMessageDetails.tsx +31 -16
  246. package/src/ui/components/details/NetworkRequestDetails.tsx +143 -124
  247. package/src/ui/components/headers/ConsoleHeader.tsx +25 -0
  248. package/src/ui/components/headers/DebuggerHeader.tsx +28 -195
  249. package/src/ui/components/headers/Header.tsx +22 -0
  250. package/src/ui/components/headers/HeaderComponents.tsx +100 -0
  251. package/src/ui/components/headers/NetworkHeader.tsx +85 -0
  252. package/src/ui/components/index.ts +0 -1
  253. package/src/ui/components/items/ConsolePanelItem.tsx +11 -6
  254. package/src/ui/components/items/DebuggerHeaderItem.tsx +6 -10
  255. package/src/ui/components/items/NetworkPanelItem.tsx +64 -15
  256. package/src/ui/components/items/NetworkRequestDetailsItem.tsx +26 -21
  257. package/src/ui/components/panels/ConsolePanel.tsx +23 -10
  258. package/src/ui/components/panels/NetworkPanel.tsx +21 -14
  259. package/src/ui/components/panels/Panel.tsx +17 -0
  260. package/lib/commonjs/ui/components/details/DetailsViewer.js +0 -32
  261. package/lib/commonjs/ui/components/details/DetailsViewer.js.map +0 -1
  262. package/lib/module/ui/components/details/DetailsViewer.js +0 -32
  263. package/lib/module/ui/components/details/DetailsViewer.js.map +0 -1
  264. package/lib/typescript/commonjs/src/ui/components/details/DetailsViewer.d.ts +0 -2
  265. package/lib/typescript/commonjs/src/ui/components/details/DetailsViewer.d.ts.map +0 -1
  266. package/lib/typescript/module/src/ui/components/details/DetailsViewer.d.ts +0 -2
  267. package/lib/typescript/module/src/ui/components/details/DetailsViewer.d.ts.map +0 -1
  268. package/src/ui/components/details/DetailsViewer.tsx +0 -19
@@ -0,0 +1,100 @@
1
+ import { forwardRef, useContext, type PropsWithChildren } from 'react';
2
+ import { ScrollView, StyleSheet, type StyleProp, type ViewStyle } from 'react-native';
3
+ import { MainContext } from '../../../contexts';
4
+ import refs, { DebuggerVisibility, HeaderState, PanelState } from '../../../core/refs';
5
+ import colors from '../../../theme/colors';
6
+ import icons from '../../../theme/icons';
7
+ import type { DetailTab } from '../../../types';
8
+ import DebuggerHeaderItem from '../items/DebuggerHeaderItem';
9
+
10
+ const Back = ({ selectedPanel }: { selectedPanel: PanelState }) => {
11
+ const { setDebuggerState } = useContext(MainContext)!;
12
+
13
+ return (
14
+ <DebuggerHeaderItem
15
+ content={icons.arrowLeft}
16
+ onPress={() => {
17
+ refs.header.current?.setCurrentIndex(HeaderState.Debugger);
18
+ refs.panel.current?.setCurrentIndex(selectedPanel);
19
+ setDebuggerState(draft => {
20
+ draft.detailsData = null;
21
+ });
22
+ }}
23
+ />
24
+ );
25
+ };
26
+
27
+ const TabItem = ({ tab, label }: { tab: DetailTab; label: string }) => {
28
+ const {
29
+ debuggerState: { detailsData },
30
+ setDebuggerState,
31
+ } = useContext(MainContext)!;
32
+
33
+ return (
34
+ <DebuggerHeaderItem
35
+ isLabel
36
+ isActive={detailsData?.selectedTab === tab}
37
+ content={label}
38
+ onPress={() => {
39
+ setDebuggerState(draft => {
40
+ draft.detailsData!.selectedTab = tab;
41
+ });
42
+ }}
43
+ />
44
+ );
45
+ };
46
+
47
+ const MainButtons = () => {
48
+ const { setDebuggerState } = useContext(MainContext)!;
49
+
50
+ const onHide = () => {
51
+ refs.debugger.current?.setCurrentIndex(DebuggerVisibility.Bubble);
52
+ };
53
+
54
+ const onMove = () => {
55
+ setDebuggerState(draft => {
56
+ draft.position = draft.position === 'bottom' ? 'top' : 'bottom';
57
+ });
58
+ };
59
+
60
+ return (
61
+ <>
62
+ <DebuggerHeaderItem onPress={onHide} content={icons.hide} />
63
+ <DebuggerHeaderItem onPress={onMove} content={icons.move} />
64
+ </>
65
+ );
66
+ };
67
+
68
+ const Wrapper = forwardRef<ScrollView, PropsWithChildren<{ style?: StyleProp<ViewStyle> }>>(
69
+ ({ children, style }, ref) => {
70
+ return (
71
+ <ScrollView
72
+ ref={ref}
73
+ horizontal
74
+ style={[styles.container, style]}
75
+ contentContainerStyle={styles.contentContainer}
76
+ showsHorizontalScrollIndicator={false}
77
+ >
78
+ {children}
79
+ </ScrollView>
80
+ );
81
+ },
82
+ );
83
+
84
+ const styles = StyleSheet.create({
85
+ container: {
86
+ flexGrow: 0,
87
+ borderTopColor: colors.gray,
88
+ borderTopWidth: StyleSheet.hairlineWidth,
89
+ borderBottomColor: colors.gray,
90
+ borderBottomWidth: StyleSheet.hairlineWidth,
91
+ },
92
+ contentContainer: {
93
+ padding: 8,
94
+ columnGap: 8,
95
+ },
96
+ });
97
+
98
+ const HeaderComponents = { Back, TabItem, MainButtons, Wrapper };
99
+
100
+ export default HeaderComponents;
@@ -0,0 +1,85 @@
1
+ import { forwardRef, useContext } from 'react';
2
+ import { Share, type ScrollView, type StyleProp, type ViewStyle } from 'react-native';
3
+ import { MainContext } from '../../../contexts';
4
+ import refs, { DebuggerVisibility, type PanelState } from '../../../core/refs';
5
+ import { convertToCurl, getNetworkUtils } from '../../../core/utils';
6
+ import colors from '../../../theme/colors';
7
+ import icons from '../../../theme/icons';
8
+ import { NetworkType, type HttpRequest, type WebSocketRequest } from '../../../types';
9
+ import Divider from '../common/Divider';
10
+ import DebuggerHeaderItem from '../items/DebuggerHeaderItem';
11
+ import HeaderComponents from './HeaderComponents';
12
+
13
+ interface NetworkHeaderProps {
14
+ selectedPanel: PanelState;
15
+ style?: StyleProp<ViewStyle>;
16
+ }
17
+
18
+ let isSharing = false;
19
+
20
+ const NetworkHeader = forwardRef<ScrollView, NetworkHeaderProps>(
21
+ ({ selectedPanel, style }, ref) => {
22
+ const {
23
+ debuggerState: { detailsData },
24
+ setDebuggerState,
25
+ } = useContext(MainContext)!;
26
+
27
+ const data = detailsData?.data as HttpRequest | WebSocketRequest | undefined;
28
+
29
+ const { isHttp, overviewShown, headersShown, requestShown, responseShown, messagesShown } =
30
+ getNetworkUtils(data);
31
+
32
+ return (
33
+ <HeaderComponents.Wrapper ref={ref} style={style}>
34
+ <HeaderComponents.Back selectedPanel={selectedPanel} />
35
+ <HeaderComponents.MainButtons />
36
+
37
+ <Divider type="vertical" />
38
+
39
+ {overviewShown && <HeaderComponents.TabItem tab="overview" label="Overview" />}
40
+ {headersShown && <HeaderComponents.TabItem tab="headers" label="Headers" />}
41
+ {requestShown && <HeaderComponents.TabItem tab="request" label="Request" />}
42
+ {responseShown && <HeaderComponents.TabItem tab="response" label="Response" />}
43
+ {messagesShown && <HeaderComponents.TabItem tab="messages" label="Messages" />}
44
+
45
+ {isHttp && (
46
+ <>
47
+ <Divider type="vertical" />
48
+
49
+ <DebuggerHeaderItem
50
+ content={icons.beautify}
51
+ isActive={detailsData?.beautified}
52
+ activeColor={colors.green}
53
+ onPress={() => {
54
+ setDebuggerState(draft => {
55
+ draft.detailsData!.beautified = !draft.detailsData?.beautified;
56
+ });
57
+ }}
58
+ />
59
+ <DebuggerHeaderItem
60
+ content={icons.share}
61
+ onPress={async () => {
62
+ if (isSharing || !data || data.type === NetworkType.WS) return;
63
+
64
+ try {
65
+ isSharing = true;
66
+ refs.debugger.current?.setCurrentIndex(DebuggerVisibility.Bubble);
67
+
68
+ await Share.share({
69
+ message: convertToCurl(data.method, data.url, data.requestHeaders, data.body),
70
+ });
71
+ } catch (error) {
72
+ // Handle error
73
+ } finally {
74
+ isSharing = false;
75
+ }
76
+ }}
77
+ />
78
+ </>
79
+ )}
80
+ </HeaderComponents.Wrapper>
81
+ );
82
+ },
83
+ );
84
+
85
+ export default NetworkHeader;
@@ -1,5 +1,4 @@
1
1
  export { default as Bubble } from './bubble/Bubble';
2
- export { default as DetailsViewer } from './details/DetailsViewer';
3
2
  export { default as DebuggerHeader } from './headers/DebuggerHeader';
4
3
  export { default as ConsolePanel } from './panels/ConsolePanel';
5
4
  export { default as NetworkPanel } from './panels/NetworkPanel';
@@ -1,7 +1,8 @@
1
- import { StyleSheet, Text, TouchableOpacity } from 'react-native';
2
- import type { LogMessage } from '../../../types';
3
- import { formatLogMessage } from '../../../core/utils';
1
+ import { StyleSheet, Text } from 'react-native';
2
+ import { formatLogMessage, getConsoleTypeColor } from '../../../core/utils';
4
3
  import colors from '../../../theme/colors';
4
+ import type { LogMessage } from '../../../types';
5
+ import Touchable from '../common/Touchable';
5
6
 
6
7
  interface ConsolePanelItemProps extends LogMessage {
7
8
  onPress: () => void;
@@ -9,11 +10,14 @@ interface ConsolePanelItemProps extends LogMessage {
9
10
 
10
11
  export default function ConsolePanelItem({ type, values, onPress }: ConsolePanelItemProps) {
11
12
  return (
12
- <TouchableOpacity onPress={onPress} style={styles.container}>
13
+ <Touchable
14
+ onPress={onPress}
15
+ style={[styles.container, { backgroundColor: getConsoleTypeColor(type) }]}
16
+ >
13
17
  <Text numberOfLines={1} style={styles.text}>
14
- {formatLogMessage(type, values)}
18
+ {formatLogMessage(values)}
15
19
  </Text>
16
- </TouchableOpacity>
20
+ </Touchable>
17
21
  );
18
22
  }
19
23
 
@@ -21,6 +25,7 @@ const styles = StyleSheet.create({
21
25
  container: {
22
26
  flex: 1,
23
27
  padding: 8,
28
+ borderRadius: 8,
24
29
  },
25
30
  text: {
26
31
  color: colors.black,
@@ -1,5 +1,7 @@
1
- import { Image, StyleSheet, Text, TouchableOpacity, type ImageRequireSource } from 'react-native';
1
+ import { StyleSheet, Text, type ImageRequireSource } from 'react-native';
2
2
  import colors from '../../../theme/colors';
3
+ import Icon from '../common/Icon';
4
+ import Touchable from '../common/Touchable';
3
5
 
4
6
  interface DebuggerHeaderItemProps {
5
7
  content?: ImageRequireSource | string;
@@ -17,9 +19,8 @@ export default function DebuggerHeaderItem({
17
19
  onPress,
18
20
  }: DebuggerHeaderItemProps) {
19
21
  return (
20
- <TouchableOpacity
22
+ <Touchable
21
23
  onPress={onPress}
22
- activeOpacity={0.8}
23
24
  style={[
24
25
  styles.container,
25
26
  isLabel
@@ -34,9 +35,9 @@ export default function DebuggerHeaderItem({
34
35
  {typeof content === 'string' ? (
35
36
  <Text style={styles.title}>{content}</Text>
36
37
  ) : (
37
- <Image source={content} style={styles.icon} />
38
+ <Icon source={content} size={18} />
38
39
  )}
39
- </TouchableOpacity>
40
+ </Touchable>
40
41
  );
41
42
  }
42
43
 
@@ -65,9 +66,4 @@ const styles = StyleSheet.create({
65
66
  fontWeight: '600',
66
67
  color: colors.black,
67
68
  },
68
- icon: {
69
- width: 18,
70
- height: 18,
71
- tintColor: colors.black,
72
- },
73
69
  });
@@ -1,29 +1,58 @@
1
1
  import { useMemo } from 'react';
2
- import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
2
+ import { StyleSheet, Text, View } from 'react-native';
3
3
  import { URL } from 'react-native-url-polyfill';
4
- import type { HttpRequest, NetworkRequest } from '../../../types';
5
4
  import {
6
5
  formatRequestDuration,
7
6
  formatRequestMethod,
8
7
  formatRequestStatusCode,
9
8
  } from '../../../core/utils';
10
9
  import colors from '../../../theme/colors';
10
+ import type { HttpRequest, NetworkRequest } from '../../../types';
11
+ import Touchable from '../common/Touchable';
11
12
 
12
13
  interface NetworkPanelItemProps {
13
14
  method?: HttpRequest['method'];
14
15
  name: NetworkRequest['url'];
15
- duration?: NetworkRequest['duration'];
16
+ startTime?: NetworkRequest['startTime'];
17
+ endTime?: NetworkRequest['endTime'];
16
18
  status?: NetworkRequest['status'];
17
19
  onPress: () => void;
18
20
  }
19
21
 
22
+ const getMethodColor = (method: string) => {
23
+ switch (method) {
24
+ case 'GET':
25
+ return colors.blue;
26
+ case 'POST':
27
+ return colors.green;
28
+ case 'PUT':
29
+ return colors.yellow;
30
+ case 'PATCH':
31
+ return colors.cyan;
32
+ case 'DELETE':
33
+ return colors.red;
34
+ case 'OPTIONS':
35
+ case 'HEAD':
36
+ return colors.purple;
37
+ default:
38
+ return colors.black;
39
+ }
40
+ };
41
+
20
42
  export default function NetworkPanelItem({
21
43
  method,
22
44
  name,
23
- duration,
45
+ startTime,
46
+ endTime,
24
47
  status,
25
48
  onPress,
26
49
  }: NetworkPanelItemProps) {
50
+ const duration = formatRequestDuration(startTime, endTime);
51
+ const requestMethod = formatRequestMethod(method);
52
+ const requestStatusCode = formatRequestStatusCode(status);
53
+ const isRequestFailed = Number.isInteger(status) && status! >= 400 && status! < 600;
54
+ const textStyle = [styles.text, isRequestFailed && styles.failedText];
55
+
27
56
  const requestPath = useMemo(() => {
28
57
  if (!name) return '[failed]';
29
58
 
@@ -39,31 +68,38 @@ export default function NetworkPanelItem({
39
68
  }, [name]);
40
69
 
41
70
  return (
42
- <TouchableOpacity onPress={onPress} style={styles.container}>
71
+ <Touchable onPress={onPress} style={styles.container}>
43
72
  <View style={styles.column}>
44
- <Text numberOfLines={1} style={styles.text}>
45
- {formatRequestMethod(method)}
73
+ <Text
74
+ numberOfLines={1}
75
+ style={[
76
+ styles.text,
77
+ styles.methodText,
78
+ { backgroundColor: getMethodColor(requestMethod) },
79
+ ]}
80
+ >
81
+ {requestMethod}
46
82
  </Text>
47
83
  </View>
48
84
 
49
85
  <View style={[styles.column, styles.pathColumn]}>
50
- <Text numberOfLines={1} style={styles.text}>
86
+ <Text numberOfLines={1} style={textStyle}>
51
87
  {requestPath}
52
88
  </Text>
53
89
  </View>
54
90
 
55
91
  <View style={[styles.column, styles.durationColumn]}>
56
- <Text numberOfLines={1} style={styles.text}>
57
- {formatRequestDuration(duration)}
92
+ <Text numberOfLines={1} style={textStyle}>
93
+ {duration}
58
94
  </Text>
59
95
  </View>
60
96
 
61
97
  <View style={styles.column}>
62
- <Text numberOfLines={1} style={styles.text}>
63
- {formatRequestStatusCode(status)}
98
+ <Text numberOfLines={1} style={textStyle}>
99
+ {requestStatusCode}
64
100
  </Text>
65
101
  </View>
66
- </TouchableOpacity>
102
+ </Touchable>
67
103
  );
68
104
  }
69
105
 
@@ -71,6 +107,9 @@ const styles = StyleSheet.create({
71
107
  container: {
72
108
  flex: 1,
73
109
  flexDirection: 'row',
110
+ alignItems: 'center',
111
+ paddingVertical: 8,
112
+ columnGap: 8,
74
113
  },
75
114
  pathColumn: {
76
115
  flex: 5,
@@ -81,11 +120,21 @@ const styles = StyleSheet.create({
81
120
  column: {
82
121
  flex: 1.5,
83
122
  flexShrink: 1,
84
- padding: 8,
85
- paddingRight: 0,
123
+ },
124
+ failedText: {
125
+ color: colors.red,
86
126
  },
87
127
  text: {
88
128
  color: colors.black,
89
129
  fontSize: 14,
90
130
  },
131
+ methodText: {
132
+ borderRadius: 4,
133
+ color: colors.lightGray,
134
+ paddingVertical: 4,
135
+ paddingHorizontal: 2,
136
+ textAlign: 'center',
137
+ fontSize: 12,
138
+ fontWeight: '600',
139
+ },
91
140
  });
@@ -1,32 +1,32 @@
1
- import { StyleSheet, Text, type TextProps } from 'react-native';
1
+ import { StyleSheet, Text } from 'react-native';
2
2
  import colors from '../../../theme/colors';
3
3
 
4
- interface NetworkRequestDetailsItemProps extends TextProps {
5
- label?: string;
6
- content?: string;
4
+ interface NetworkRequestDetailsItemProps {
5
+ label: string;
6
+ content: string | [string, string][];
7
7
  }
8
8
 
9
9
  export default function NetworkRequestDetailsItem({
10
10
  label,
11
11
  content,
12
- style,
13
- ...props
14
12
  }: NetworkRequestDetailsItemProps) {
15
- if (label) {
16
- return (
17
- <Text {...props} style={[styles.text, style]}>
18
- <Text style={styles.label}>
19
- {label}
20
- {': '}
21
- </Text>
22
- {content}
23
- </Text>
24
- );
25
- }
26
-
27
13
  return (
28
- <Text {...props} style={[styles.text, style]}>
29
- {content}
14
+ <Text style={styles.text}>
15
+ <Text style={styles.label}>
16
+ {label}
17
+ {'\n'}
18
+ </Text>
19
+ {typeof content === 'string'
20
+ ? content
21
+ : content.map(([key, value]) => (
22
+ <Text key={key} style={[styles.label, styles.subLabel]}>
23
+ {key}
24
+ {': '}
25
+ <Text style={styles.text}>{value}</Text>
26
+ {'\n'}
27
+ </Text>
28
+ ))}
29
+ {Array.isArray(content) || content?.endsWith('\n') ? '' : '\n'}
30
30
  </Text>
31
31
  );
32
32
  }
@@ -34,11 +34,16 @@ export default function NetworkRequestDetailsItem({
34
34
  const styles = StyleSheet.create({
35
35
  text: {
36
36
  fontSize: 14,
37
+ fontWeight: 'normal',
37
38
  color: colors.black,
38
39
  },
39
40
  label: {
40
- fontSize: 14,
41
+ fontSize: 16,
41
42
  fontWeight: 'bold',
42
43
  color: colors.black,
43
44
  },
45
+ subLabel: {
46
+ fontSize: 14,
47
+ fontWeight: 'bold',
48
+ },
44
49
  });
@@ -1,13 +1,20 @@
1
- import { useCallback, useContext } from 'react';
2
- import { FlatList, StyleSheet, View, type ListRenderItem } from 'react-native';
3
- import colors from '../../../theme/colors';
1
+ import { forwardRef, useCallback, useContext } from 'react';
2
+ import {
3
+ FlatList,
4
+ StyleSheet,
5
+ View,
6
+ type ListRenderItem,
7
+ type StyleProp,
8
+ type ViewStyle,
9
+ } from 'react-native';
4
10
  import { MainContext } from '../../../contexts';
5
11
  import { DebuggerPanel, type LogMessage } from '../../../types';
6
12
  import ConsolePanelItem from '../items/ConsolePanelItem';
13
+ import refs, { HeaderState, PanelState } from '../../../core/refs';
7
14
 
8
15
  const Separator = () => <View style={styles.divider} />;
9
16
 
10
- export default function ConsolePanel() {
17
+ const ConsolePanel = forwardRef<FlatList, { style?: StyleProp<ViewStyle> }>(({ style }, ref) => {
11
18
  const {
12
19
  consoleInterceptor: { logMessages },
13
20
  setDebuggerState,
@@ -18,8 +25,9 @@ export default function ConsolePanel() {
18
25
  <ConsolePanelItem
19
26
  {...item}
20
27
  onPress={() => {
28
+ refs.header.current?.setCurrentIndex(HeaderState.Console);
29
+ refs.panel.current?.setCurrentIndex(PanelState.ConsoleDetail);
21
30
  setDebuggerState(draft => {
22
- draft.selectedPanel = null;
23
31
  draft.detailsData = {
24
32
  type: DebuggerPanel.Console,
25
33
  data: item,
@@ -35,23 +43,28 @@ export default function ConsolePanel() {
35
43
 
36
44
  return (
37
45
  <FlatList
46
+ ref={ref}
38
47
  inverted
39
48
  data={[...logMessages].reverse()}
40
49
  renderItem={renderItem}
41
50
  keyExtractor={(_, index) => index.toString()}
42
51
  ItemSeparatorComponent={Separator}
43
- style={styles.container}
52
+ style={[styles.container, style]}
53
+ contentContainerStyle={styles.contentContainer}
44
54
  />
45
55
  );
46
- }
56
+ });
47
57
 
48
58
  const styles = StyleSheet.create({
49
59
  container: {
50
60
  flex: 1,
51
- paddingHorizontal: 8,
61
+ },
62
+ contentContainer: {
63
+ padding: 8,
52
64
  },
53
65
  divider: {
54
- height: StyleSheet.hairlineWidth,
55
- backgroundColor: colors.gray,
66
+ height: 4,
56
67
  },
57
68
  });
69
+
70
+ export default ConsolePanel;
@@ -1,7 +1,13 @@
1
- import { useCallback, useContext, useMemo } from 'react';
2
- import { FlatList, StyleSheet, View, type ListRenderItem } from 'react-native';
3
- import colors from '../../../theme/colors';
1
+ import { forwardRef, useCallback, useContext, useMemo } from 'react';
2
+ import {
3
+ FlatList,
4
+ StyleSheet,
5
+ type ListRenderItem,
6
+ type StyleProp,
7
+ type ViewStyle,
8
+ } from 'react-native';
4
9
  import { MainContext } from '../../../contexts';
10
+ import refs, { HeaderState, PanelState } from '../../../core/refs';
5
11
  import {
6
12
  DebuggerPanel,
7
13
  NetworkType,
@@ -9,16 +15,16 @@ import {
9
15
  type ID,
10
16
  type WebSocketRequest,
11
17
  } from '../../../types';
18
+ import Divider from '../common/Divider';
12
19
  import NetworkPanelItem from '../items/NetworkPanelItem';
13
20
 
14
- const Separator = () => <View style={styles.divider} />;
21
+ const Separator = () => <Divider type="horizontal" />;
15
22
 
16
- export default function NetworkPanel() {
23
+ const NetworkPanel = forwardRef<FlatList, { style?: StyleProp<ViewStyle> }>(({ style }, ref) => {
17
24
  const {
18
25
  networkInterceptor: { networkRequests },
19
26
  setDebuggerState,
20
27
  } = useContext(MainContext)!;
21
-
22
28
  const data = useMemo(() => Array.from(networkRequests).reverse(), [networkRequests]);
23
29
 
24
30
  const renderItem = useCallback<ListRenderItem<[NonNullable<ID>, HttpRequest | WebSocketRequest]>>(
@@ -26,11 +32,13 @@ export default function NetworkPanel() {
26
32
  <NetworkPanelItem
27
33
  method={item.type === NetworkType.WS ? undefined : item.method}
28
34
  name={item.url}
29
- duration={item.duration}
35
+ startTime={item.startTime}
36
+ endTime={item.endTime}
30
37
  status={item.status}
31
38
  onPress={() => {
39
+ refs.header.current?.setCurrentIndex(HeaderState.Network);
40
+ refs.panel.current?.setCurrentIndex(PanelState.NetworkDetail);
32
41
  setDebuggerState(draft => {
33
- draft.selectedPanel = null;
34
42
  draft.detailsData = {
35
43
  type: DebuggerPanel.Network,
36
44
  data: item,
@@ -48,21 +56,20 @@ export default function NetworkPanel() {
48
56
  <FlatList
49
57
  inverted
50
58
  data={data}
59
+ ref={ref}
51
60
  renderItem={renderItem}
52
61
  keyExtractor={([key]) => key}
53
62
  ItemSeparatorComponent={Separator}
54
- style={styles.container}
63
+ style={[styles.container, style]}
55
64
  />
56
65
  );
57
- }
66
+ });
58
67
 
59
68
  const styles = StyleSheet.create({
60
69
  container: {
61
70
  flex: 1,
62
71
  paddingHorizontal: 8,
63
72
  },
64
- divider: {
65
- height: StyleSheet.hairlineWidth,
66
- backgroundColor: colors.gray,
67
- },
68
73
  });
74
+
75
+ export default NetworkPanel;
@@ -0,0 +1,17 @@
1
+ import refs, { PanelState } from '../../../core/refs';
2
+ import IndexedStack from '../common/IndexedStack';
3
+ import LogMessageDetails from '../details/LogMessageDetails';
4
+ import NetworkRequestDetails from '../details/NetworkRequestDetails';
5
+ import ConsolePanel from './ConsolePanel';
6
+ import NetworkPanel from './NetworkPanel';
7
+
8
+ export default function Panel() {
9
+ return (
10
+ <IndexedStack defaultIndex={PanelState.Network} id="debugger-panel" ref={refs.panel}>
11
+ <NetworkPanel />
12
+ <ConsolePanel />
13
+ <NetworkRequestDetails />
14
+ <LogMessageDetails />
15
+ </IndexedStack>
16
+ );
17
+ }
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = DetailsViewer;
7
- var _react = require("react");
8
- var _contexts = require("../../../contexts");
9
- var _types = require("../../../types");
10
- var _LogMessageDetails = _interopRequireDefault(require("./LogMessageDetails"));
11
- var _NetworkRequestDetails = _interopRequireDefault(require("./NetworkRequestDetails"));
12
- var _jsxRuntime = require("react/jsx-runtime");
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
- function DetailsViewer() {
15
- const {
16
- debuggerState
17
- } = (0, _react.useContext)(_contexts.MainContext);
18
- const detailsData = debuggerState.detailsData;
19
- switch (detailsData?.type) {
20
- case _types.DebuggerPanel.Network:
21
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NetworkRequestDetails.default, {
22
- item: detailsData.data
23
- });
24
- case _types.DebuggerPanel.Console:
25
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_LogMessageDetails.default, {
26
- item: detailsData.data
27
- });
28
- default:
29
- return null;
30
- }
31
- }
32
- //# sourceMappingURL=DetailsViewer.js.map