react-native-xenon 0.2.1 → 0.4.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 (330) hide show
  1. package/README.md +21 -3
  2. package/lib/commonjs/assets/icons/bug.png +0 -0
  3. package/lib/commonjs/contexts/MainContext.js.map +1 -1
  4. package/lib/commonjs/contexts/index.js +1 -1
  5. package/lib/commonjs/core/constants.js.map +1 -0
  6. package/lib/commonjs/core/data.js +10 -0
  7. package/lib/commonjs/core/data.js.map +1 -0
  8. package/lib/commonjs/core/global.d.js.map +1 -0
  9. package/lib/commonjs/{utils.js → core/utils.js} +24 -1
  10. package/lib/commonjs/core/utils.js.map +1 -0
  11. package/lib/commonjs/hooks/index.js +2 -9
  12. package/lib/commonjs/hooks/index.js.map +1 -1
  13. package/lib/commonjs/hooks/useConsoleInterceptor.js +9 -6
  14. package/lib/commonjs/hooks/useConsoleInterceptor.js.map +1 -1
  15. package/lib/commonjs/hooks/useNetworkInterceptor.js +21 -16
  16. package/lib/commonjs/hooks/useNetworkInterceptor.js.map +1 -1
  17. package/lib/commonjs/index.js +1 -1
  18. package/lib/commonjs/interceptors/ConsoleInterceptor.js +12 -17
  19. package/lib/commonjs/interceptors/ConsoleInterceptor.js.map +1 -1
  20. package/lib/commonjs/interceptors/FetchInterceptor.js +15 -20
  21. package/lib/commonjs/interceptors/FetchInterceptor.js.map +1 -1
  22. package/lib/commonjs/interceptors/HttpInterceptor.js +8 -47
  23. package/lib/commonjs/interceptors/HttpInterceptor.js.map +1 -1
  24. package/lib/commonjs/interceptors/Interceptor.js +9 -3
  25. package/lib/commonjs/interceptors/Interceptor.js.map +1 -1
  26. package/lib/commonjs/interceptors/NetworkInterceptor.js +15 -2
  27. package/lib/commonjs/interceptors/NetworkInterceptor.js.map +1 -1
  28. package/lib/commonjs/interceptors/WebSocketInterceptor.js +28 -77
  29. package/lib/commonjs/interceptors/WebSocketInterceptor.js.map +1 -1
  30. package/lib/commonjs/interceptors/XHRInterceptor.js +13 -18
  31. package/lib/commonjs/interceptors/XHRInterceptor.js.map +1 -1
  32. package/lib/commonjs/interceptors/index.js +4 -4
  33. package/lib/commonjs/theme/colors.js.map +1 -0
  34. package/lib/commonjs/theme/icons.js +15 -0
  35. package/lib/commonjs/theme/icons.js.map +1 -0
  36. package/lib/commonjs/types/common.js.map +1 -1
  37. package/lib/commonjs/types/index.js +4 -4
  38. package/lib/commonjs/ui/Xenon.js +78 -64
  39. package/lib/commonjs/ui/Xenon.js.map +1 -1
  40. package/lib/commonjs/ui/components/bubble/Bubble.js +89 -57
  41. package/lib/commonjs/ui/components/bubble/Bubble.js.map +1 -1
  42. package/lib/commonjs/ui/components/details/DetailsViewer.js +9 -14
  43. package/lib/commonjs/ui/components/details/DetailsViewer.js.map +1 -1
  44. package/lib/commonjs/ui/components/details/LogMessageDetails.js +2 -2
  45. package/lib/commonjs/ui/components/details/LogMessageDetails.js.map +1 -1
  46. package/lib/commonjs/ui/components/details/NetworkRequestDetails.js +26 -11
  47. package/lib/commonjs/ui/components/details/NetworkRequestDetails.js.map +1 -1
  48. package/lib/commonjs/ui/components/headers/DebuggerHeader.js +42 -22
  49. package/lib/commonjs/ui/components/headers/DebuggerHeader.js.map +1 -1
  50. package/lib/commonjs/ui/components/headers/NetworkPanelHeader.js +2 -2
  51. package/lib/commonjs/ui/components/headers/NetworkPanelHeader.js.map +1 -1
  52. package/lib/commonjs/ui/components/headers/NetworkRequestDetailsHeader.js +1 -2
  53. package/lib/commonjs/ui/components/headers/NetworkRequestDetailsHeader.js.map +1 -1
  54. package/lib/commonjs/ui/components/index.js +5 -5
  55. package/lib/commonjs/ui/components/items/ConsolePanelItem.js +2 -2
  56. package/lib/commonjs/ui/components/items/ConsolePanelItem.js.map +1 -1
  57. package/lib/commonjs/ui/components/items/DebuggerHeaderItem.js +4 -2
  58. package/lib/commonjs/ui/components/items/DebuggerHeaderItem.js.map +1 -1
  59. package/lib/commonjs/ui/components/items/NetworkPanelItem.js +2 -2
  60. package/lib/commonjs/ui/components/items/NetworkPanelItem.js.map +1 -1
  61. package/lib/commonjs/ui/components/items/NetworkRequestDetailsHeaderItem.js +2 -3
  62. package/lib/commonjs/ui/components/items/NetworkRequestDetailsHeaderItem.js.map +1 -1
  63. package/lib/commonjs/ui/components/items/NetworkRequestDetailsItem.js +7 -6
  64. package/lib/commonjs/ui/components/items/NetworkRequestDetailsItem.js.map +1 -1
  65. package/lib/commonjs/ui/components/panels/ConsolePanel.js +21 -23
  66. package/lib/commonjs/ui/components/panels/ConsolePanel.js.map +1 -1
  67. package/lib/commonjs/ui/components/panels/NetworkPanel.js +30 -33
  68. package/lib/commonjs/ui/components/panels/NetworkPanel.js.map +1 -1
  69. package/lib/module/assets/icons/bug.png +0 -0
  70. package/lib/module/contexts/MainContext.js +7 -3
  71. package/lib/module/contexts/MainContext.js.map +1 -1
  72. package/lib/module/contexts/index.js +11 -1
  73. package/lib/module/contexts/index.js.map +1 -1
  74. package/lib/module/core/constants.js +8 -0
  75. package/lib/module/core/constants.js.map +1 -0
  76. package/lib/module/core/data.js +10 -0
  77. package/lib/module/core/data.js.map +1 -0
  78. package/lib/module/core/global.d.js.map +1 -0
  79. package/lib/module/core/utils.js +71 -0
  80. package/lib/module/core/utils.js.map +1 -0
  81. package/lib/module/hooks/index.js +18 -3
  82. package/lib/module/hooks/index.js.map +1 -1
  83. package/lib/module/hooks/useConsoleInterceptor.js +21 -14
  84. package/lib/module/hooks/useConsoleInterceptor.js.map +1 -1
  85. package/lib/module/hooks/useNetworkInterceptor.js +38 -29
  86. package/lib/module/hooks/useNetworkInterceptor.js.map +1 -1
  87. package/lib/module/index.js +11 -1
  88. package/lib/module/index.js.map +1 -1
  89. package/lib/module/interceptors/ConsoleInterceptor.js +16 -14
  90. package/lib/module/interceptors/ConsoleInterceptor.js.map +1 -1
  91. package/lib/module/interceptors/FetchInterceptor.js +23 -22
  92. package/lib/module/interceptors/FetchInterceptor.js.map +1 -1
  93. package/lib/module/interceptors/HttpInterceptor.js +14 -48
  94. package/lib/module/interceptors/HttpInterceptor.js.map +1 -1
  95. package/lib/module/interceptors/Interceptor.js +13 -2
  96. package/lib/module/interceptors/Interceptor.js.map +1 -1
  97. package/lib/module/interceptors/NetworkInterceptor.js +21 -2
  98. package/lib/module/interceptors/NetworkInterceptor.js.map +1 -1
  99. package/lib/module/interceptors/WebSocketInterceptor.js +48 -91
  100. package/lib/module/interceptors/WebSocketInterceptor.js.map +1 -1
  101. package/lib/module/interceptors/XHRInterceptor.js +19 -18
  102. package/lib/module/interceptors/XHRInterceptor.js.map +1 -1
  103. package/lib/module/interceptors/index.js +32 -4
  104. package/lib/module/interceptors/index.js.map +1 -1
  105. package/lib/module/theme/colors.js +14 -0
  106. package/lib/module/theme/colors.js.map +1 -0
  107. package/lib/module/theme/icons.js +15 -0
  108. package/lib/module/theme/icons.js.map +1 -0
  109. package/lib/module/types/common.js +6 -2
  110. package/lib/module/types/common.js.map +1 -1
  111. package/lib/module/types/http.js +3 -1
  112. package/lib/module/types/index.js +47 -4
  113. package/lib/module/types/index.js.map +1 -1
  114. package/lib/module/types/websocket.js +3 -1
  115. package/lib/module/ui/Xenon.js +97 -78
  116. package/lib/module/ui/Xenon.js.map +1 -1
  117. package/lib/module/ui/components/bubble/Bubble.js +100 -63
  118. package/lib/module/ui/components/bubble/Bubble.js.map +1 -1
  119. package/lib/module/ui/components/details/DetailsViewer.js +18 -18
  120. package/lib/module/ui/components/details/DetailsViewer.js.map +1 -1
  121. package/lib/module/ui/components/details/LogMessageDetails.js +15 -10
  122. package/lib/module/ui/components/details/LogMessageDetails.js.map +1 -1
  123. package/lib/module/ui/components/details/NetworkRequestDetails.js +66 -46
  124. package/lib/module/ui/components/details/NetworkRequestDetails.js.map +1 -1
  125. package/lib/module/ui/components/headers/DebuggerHeader.js +68 -43
  126. package/lib/module/ui/components/headers/DebuggerHeader.js.map +1 -1
  127. package/lib/module/ui/components/headers/NetworkPanelHeader.js +26 -21
  128. package/lib/module/ui/components/headers/NetworkPanelHeader.js.map +1 -1
  129. package/lib/module/ui/components/headers/NetworkRequestDetailsHeader.js +14 -10
  130. package/lib/module/ui/components/headers/NetworkRequestDetailsHeader.js.map +1 -1
  131. package/lib/module/ui/components/index.js +39 -5
  132. package/lib/module/ui/components/index.js.map +1 -1
  133. package/lib/module/ui/components/items/ConsolePanelItem.js +15 -10
  134. package/lib/module/ui/components/items/ConsolePanelItem.js.map +1 -1
  135. package/lib/module/ui/components/items/DebuggerHeaderItem.js +20 -13
  136. package/lib/module/ui/components/items/DebuggerHeaderItem.js.map +1 -1
  137. package/lib/module/ui/components/items/NetworkPanelItem.js +28 -23
  138. package/lib/module/ui/components/items/NetworkPanelItem.js.map +1 -1
  139. package/lib/module/ui/components/items/NetworkRequestDetailsHeaderItem.js +15 -11
  140. package/lib/module/ui/components/items/NetworkRequestDetailsHeaderItem.js.map +1 -1
  141. package/lib/module/ui/components/items/NetworkRequestDetailsItem.js +21 -15
  142. package/lib/module/ui/components/items/NetworkRequestDetailsItem.js.map +1 -1
  143. package/lib/module/ui/components/panels/ConsolePanel.js +35 -32
  144. package/lib/module/ui/components/panels/ConsolePanel.js.map +1 -1
  145. package/lib/module/ui/components/panels/NetworkPanel.js +43 -41
  146. package/lib/module/ui/components/panels/NetworkPanel.js.map +1 -1
  147. package/lib/typescript/commonjs/src/contexts/MainContext.d.ts +5 -17
  148. package/lib/typescript/commonjs/src/contexts/MainContext.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/src/core/constants.d.ts.map +1 -0
  150. package/lib/typescript/commonjs/src/core/data.d.ts +10 -0
  151. package/lib/typescript/commonjs/src/core/data.d.ts.map +1 -0
  152. package/lib/typescript/commonjs/src/{utils.d.ts → core/utils.d.ts} +10 -1
  153. package/lib/typescript/commonjs/src/core/utils.d.ts.map +1 -0
  154. package/lib/typescript/commonjs/src/hooks/index.d.ts +0 -1
  155. package/lib/typescript/commonjs/src/hooks/index.d.ts.map +1 -1
  156. package/lib/typescript/commonjs/src/hooks/useConsoleInterceptor.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/src/hooks/useNetworkInterceptor.d.ts.map +1 -1
  158. package/lib/typescript/commonjs/src/interceptors/ConsoleInterceptor.d.ts +3 -5
  159. package/lib/typescript/commonjs/src/interceptors/ConsoleInterceptor.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/src/interceptors/FetchInterceptor.d.ts +0 -2
  161. package/lib/typescript/commonjs/src/interceptors/FetchInterceptor.d.ts.map +1 -1
  162. package/lib/typescript/commonjs/src/interceptors/HttpInterceptor.d.ts +3 -20
  163. package/lib/typescript/commonjs/src/interceptors/HttpInterceptor.d.ts.map +1 -1
  164. package/lib/typescript/commonjs/src/interceptors/Interceptor.d.ts +3 -1
  165. package/lib/typescript/commonjs/src/interceptors/Interceptor.d.ts.map +1 -1
  166. package/lib/typescript/commonjs/src/interceptors/NetworkInterceptor.d.ts +7 -3
  167. package/lib/typescript/commonjs/src/interceptors/NetworkInterceptor.d.ts.map +1 -1
  168. package/lib/typescript/commonjs/src/interceptors/WebSocketInterceptor.d.ts +4 -25
  169. package/lib/typescript/commonjs/src/interceptors/WebSocketInterceptor.d.ts.map +1 -1
  170. package/lib/typescript/commonjs/src/interceptors/XHRInterceptor.d.ts +0 -2
  171. package/lib/typescript/commonjs/src/interceptors/XHRInterceptor.d.ts.map +1 -1
  172. package/lib/typescript/commonjs/src/theme/colors.d.ts.map +1 -0
  173. package/lib/typescript/{module/src → commonjs/src/theme}/icons.d.ts +1 -1
  174. package/lib/typescript/commonjs/src/theme/icons.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/src/types/common.d.ts +6 -4
  176. package/lib/typescript/commonjs/src/types/common.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/src/types/console.d.ts +3 -0
  178. package/lib/typescript/commonjs/src/types/console.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/src/types/http.d.ts +7 -5
  180. package/lib/typescript/commonjs/src/types/http.d.ts.map +1 -1
  181. package/lib/typescript/commonjs/src/types/websocket.d.ts +9 -7
  182. package/lib/typescript/commonjs/src/types/websocket.d.ts.map +1 -1
  183. package/lib/typescript/commonjs/src/ui/Xenon.d.ts +2 -0
  184. package/lib/typescript/commonjs/src/ui/Xenon.d.ts.map +1 -1
  185. package/lib/typescript/commonjs/src/ui/components/bubble/Bubble.d.ts +4 -1
  186. package/lib/typescript/commonjs/src/ui/components/bubble/Bubble.d.ts.map +1 -1
  187. package/lib/typescript/commonjs/src/ui/components/details/DetailsViewer.d.ts.map +1 -1
  188. package/lib/typescript/commonjs/src/ui/components/details/NetworkRequestDetails.d.ts.map +1 -1
  189. package/lib/typescript/commonjs/src/ui/components/headers/DebuggerHeader.d.ts +5 -1
  190. package/lib/typescript/commonjs/src/ui/components/headers/DebuggerHeader.d.ts.map +1 -1
  191. package/lib/typescript/commonjs/src/ui/components/headers/NetworkRequestDetailsHeader.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts +1 -3
  193. package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsItem.d.ts +3 -3
  195. package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsItem.d.ts.map +1 -1
  196. package/lib/typescript/commonjs/src/ui/components/panels/ConsolePanel.d.ts.map +1 -1
  197. package/lib/typescript/commonjs/src/ui/components/panels/NetworkPanel.d.ts.map +1 -1
  198. package/lib/typescript/module/src/contexts/MainContext.d.ts +5 -17
  199. package/lib/typescript/module/src/contexts/MainContext.d.ts.map +1 -1
  200. package/lib/typescript/module/src/core/constants.d.ts.map +1 -0
  201. package/lib/typescript/module/src/core/data.d.ts +10 -0
  202. package/lib/typescript/module/src/core/data.d.ts.map +1 -0
  203. package/lib/typescript/module/src/{utils.d.ts → core/utils.d.ts} +10 -1
  204. package/lib/typescript/module/src/core/utils.d.ts.map +1 -0
  205. package/lib/typescript/module/src/hooks/index.d.ts +0 -1
  206. package/lib/typescript/module/src/hooks/index.d.ts.map +1 -1
  207. package/lib/typescript/module/src/hooks/useConsoleInterceptor.d.ts.map +1 -1
  208. package/lib/typescript/module/src/hooks/useNetworkInterceptor.d.ts.map +1 -1
  209. package/lib/typescript/module/src/interceptors/ConsoleInterceptor.d.ts +3 -5
  210. package/lib/typescript/module/src/interceptors/ConsoleInterceptor.d.ts.map +1 -1
  211. package/lib/typescript/module/src/interceptors/FetchInterceptor.d.ts +0 -2
  212. package/lib/typescript/module/src/interceptors/FetchInterceptor.d.ts.map +1 -1
  213. package/lib/typescript/module/src/interceptors/HttpInterceptor.d.ts +3 -20
  214. package/lib/typescript/module/src/interceptors/HttpInterceptor.d.ts.map +1 -1
  215. package/lib/typescript/module/src/interceptors/Interceptor.d.ts +3 -1
  216. package/lib/typescript/module/src/interceptors/Interceptor.d.ts.map +1 -1
  217. package/lib/typescript/module/src/interceptors/NetworkInterceptor.d.ts +7 -3
  218. package/lib/typescript/module/src/interceptors/NetworkInterceptor.d.ts.map +1 -1
  219. package/lib/typescript/module/src/interceptors/WebSocketInterceptor.d.ts +4 -25
  220. package/lib/typescript/module/src/interceptors/WebSocketInterceptor.d.ts.map +1 -1
  221. package/lib/typescript/module/src/interceptors/XHRInterceptor.d.ts +0 -2
  222. package/lib/typescript/module/src/interceptors/XHRInterceptor.d.ts.map +1 -1
  223. package/lib/typescript/module/src/theme/colors.d.ts.map +1 -0
  224. package/lib/typescript/{commonjs/src → module/src/theme}/icons.d.ts +1 -1
  225. package/lib/typescript/module/src/theme/icons.d.ts.map +1 -0
  226. package/lib/typescript/module/src/types/common.d.ts +6 -4
  227. package/lib/typescript/module/src/types/common.d.ts.map +1 -1
  228. package/lib/typescript/module/src/types/console.d.ts +3 -0
  229. package/lib/typescript/module/src/types/console.d.ts.map +1 -1
  230. package/lib/typescript/module/src/types/http.d.ts +7 -5
  231. package/lib/typescript/module/src/types/http.d.ts.map +1 -1
  232. package/lib/typescript/module/src/types/websocket.d.ts +9 -7
  233. package/lib/typescript/module/src/types/websocket.d.ts.map +1 -1
  234. package/lib/typescript/module/src/ui/Xenon.d.ts +2 -0
  235. package/lib/typescript/module/src/ui/Xenon.d.ts.map +1 -1
  236. package/lib/typescript/module/src/ui/components/bubble/Bubble.d.ts +4 -1
  237. package/lib/typescript/module/src/ui/components/bubble/Bubble.d.ts.map +1 -1
  238. package/lib/typescript/module/src/ui/components/details/DetailsViewer.d.ts.map +1 -1
  239. package/lib/typescript/module/src/ui/components/details/NetworkRequestDetails.d.ts.map +1 -1
  240. package/lib/typescript/module/src/ui/components/headers/DebuggerHeader.d.ts +5 -1
  241. package/lib/typescript/module/src/ui/components/headers/DebuggerHeader.d.ts.map +1 -1
  242. package/lib/typescript/module/src/ui/components/headers/NetworkRequestDetailsHeader.d.ts.map +1 -1
  243. package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts +1 -3
  244. package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts.map +1 -1
  245. package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsItem.d.ts +3 -3
  246. package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsItem.d.ts.map +1 -1
  247. package/lib/typescript/module/src/ui/components/panels/ConsolePanel.d.ts.map +1 -1
  248. package/lib/typescript/module/src/ui/components/panels/NetworkPanel.d.ts.map +1 -1
  249. package/package.json +12 -6
  250. package/src/assets/icons/bug.png +0 -0
  251. package/src/contexts/MainContext.ts +6 -25
  252. package/src/core/data.ts +12 -0
  253. package/src/{utils.ts → core/utils.ts} +27 -1
  254. package/src/hooks/index.ts +0 -1
  255. package/src/hooks/useConsoleInterceptor.ts +10 -7
  256. package/src/hooks/useNetworkInterceptor.ts +52 -55
  257. package/src/interceptors/ConsoleInterceptor.ts +11 -15
  258. package/src/interceptors/FetchInterceptor.ts +17 -18
  259. package/src/interceptors/HttpInterceptor.ts +9 -62
  260. package/src/interceptors/Interceptor.ts +11 -1
  261. package/src/interceptors/NetworkInterceptor.ts +18 -3
  262. package/src/interceptors/WebSocketInterceptor.ts +28 -95
  263. package/src/interceptors/XHRInterceptor.ts +11 -15
  264. package/src/theme/icons.ts +9 -0
  265. package/src/types/common.ts +8 -8
  266. package/src/types/console.ts +4 -0
  267. package/src/types/http.ts +24 -28
  268. package/src/types/websocket.ts +16 -26
  269. package/src/ui/Xenon.tsx +89 -78
  270. package/src/ui/components/bubble/Bubble.tsx +98 -62
  271. package/src/ui/components/details/DetailsViewer.tsx +6 -9
  272. package/src/ui/components/details/LogMessageDetails.tsx +2 -2
  273. package/src/ui/components/details/NetworkRequestDetails.tsx +26 -9
  274. package/src/ui/components/headers/DebuggerHeader.tsx +46 -24
  275. package/src/ui/components/headers/NetworkPanelHeader.tsx +2 -2
  276. package/src/ui/components/headers/NetworkRequestDetailsHeader.tsx +0 -1
  277. package/src/ui/components/items/ConsolePanelItem.tsx +2 -2
  278. package/src/ui/components/items/DebuggerHeaderItem.tsx +3 -1
  279. package/src/ui/components/items/NetworkPanelItem.tsx +2 -2
  280. package/src/ui/components/items/NetworkRequestDetailsHeaderItem.tsx +1 -5
  281. package/src/ui/components/items/NetworkRequestDetailsItem.tsx +7 -7
  282. package/src/ui/components/panels/ConsolePanel.tsx +19 -22
  283. package/src/ui/components/panels/NetworkPanel.tsx +31 -35
  284. package/lib/commonjs/assets/icons/code.png +0 -0
  285. package/lib/commonjs/colors.js.map +0 -1
  286. package/lib/commonjs/constants.js.map +0 -1
  287. package/lib/commonjs/global.d.js.map +0 -1
  288. package/lib/commonjs/hooks/useScrollToBottom.js +0 -23
  289. package/lib/commonjs/hooks/useScrollToBottom.js.map +0 -1
  290. package/lib/commonjs/icons.js +0 -15
  291. package/lib/commonjs/icons.js.map +0 -1
  292. package/lib/commonjs/utils.js.map +0 -1
  293. package/lib/module/assets/icons/code.png +0 -0
  294. package/lib/module/colors.js +0 -10
  295. package/lib/module/colors.js.map +0 -1
  296. package/lib/module/constants.js +0 -4
  297. package/lib/module/constants.js.map +0 -1
  298. package/lib/module/global.d.js.map +0 -1
  299. package/lib/module/hooks/useScrollToBottom.js +0 -19
  300. package/lib/module/hooks/useScrollToBottom.js.map +0 -1
  301. package/lib/module/icons.js +0 -11
  302. package/lib/module/icons.js.map +0 -1
  303. package/lib/module/utils.js +0 -36
  304. package/lib/module/utils.js.map +0 -1
  305. package/lib/typescript/commonjs/src/colors.d.ts.map +0 -1
  306. package/lib/typescript/commonjs/src/constants.d.ts.map +0 -1
  307. package/lib/typescript/commonjs/src/hooks/useScrollToBottom.d.ts +0 -3
  308. package/lib/typescript/commonjs/src/hooks/useScrollToBottom.d.ts.map +0 -1
  309. package/lib/typescript/commonjs/src/icons.d.ts.map +0 -1
  310. package/lib/typescript/commonjs/src/utils.d.ts.map +0 -1
  311. package/lib/typescript/module/src/colors.d.ts.map +0 -1
  312. package/lib/typescript/module/src/constants.d.ts.map +0 -1
  313. package/lib/typescript/module/src/hooks/useScrollToBottom.d.ts +0 -3
  314. package/lib/typescript/module/src/hooks/useScrollToBottom.d.ts.map +0 -1
  315. package/lib/typescript/module/src/icons.d.ts.map +0 -1
  316. package/lib/typescript/module/src/utils.d.ts.map +0 -1
  317. package/src/assets/icons/code.png +0 -0
  318. package/src/hooks/useScrollToBottom.ts +0 -23
  319. package/src/icons.ts +0 -9
  320. /package/lib/commonjs/{constants.js → core/constants.js} +0 -0
  321. /package/lib/commonjs/{global.d.js → core/global.d.js} +0 -0
  322. /package/lib/commonjs/{colors.js → theme/colors.js} +0 -0
  323. /package/lib/module/{global.d.js → core/global.d.js} +0 -0
  324. /package/lib/typescript/commonjs/src/{constants.d.ts → core/constants.d.ts} +0 -0
  325. /package/lib/typescript/commonjs/src/{colors.d.ts → theme/colors.d.ts} +0 -0
  326. /package/lib/typescript/module/src/{constants.d.ts → core/constants.d.ts} +0 -0
  327. /package/lib/typescript/module/src/{colors.d.ts → theme/colors.d.ts} +0 -0
  328. /package/src/{constants.ts → core/constants.ts} +0 -0
  329. /package/src/{global.d.ts → core/global.d.ts} +0 -0
  330. /package/src/{colors.ts → theme/colors.ts} +0 -0
@@ -1,91 +1,127 @@
1
- import { useContext, useMemo, type MutableRefObject } from 'react';
1
+ import { useContext, useMemo, useRef, useState, type MutableRefObject } from 'react';
2
2
  import {
3
3
  Animated,
4
4
  Image,
5
5
  PanResponder,
6
6
  StyleSheet,
7
+ View,
7
8
  type PanResponderGestureState,
8
9
  } from 'react-native';
9
10
  import { MainContext } from '../../../contexts';
10
- import icons from '../../../icons';
11
- import colors from '../../../colors';
11
+ import icons from '../../../theme/icons';
12
+ import colors from '../../../theme/colors';
13
+ import { clamp, getVerticalSafeMargin } from '../../../core/utils';
12
14
 
13
15
  interface BubbleProps {
14
16
  bubbleSize: number;
17
+ idleBubbleOpacity: number;
15
18
  pan: MutableRefObject<Animated.ValueXY>;
19
+ screenWidth: number;
20
+ screenHeight: number;
16
21
  }
17
22
 
18
- export default function Bubble({ bubbleSize, pan }: BubbleProps) {
19
- const { setDebuggerVisibility, screenWidth, screenHeight, verticalSafeMargin } =
20
- useContext(MainContext)!;
21
-
22
- const panResponder = useMemo(
23
- () =>
24
- PanResponder.create({
25
- onStartShouldSetPanResponder: () => true,
26
- onMoveShouldSetPanResponder: () => true,
27
- onPanResponderGrant: () => {
28
- pan.current.setOffset({
29
- // @ts-ignore
30
- x: pan.current.x._value,
31
- // @ts-ignore
32
- y: pan.current.y._value,
33
- });
34
- pan.current.setValue({ x: 0, y: 0 });
35
- },
36
- onPanResponderMove: Animated.event([null, { dx: pan.current.x, dy: pan.current.y }], {
37
- useNativeDriver: false,
38
- }),
39
- onPanResponderRelease: (_, gesture: PanResponderGestureState) => {
40
- const isTapGesture =
41
- gesture.dx > -10 && gesture.dx < 10 && gesture.dy > -10 && gesture.dy < 10;
23
+ export default function Bubble({
24
+ bubbleSize,
25
+ idleBubbleOpacity,
26
+ pan,
27
+ screenWidth,
28
+ screenHeight,
29
+ }: BubbleProps) {
30
+ const iconSize = bubbleSize * 0.65;
42
31
 
43
- if (isTapGesture) setDebuggerVisibility('panel');
32
+ const { setDebuggerState } = useContext(MainContext)!;
33
+ const [idleOpacity, setIdleOpacity] = useState(idleBubbleOpacity);
34
+ const opacityTimer = useRef<NodeJS.Timeout | null>(null);
44
35
 
45
- pan.current.flattenOffset();
36
+ const panResponder = useMemo(() => {
37
+ const clearTimer = () => {
38
+ if (opacityTimer.current) clearTimeout(opacityTimer.current);
39
+ opacityTimer.current = null;
40
+ };
46
41
 
47
- const finalX =
48
- gesture.moveX < (screenWidth - bubbleSize) / 2 ? 0 : screenWidth - bubbleSize;
42
+ return PanResponder.create({
43
+ onStartShouldSetPanResponder: () => true,
44
+ onMoveShouldSetPanResponder: () => true,
45
+ onPanResponderGrant: () => {
46
+ pan.current.setOffset({
47
+ // @ts-ignore
48
+ x: pan.current.x._value,
49
+ // @ts-ignore
50
+ y: pan.current.y._value,
51
+ });
49
52
 
50
- const finalY = Math.min(
51
- Math.max(verticalSafeMargin, gesture.moveY),
52
- screenHeight - verticalSafeMargin - bubbleSize,
53
- );
53
+ pan.current.setValue({ x: 0, y: 0 });
54
54
 
55
- Animated.spring(pan.current, {
56
- toValue: { x: finalX, y: finalY },
57
- useNativeDriver: false,
58
- }).start();
59
- },
55
+ clearTimer();
56
+ setIdleOpacity(1);
57
+ },
58
+ onPanResponderMove: Animated.event([null, { dx: pan.current.x, dy: pan.current.y }], {
59
+ useNativeDriver: false,
60
60
  }),
61
- [bubbleSize, pan, screenHeight, screenWidth, setDebuggerVisibility, verticalSafeMargin],
62
- );
61
+ onPanResponderRelease: (_, gesture: PanResponderGestureState) => {
62
+ const isTapGesture =
63
+ gesture.dx > -10 && gesture.dx < 10 && gesture.dy > -10 && gesture.dy < 10;
64
+
65
+ if (isTapGesture)
66
+ setDebuggerState(draft => {
67
+ draft.visibility = 'panel';
68
+ });
69
+
70
+ pan.current.flattenOffset();
71
+
72
+ const finalX =
73
+ gesture.moveX < (screenWidth - bubbleSize) / 2 ? 0 : screenWidth - bubbleSize;
74
+
75
+ const verticalSafeMargin = getVerticalSafeMargin(screenHeight);
76
+
77
+ const finalY = clamp(
78
+ gesture.moveY,
79
+ verticalSafeMargin,
80
+ screenHeight - verticalSafeMargin - bubbleSize,
81
+ );
82
+
83
+ Animated.spring(pan.current, {
84
+ toValue: { x: finalX, y: finalY },
85
+ useNativeDriver: false,
86
+ }).start(({ finished }) => {
87
+ if (!finished) return;
88
+
89
+ opacityTimer.current = setTimeout(() => {
90
+ setIdleOpacity(0.5);
91
+ clearTimer();
92
+ }, 1000);
93
+ });
94
+ },
95
+ });
96
+ }, [bubbleSize, pan, screenHeight, screenWidth, setDebuggerState]);
63
97
 
64
98
  return (
65
- <Animated.View
66
- {...panResponder.panHandlers}
67
- style={[
68
- styles.bubble,
69
- {
70
- width: bubbleSize,
71
- height: bubbleSize,
72
- borderRadius: bubbleSize / 2,
73
- transform: pan.current.getTranslateTransform(),
74
- },
75
- ]}
76
- >
77
- <Image
78
- source={icons.code}
79
- style={{
80
- width: bubbleSize * 0.75,
81
- height: bubbleSize * 0.75,
82
- }}
83
- />
84
- </Animated.View>
99
+ <View style={styles.bubbleBackdrop}>
100
+ <Animated.View
101
+ {...panResponder.panHandlers}
102
+ style={[
103
+ styles.bubble,
104
+ {
105
+ width: bubbleSize,
106
+ height: bubbleSize,
107
+ borderRadius: bubbleSize / 2,
108
+ transform: pan.current.getTranslateTransform(),
109
+ opacity: idleOpacity,
110
+ },
111
+ ]}
112
+ >
113
+ <Image source={icons.bug} style={{ width: iconSize, height: iconSize }} />
114
+ </Animated.View>
115
+ </View>
85
116
  );
86
117
  }
87
118
 
88
119
  const styles = StyleSheet.create({
120
+ bubbleBackdrop: {
121
+ flex: 1,
122
+ ...StyleSheet.absoluteFillObject,
123
+ pointerEvents: 'box-none',
124
+ },
89
125
  bubble: {
90
126
  backgroundColor: colors.lightGray,
91
127
  position: 'absolute',
@@ -1,19 +1,16 @@
1
- import { useContext } from 'react';
2
- import { MainContext } from '../../../contexts';
1
+ import { detailsData } from '../../../core/data';
3
2
  import { DebuggerPanel } from '../../../types';
4
3
  import LogMessageDetails from './LogMessageDetails';
5
4
  import NetworkRequestDetails from './NetworkRequestDetails';
6
5
 
7
6
  export default function DetailsViewer() {
8
- const { detailsData } = useContext(MainContext)!;
7
+ if (!detailsData.value) return null;
9
8
 
10
9
  switch (true) {
11
- case !detailsData.current:
12
- return null;
13
- case DebuggerPanel.Network in detailsData.current!:
14
- return <NetworkRequestDetails item={detailsData.current.network} />;
15
- case DebuggerPanel.Console in detailsData.current!:
16
- return <LogMessageDetails item={detailsData.current.console} />;
10
+ case DebuggerPanel.Network in detailsData.value:
11
+ return <NetworkRequestDetails item={detailsData.value.network} />;
12
+ case DebuggerPanel.Console in detailsData.value:
13
+ return <LogMessageDetails item={detailsData.value.console} />;
17
14
  default:
18
15
  return null;
19
16
  }
@@ -1,7 +1,7 @@
1
1
  import { ScrollView, StyleSheet, Text } from 'react-native';
2
2
  import type { LogMessage } from '../../../types';
3
- import { formatLogMessage } from '../../../utils';
4
- import colors from '../../../colors';
3
+ import { formatLogMessage } from '../../../core/utils';
4
+ import colors from '../../../theme/colors';
5
5
 
6
6
  interface LogMessageDetailsProps {
7
7
  item: LogMessage;
@@ -1,6 +1,7 @@
1
1
  import { useRef, useState, type JSX, type ReactNode } from 'react';
2
- import { ScrollView, StyleSheet } from 'react-native';
2
+ import { ScrollView, Share, StyleSheet, TouchableOpacity } from 'react-native';
3
3
  import { URL } from 'react-native-url-polyfill';
4
+ import colors from '../../../theme/colors';
4
5
  import {
5
6
  NetworkType,
6
7
  type HttpRequest,
@@ -13,10 +14,9 @@ import {
13
14
  formatRequestMethod,
14
15
  formatRequestStatusCode,
15
16
  limitChar,
16
- } from '../../../utils';
17
+ } from '../../../core/utils';
17
18
  import NetworkDetailsHeader from '../headers/NetworkRequestDetailsHeader';
18
19
  import NetworkRequestDetailsItem from '../items/NetworkRequestDetailsItem';
19
- import colors from '../../../colors';
20
20
 
21
21
  interface NetworkRequestDetailsProps {
22
22
  item: HttpRequest | WebSocketRequest;
@@ -78,10 +78,17 @@ export default function NetworkRequestDetails({ item }: NetworkRequestDetailsPro
78
78
  )}
79
79
 
80
80
  {!isWebSocket && (
81
- <NetworkRequestDetailsItem
82
- content={convertToCurl(item.method, item.url, item.requestHeaders, item.body)}
83
- selectable
84
- />
81
+ <TouchableOpacity
82
+ activeOpacity={0.8}
83
+ onPress={() =>
84
+ Share.share({
85
+ message: convertToCurl(item.method, item.url, item.requestHeaders, item.body),
86
+ })
87
+ }
88
+ style={styles.buttonContent}
89
+ >
90
+ <NetworkRequestDetailsItem content="Share as cURL" />
91
+ </TouchableOpacity>
85
92
  )}
86
93
  </>
87
94
  );
@@ -122,7 +129,9 @@ export default function NetworkRequestDetails({ item }: NetworkRequestDetailsPro
122
129
  responseShown={responseShown}
123
130
  messagesShown={messagesShown}
124
131
  />
125
- <ScrollView style={styles.container}>{content.current[selectedTab]}</ScrollView>
132
+ <ScrollView style={styles.container} contentContainerStyle={styles.contentContainer}>
133
+ {content.current[selectedTab]}
134
+ </ScrollView>
126
135
  </>
127
136
  );
128
137
  }
@@ -130,7 +139,9 @@ export default function NetworkRequestDetails({ item }: NetworkRequestDetailsPro
130
139
  const styles = StyleSheet.create({
131
140
  container: {
132
141
  flex: 1,
133
- paddingHorizontal: 8,
142
+ },
143
+ contentContainer: {
144
+ padding: 8,
134
145
  },
135
146
  divider: {
136
147
  height: 1,
@@ -145,4 +156,10 @@ const styles = StyleSheet.create({
145
156
  fontWeight: 'bold',
146
157
  color: colors.black,
147
158
  },
159
+ buttonContent: {
160
+ padding: 8,
161
+ borderRadius: 4,
162
+ borderWidth: 1,
163
+ alignItems: 'center',
164
+ },
148
165
  });
@@ -1,23 +1,27 @@
1
- import { useContext } from 'react';
1
+ import { useContext, useRef } from 'react';
2
2
  import { ScrollView, StyleSheet, View } from 'react-native';
3
3
  import { MainContext } from '../../../contexts';
4
+ import colors from '../../../theme/colors';
5
+ import icons from '../../../theme/icons';
4
6
  import { DebuggerPanel } from '../../../types';
5
7
  import DebuggerHeaderItem from '../items/DebuggerHeaderItem';
6
- import icons from '../../../icons';
7
- import colors from '../../../colors';
8
-
9
- export default function DebuggerHeader() {
10
- const {
11
- setDebuggerVisibility,
12
- setDebuggerPosition,
13
- panelSelected,
14
- setPanelSelected,
15
- networkInterceptor,
16
- logInterceptor,
17
- } = useContext(MainContext)!;
8
+
9
+ interface DebuggerHeaderProps {
10
+ detailsShown: boolean;
11
+ }
12
+
13
+ export default function DebuggerHeader({ detailsShown }: DebuggerHeaderProps) {
14
+ const { debuggerState, setDebuggerState, networkInterceptor, logInterceptor } =
15
+ useContext(MainContext)!;
16
+
17
+ const lastSelectedPanel = useRef<DebuggerPanel>(
18
+ debuggerState.selectedPanel ?? DebuggerPanel.Network,
19
+ );
18
20
 
19
21
  const hideDebugger = () => {
20
- setDebuggerVisibility('bubble');
22
+ setDebuggerState(draft => {
23
+ draft.visibility = 'bubble';
24
+ });
21
25
  };
22
26
 
23
27
  const toggleNetworkInterception = () => {
@@ -33,16 +37,34 @@ export default function DebuggerHeader() {
33
37
  };
34
38
 
35
39
  const toggleDebuggerPosition = () => {
36
- setDebuggerPosition(prevState => (prevState === 'bottom' ? 'top' : 'bottom'));
40
+ setDebuggerState(draft => {
41
+ draft.position = draft.position === 'bottom' ? 'top' : 'bottom';
42
+ });
37
43
  };
38
44
 
39
- const switchToNetworkPanel = () => {
40
- setPanelSelected(DebuggerPanel.Network);
45
+ const switchTo = (debuggerPanel: DebuggerPanel) => {
46
+ setDebuggerState(draft => {
47
+ draft.selectedPanel = debuggerPanel;
48
+ lastSelectedPanel.current = debuggerPanel;
49
+ });
41
50
  };
42
51
 
43
- const switchToConsolePanel = () => {
44
- setPanelSelected(DebuggerPanel.Console);
45
- };
52
+ if (detailsShown) {
53
+ return (
54
+ <View style={styles.contentContainer}>
55
+ <DebuggerHeaderItem
56
+ isLabel
57
+ isActive
58
+ content="Go Back"
59
+ onPress={() => {
60
+ setDebuggerState(draft => {
61
+ draft.selectedPanel = lastSelectedPanel.current;
62
+ });
63
+ }}
64
+ />
65
+ </View>
66
+ );
67
+ }
46
68
 
47
69
  return (
48
70
  <ScrollView
@@ -57,9 +79,9 @@ export default function DebuggerHeader() {
57
79
 
58
80
  <DebuggerHeaderItem
59
81
  isLabel
60
- isActive={panelSelected === DebuggerPanel.Network}
82
+ isActive={debuggerState.selectedPanel === DebuggerPanel.Network}
61
83
  content="Network Panel"
62
- onPress={switchToNetworkPanel}
84
+ onPress={() => switchTo(DebuggerPanel.Network)}
63
85
  />
64
86
 
65
87
  <DebuggerHeaderItem
@@ -77,9 +99,9 @@ export default function DebuggerHeader() {
77
99
 
78
100
  <DebuggerHeaderItem
79
101
  isLabel
80
- isActive={panelSelected === DebuggerPanel.Console}
102
+ isActive={debuggerState.selectedPanel === DebuggerPanel.Console}
81
103
  content="Log Panel"
82
- onPress={switchToConsolePanel}
104
+ onPress={() => switchTo(DebuggerPanel.Console)}
83
105
  />
84
106
 
85
107
  <DebuggerHeaderItem
@@ -1,5 +1,5 @@
1
1
  import { StyleSheet, Text, View } from 'react-native';
2
- import colors from '../../../colors';
2
+ import colors from '../../../theme/colors';
3
3
 
4
4
  export default function NetworkPanelHeader() {
5
5
  return (
@@ -39,7 +39,7 @@ export default function NetworkPanelHeader() {
39
39
 
40
40
  const styles = StyleSheet.create({
41
41
  container: {
42
- flex: 1,
42
+ marginHorizontal: 8,
43
43
  flexDirection: 'row',
44
44
  alignItems: 'center',
45
45
  backgroundColor: colors.gray,
@@ -72,7 +72,6 @@ export default function NetworkDetailsHeader({
72
72
  onPress={() => onChangeTab(item.name)}
73
73
  isSelected={item.name === selectedTab}
74
74
  visible={item.visible}
75
- name={item.name}
76
75
  label={item.label}
77
76
  />
78
77
  ))}
@@ -1,7 +1,7 @@
1
1
  import { StyleSheet, Text, TouchableOpacity } from 'react-native';
2
2
  import type { LogMessage } from '../../../types';
3
- import { formatLogMessage } from '../../../utils';
4
- import colors from '../../../colors';
3
+ import { formatLogMessage } from '../../../core/utils';
4
+ import colors from '../../../theme/colors';
5
5
 
6
6
  interface ConsolePanelItemProps extends LogMessage {
7
7
  onPress: () => void;
@@ -1,5 +1,5 @@
1
1
  import { Image, StyleSheet, Text, TouchableOpacity, type ImageRequireSource } from 'react-native';
2
- import colors from '../../../colors';
2
+ import colors from '../../../theme/colors';
3
3
 
4
4
  interface DebuggerHeaderItemProps {
5
5
  content?: ImageRequireSource | string;
@@ -46,6 +46,8 @@ const styles = StyleSheet.create({
46
46
  backgroundColor: colors.gray,
47
47
  borderWidth: 1,
48
48
  borderColor: 'transparent',
49
+ justifyContent: 'center',
50
+ alignItems: 'center',
49
51
  },
50
52
  labelContainer: {
51
53
  backgroundColor: 'transparent',
@@ -6,8 +6,8 @@ import {
6
6
  formatRequestDuration,
7
7
  formatRequestMethod,
8
8
  formatRequestStatusCode,
9
- } from '../../../utils';
10
- import colors from '../../../colors';
9
+ } from '../../../core/utils';
10
+ import colors from '../../../theme/colors';
11
11
 
12
12
  interface NetworkPanelItemProps {
13
13
  method?: HttpRequest['method'];
@@ -1,18 +1,15 @@
1
1
  import { StyleSheet, Text, TouchableOpacity } from 'react-native';
2
- import type { NetworkTab } from '../../../types';
3
- import colors from '../../../colors';
2
+ import colors from '../../../theme/colors';
4
3
 
5
4
  interface NetworkRequestDetailsHeaderItemProps {
6
5
  visible: boolean;
7
6
  isSelected: boolean;
8
- name: NetworkTab;
9
7
  label: string;
10
8
  onPress: () => void;
11
9
  }
12
10
 
13
11
  export default function NetworkRequestDetailsHeaderItem({
14
12
  visible,
15
- name,
16
13
  isSelected,
17
14
  label,
18
15
  onPress,
@@ -21,7 +18,6 @@ export default function NetworkRequestDetailsHeaderItem({
21
18
 
22
19
  return (
23
20
  <TouchableOpacity
24
- key={name}
25
21
  activeOpacity={0.8}
26
22
  onPress={onPress}
27
23
  style={[styles.item, isSelected && styles.activeItem]}
@@ -1,20 +1,20 @@
1
- import { StyleSheet, Text } from 'react-native';
2
- import colors from '../../../colors';
1
+ import { StyleSheet, Text, type TextProps } from 'react-native';
2
+ import colors from '../../../theme/colors';
3
3
 
4
- interface NetworkRequestDetailsItemProps {
4
+ interface NetworkRequestDetailsItemProps extends TextProps {
5
5
  label?: string;
6
6
  content?: string;
7
- selectable?: boolean;
8
7
  }
9
8
 
10
9
  export default function NetworkRequestDetailsItem({
11
10
  label,
12
11
  content,
13
- selectable,
12
+ style,
13
+ ...props
14
14
  }: NetworkRequestDetailsItemProps) {
15
15
  if (label) {
16
16
  return (
17
- <Text style={styles.text} selectable={selectable}>
17
+ <Text {...props} style={[styles.text, style]}>
18
18
  <Text style={styles.label}>
19
19
  {label}
20
20
  {': '}
@@ -25,7 +25,7 @@ export default function NetworkRequestDetailsItem({
25
25
  }
26
26
 
27
27
  return (
28
- <Text style={styles.text} selectable={selectable}>
28
+ <Text {...props} style={[styles.text, style]}>
29
29
  {content}
30
30
  </Text>
31
31
  );
@@ -1,45 +1,42 @@
1
1
  import { useCallback, useContext } from 'react';
2
2
  import { FlatList, StyleSheet, View, type ListRenderItem } from 'react-native';
3
+ import colors from '../../../theme/colors';
3
4
  import { MainContext } from '../../../contexts';
4
- import { useScrollToBottom } from '../../../hooks';
5
5
  import type { LogMessage } from '../../../types';
6
6
  import ConsolePanelItem from '../items/ConsolePanelItem';
7
- import colors from '../../../colors';
7
+ import { detailsData } from '../../../core/data';
8
8
 
9
9
  const Separator = () => <View style={styles.divider} />;
10
10
 
11
11
  export default function ConsolePanel() {
12
12
  const {
13
13
  logInterceptor: { logMessages },
14
- setPanelSelected,
15
- detailsData,
14
+ setDebuggerState,
16
15
  } = useContext(MainContext)!;
17
16
 
18
- const listRef = useScrollToBottom(logMessages.length);
19
-
20
17
  const renderItem = useCallback<ListRenderItem<LogMessage>>(
21
- ({ item }) => {
22
- return (
23
- <ConsolePanelItem
24
- {...item}
25
- onPress={() => {
26
- detailsData.current = { console: item };
27
- setPanelSelected(null);
28
- }}
29
- />
30
- );
31
- },
32
- [detailsData, setPanelSelected],
18
+ ({ item }) => (
19
+ <ConsolePanelItem
20
+ {...item}
21
+ onPress={() => {
22
+ detailsData.value = { console: item };
23
+ setDebuggerState(draft => {
24
+ draft.selectedPanel = null;
25
+ });
26
+ }}
27
+ />
28
+ ),
29
+ [setDebuggerState],
33
30
  );
34
31
 
35
32
  return (
36
33
  <FlatList
37
- ref={listRef}
38
- style={styles.container}
39
- data={logMessages}
34
+ inverted
35
+ data={logMessages.toReversed()}
40
36
  renderItem={renderItem}
41
- ItemSeparatorComponent={Separator}
42
37
  keyExtractor={(_, index) => index.toString()}
38
+ ItemSeparatorComponent={Separator}
39
+ style={styles.container}
43
40
  />
44
41
  );
45
42
  }