react-native-xenon 0.2.1 → 0.3.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.md +8 -0
- package/lib/commonjs/assets/icons/bug.png +0 -0
- package/lib/commonjs/contexts/index.js +1 -1
- package/lib/commonjs/hooks/index.js +2 -9
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/hooks/useConsoleInterceptor.js +4 -4
- package/lib/commonjs/hooks/useConsoleInterceptor.js.map +1 -1
- package/lib/commonjs/hooks/useNetworkInterceptor.js +14 -14
- package/lib/commonjs/hooks/useNetworkInterceptor.js.map +1 -1
- package/lib/commonjs/icons.js +1 -1
- package/lib/commonjs/icons.js.map +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/interceptors/ConsoleInterceptor.js +12 -13
- package/lib/commonjs/interceptors/ConsoleInterceptor.js.map +1 -1
- package/lib/commonjs/interceptors/FetchInterceptor.js +12 -13
- package/lib/commonjs/interceptors/FetchInterceptor.js.map +1 -1
- package/lib/commonjs/interceptors/HttpInterceptor.js +18 -36
- package/lib/commonjs/interceptors/HttpInterceptor.js.map +1 -1
- package/lib/commonjs/interceptors/Interceptor.js +9 -3
- package/lib/commonjs/interceptors/Interceptor.js.map +1 -1
- package/lib/commonjs/interceptors/NetworkInterceptor.js +1 -1
- package/lib/commonjs/interceptors/NetworkInterceptor.js.map +1 -1
- package/lib/commonjs/interceptors/WebSocketInterceptor.js +40 -64
- package/lib/commonjs/interceptors/WebSocketInterceptor.js.map +1 -1
- package/lib/commonjs/interceptors/XHRInterceptor.js +10 -11
- package/lib/commonjs/interceptors/XHRInterceptor.js.map +1 -1
- package/lib/commonjs/interceptors/index.js +4 -4
- package/lib/commonjs/types/index.js +4 -4
- package/lib/commonjs/ui/Xenon.js +19 -13
- package/lib/commonjs/ui/Xenon.js.map +1 -1
- package/lib/commonjs/ui/components/bubble/Bubble.js +8 -7
- package/lib/commonjs/ui/components/bubble/Bubble.js.map +1 -1
- package/lib/commonjs/ui/components/details/DetailsViewer.js +7 -7
- package/lib/commonjs/ui/components/details/DetailsViewer.js.map +1 -1
- package/lib/commonjs/ui/components/details/LogMessageDetails.js +2 -2
- package/lib/commonjs/ui/components/details/NetworkRequestDetails.js +6 -6
- package/lib/commonjs/ui/components/details/NetworkRequestDetails.js.map +1 -1
- package/lib/commonjs/ui/components/headers/DebuggerHeader.js +10 -10
- package/lib/commonjs/ui/components/headers/DebuggerHeader.js.map +1 -1
- package/lib/commonjs/ui/components/headers/NetworkPanelHeader.js +2 -2
- package/lib/commonjs/ui/components/headers/NetworkPanelHeader.js.map +1 -1
- package/lib/commonjs/ui/components/headers/NetworkRequestDetailsHeader.js +1 -1
- package/lib/commonjs/ui/components/index.js +5 -5
- package/lib/commonjs/ui/components/items/ConsolePanelItem.js +2 -2
- package/lib/commonjs/ui/components/items/DebuggerHeaderItem.js +1 -1
- package/lib/commonjs/ui/components/items/NetworkPanelItem.js +2 -2
- package/lib/commonjs/ui/components/items/NetworkRequestDetailsHeaderItem.js +1 -1
- package/lib/commonjs/ui/components/items/NetworkRequestDetailsItem.js +1 -1
- package/lib/commonjs/ui/components/panels/ConsolePanel.js +8 -10
- package/lib/commonjs/ui/components/panels/ConsolePanel.js.map +1 -1
- package/lib/commonjs/ui/components/panels/NetworkPanel.js +17 -18
- package/lib/commonjs/ui/components/panels/NetworkPanel.js.map +1 -1
- package/lib/commonjs/utils.js +8 -1
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/assets/icons/bug.png +0 -0
- package/lib/module/colors.js +5 -1
- package/lib/module/colors.js.map +1 -1
- package/lib/module/constants.js +5 -1
- package/lib/module/constants.js.map +1 -1
- package/lib/module/contexts/MainContext.js +7 -3
- package/lib/module/contexts/MainContext.js.map +1 -1
- package/lib/module/contexts/index.js +11 -1
- package/lib/module/contexts/index.js.map +1 -1
- package/lib/module/hooks/index.js +18 -3
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/useConsoleInterceptor.js +16 -12
- package/lib/module/hooks/useConsoleInterceptor.js.map +1 -1
- package/lib/module/hooks/useNetworkInterceptor.js +31 -27
- package/lib/module/hooks/useNetworkInterceptor.js.map +1 -1
- package/lib/module/icons.js +6 -2
- package/lib/module/icons.js.map +1 -1
- package/lib/module/index.js +11 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/interceptors/ConsoleInterceptor.js +16 -10
- package/lib/module/interceptors/ConsoleInterceptor.js.map +1 -1
- package/lib/module/interceptors/FetchInterceptor.js +20 -15
- package/lib/module/interceptors/FetchInterceptor.js.map +1 -1
- package/lib/module/interceptors/HttpInterceptor.js +24 -37
- package/lib/module/interceptors/HttpInterceptor.js.map +1 -1
- package/lib/module/interceptors/Interceptor.js +13 -2
- package/lib/module/interceptors/Interceptor.js.map +1 -1
- package/lib/module/interceptors/NetworkInterceptor.js +8 -2
- package/lib/module/interceptors/NetworkInterceptor.js.map +1 -1
- package/lib/module/interceptors/WebSocketInterceptor.js +60 -78
- package/lib/module/interceptors/WebSocketInterceptor.js.map +1 -1
- package/lib/module/interceptors/XHRInterceptor.js +16 -11
- package/lib/module/interceptors/XHRInterceptor.js.map +1 -1
- package/lib/module/interceptors/index.js +32 -4
- package/lib/module/interceptors/index.js.map +1 -1
- package/lib/module/types/common.js +6 -2
- package/lib/module/types/common.js.map +1 -1
- package/lib/module/types/http.js +3 -1
- package/lib/module/types/index.js +47 -4
- package/lib/module/types/index.js.map +1 -1
- package/lib/module/types/websocket.js +3 -1
- package/lib/module/ui/Xenon.js +45 -34
- package/lib/module/ui/Xenon.js.map +1 -1
- package/lib/module/ui/components/bubble/Bubble.js +24 -18
- package/lib/module/ui/components/bubble/Bubble.js.map +1 -1
- package/lib/module/ui/components/details/DetailsViewer.js +17 -12
- package/lib/module/ui/components/details/DetailsViewer.js.map +1 -1
- package/lib/module/ui/components/details/LogMessageDetails.js +15 -10
- package/lib/module/ui/components/details/LogMessageDetails.js.map +1 -1
- package/lib/module/ui/components/details/NetworkRequestDetails.js +48 -43
- package/lib/module/ui/components/details/NetworkRequestDetails.js.map +1 -1
- package/lib/module/ui/components/headers/DebuggerHeader.js +37 -32
- package/lib/module/ui/components/headers/DebuggerHeader.js.map +1 -1
- package/lib/module/ui/components/headers/NetworkPanelHeader.js +26 -21
- package/lib/module/ui/components/headers/NetworkPanelHeader.js.map +1 -1
- package/lib/module/ui/components/headers/NetworkRequestDetailsHeader.js +14 -9
- package/lib/module/ui/components/headers/NetworkRequestDetailsHeader.js.map +1 -1
- package/lib/module/ui/components/index.js +39 -5
- package/lib/module/ui/components/index.js.map +1 -1
- package/lib/module/ui/components/items/ConsolePanelItem.js +15 -10
- package/lib/module/ui/components/items/ConsolePanelItem.js.map +1 -1
- package/lib/module/ui/components/items/DebuggerHeaderItem.js +17 -12
- package/lib/module/ui/components/items/DebuggerHeaderItem.js.map +1 -1
- package/lib/module/ui/components/items/NetworkPanelItem.js +28 -23
- package/lib/module/ui/components/items/NetworkPanelItem.js.map +1 -1
- package/lib/module/ui/components/items/NetworkRequestDetailsHeaderItem.js +14 -9
- package/lib/module/ui/components/items/NetworkRequestDetailsHeaderItem.js.map +1 -1
- package/lib/module/ui/components/items/NetworkRequestDetailsItem.js +15 -10
- package/lib/module/ui/components/items/NetworkRequestDetailsItem.js.map +1 -1
- package/lib/module/ui/components/panels/ConsolePanel.js +23 -20
- package/lib/module/ui/components/panels/ConsolePanel.js.map +1 -1
- package/lib/module/ui/components/panels/NetworkPanel.js +31 -27
- package/lib/module/ui/components/panels/NetworkPanel.js.map +1 -1
- package/lib/module/utils.js +27 -8
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/commonjs/src/hooks/index.d.ts +0 -1
- package/lib/typescript/commonjs/src/hooks/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/hooks/useNetworkInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/icons.d.ts +1 -1
- package/lib/typescript/commonjs/src/interceptors/ConsoleInterceptor.d.ts +3 -3
- package/lib/typescript/commonjs/src/interceptors/ConsoleInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/FetchInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/HttpInterceptor.d.ts +8 -17
- package/lib/typescript/commonjs/src/interceptors/HttpInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/Interceptor.d.ts +3 -1
- package/lib/typescript/commonjs/src/interceptors/Interceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/NetworkInterceptor.d.ts +1 -1
- package/lib/typescript/commonjs/src/interceptors/NetworkInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/WebSocketInterceptor.d.ts +6 -18
- package/lib/typescript/commonjs/src/interceptors/WebSocketInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/XHRInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/console.d.ts +3 -0
- package/lib/typescript/commonjs/src/types/console.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/http.d.ts +13 -5
- package/lib/typescript/commonjs/src/types/http.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/websocket.d.ts +17 -7
- package/lib/typescript/commonjs/src/types/websocket.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/Xenon.d.ts +1 -0
- package/lib/typescript/commonjs/src/ui/Xenon.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/bubble/Bubble.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/panels/ConsolePanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/panels/NetworkPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/utils.d.ts +1 -0
- package/lib/typescript/commonjs/src/utils.d.ts.map +1 -1
- package/lib/typescript/module/src/hooks/index.d.ts +0 -1
- package/lib/typescript/module/src/hooks/index.d.ts.map +1 -1
- package/lib/typescript/module/src/hooks/useNetworkInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/icons.d.ts +1 -1
- package/lib/typescript/module/src/interceptors/ConsoleInterceptor.d.ts +3 -3
- package/lib/typescript/module/src/interceptors/ConsoleInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/FetchInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/HttpInterceptor.d.ts +8 -17
- package/lib/typescript/module/src/interceptors/HttpInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/Interceptor.d.ts +3 -1
- package/lib/typescript/module/src/interceptors/Interceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/NetworkInterceptor.d.ts +1 -1
- package/lib/typescript/module/src/interceptors/NetworkInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/WebSocketInterceptor.d.ts +6 -18
- package/lib/typescript/module/src/interceptors/WebSocketInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/XHRInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/types/console.d.ts +3 -0
- package/lib/typescript/module/src/types/console.d.ts.map +1 -1
- package/lib/typescript/module/src/types/http.d.ts +13 -5
- package/lib/typescript/module/src/types/http.d.ts.map +1 -1
- package/lib/typescript/module/src/types/websocket.d.ts +17 -7
- package/lib/typescript/module/src/types/websocket.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/Xenon.d.ts +1 -0
- package/lib/typescript/module/src/ui/Xenon.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/bubble/Bubble.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/panels/ConsolePanel.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/panels/NetworkPanel.d.ts.map +1 -1
- package/lib/typescript/module/src/utils.d.ts +1 -0
- package/lib/typescript/module/src/utils.d.ts.map +1 -1
- package/package.json +8 -4
- package/src/assets/icons/bug.png +0 -0
- package/src/hooks/index.ts +0 -1
- package/src/hooks/useConsoleInterceptor.ts +1 -1
- package/src/hooks/useNetworkInterceptor.ts +31 -41
- package/src/icons.ts +1 -1
- package/src/interceptors/ConsoleInterceptor.ts +11 -10
- package/src/interceptors/FetchInterceptor.ts +6 -7
- package/src/interceptors/HttpInterceptor.ts +19 -48
- package/src/interceptors/Interceptor.ts +11 -1
- package/src/interceptors/NetworkInterceptor.ts +1 -1
- package/src/interceptors/WebSocketInterceptor.ts +37 -81
- package/src/interceptors/XHRInterceptor.ts +7 -6
- package/src/types/console.ts +4 -0
- package/src/types/http.ts +13 -5
- package/src/types/websocket.ts +17 -9
- package/src/ui/Xenon.tsx +10 -11
- package/src/ui/components/bubble/Bubble.tsx +3 -7
- package/src/ui/components/headers/NetworkPanelHeader.tsx +1 -1
- package/src/ui/components/panels/ConsolePanel.tsx +5 -8
- package/src/ui/components/panels/NetworkPanel.tsx +14 -14
- package/src/utils.ts +6 -0
- package/lib/commonjs/assets/icons/code.png +0 -0
- package/lib/commonjs/hooks/useScrollToBottom.js +0 -23
- package/lib/commonjs/hooks/useScrollToBottom.js.map +0 -1
- package/lib/module/assets/icons/code.png +0 -0
- package/lib/module/hooks/useScrollToBottom.js +0 -19
- package/lib/module/hooks/useScrollToBottom.js.map +0 -1
- package/lib/typescript/commonjs/src/hooks/useScrollToBottom.d.ts +0 -3
- package/lib/typescript/commonjs/src/hooks/useScrollToBottom.d.ts.map +0 -1
- package/lib/typescript/module/src/hooks/useScrollToBottom.d.ts +0 -3
- package/lib/typescript/module/src/hooks/useScrollToBottom.d.ts.map +0 -1
- package/src/assets/icons/code.png +0 -0
- package/src/hooks/useScrollToBottom.ts +0 -23
package/src/types/websocket.ts
CHANGED
@@ -13,7 +13,7 @@ export interface WebSocketRequest extends NetworkRequest {
|
|
13
13
|
serverClose?: { code?: number; reason?: string };
|
14
14
|
}
|
15
15
|
|
16
|
-
|
16
|
+
type WebSocketConnectCallback =
|
17
17
|
| ((
|
18
18
|
url: string,
|
19
19
|
protocols?: WebSocketRequest['protocols'],
|
@@ -22,20 +22,28 @@ export type WebSocketConnectCallback =
|
|
22
22
|
) => void)
|
23
23
|
| null;
|
24
24
|
|
25
|
-
|
25
|
+
type WebSocketSendCallback = ((data: string, socketId: number) => void) | null;
|
26
26
|
|
27
|
-
|
28
|
-
| ((code: number, reason: string, socketId: number) => void)
|
29
|
-
| null;
|
27
|
+
type WebSocketCloseCallback = ((code: number, reason: string, socketId: number) => void) | null;
|
30
28
|
|
31
|
-
|
29
|
+
type WebSocketOnOpenCallback = ((socketId: number, duration: number) => void) | null;
|
32
30
|
|
33
|
-
|
31
|
+
type WebSocketOnMessageCallback = ((socketId: number, message: any) => void) | null;
|
34
32
|
|
35
|
-
|
33
|
+
type WebSocketOnErrorCallback =
|
36
34
|
| ((socketId: number, error: WebSocketRequest['serverError']) => void)
|
37
35
|
| null;
|
38
36
|
|
39
|
-
|
37
|
+
type WebSocketOnCloseCallback =
|
40
38
|
| ((socketId: number, data: WebSocketRequest['serverClose']) => void)
|
41
39
|
| null;
|
40
|
+
|
41
|
+
export interface WebSocketHandlers {
|
42
|
+
connect: WebSocketConnectCallback;
|
43
|
+
send: WebSocketSendCallback;
|
44
|
+
close: WebSocketCloseCallback;
|
45
|
+
onOpen: WebSocketOnOpenCallback;
|
46
|
+
onMessage: WebSocketOnMessageCallback;
|
47
|
+
onError: WebSocketOnErrorCallback;
|
48
|
+
onClose: WebSocketOnCloseCallback;
|
49
|
+
}
|
package/src/ui/Xenon.tsx
CHANGED
@@ -15,6 +15,7 @@ import { DebuggerPanel, type DebuggerPosition, type DebuggerVisibility } from '.
|
|
15
15
|
import { Bubble, ConsolePanel, DebuggerHeader, DetailsViewer, NetworkPanel } from './components';
|
16
16
|
|
17
17
|
interface XenonComponentMethods {
|
18
|
+
isVisible(): boolean;
|
18
19
|
show(): void;
|
19
20
|
hide(): void;
|
20
21
|
}
|
@@ -37,15 +38,10 @@ const XenonComponent = memo<XenonComponentProps>(
|
|
37
38
|
({ autoInspectNetworkEnabled = true, autoInspectConsoleEnabled = true, bubbleSize = 40 }) => {
|
38
39
|
const { width: screenWidth, height: screenHeight } = useWindowDimensions();
|
39
40
|
const verticalSafeMargin = screenHeight / 8;
|
40
|
-
|
41
41
|
const pan = useRef(new Animated.ValueXY({ x: 0, y: verticalSafeMargin }));
|
42
|
-
|
43
42
|
const detailsData: MainContextValue['detailsData'] = useRef(null);
|
44
|
-
|
45
43
|
const [debuggerVisibility, setDebuggerVisibility] = useState<DebuggerVisibility>('hidden');
|
46
|
-
|
47
44
|
const [debuggerPosition, setDebuggerPosition] = useState<DebuggerPosition>('bottom');
|
48
|
-
|
49
45
|
const [panelSelected, setPanelSelected] = useState<DebuggerPanel | null>(DebuggerPanel.Network);
|
50
46
|
|
51
47
|
const networkInterceptor = useNetworkInterceptor({
|
@@ -59,18 +55,20 @@ const XenonComponent = memo<XenonComponentProps>(
|
|
59
55
|
useImperativeHandle(
|
60
56
|
rootRef,
|
61
57
|
() => ({
|
58
|
+
isVisible() {
|
59
|
+
return debuggerVisibility !== 'hidden';
|
60
|
+
},
|
62
61
|
show() {
|
63
|
-
setDebuggerVisibility('bubble');
|
62
|
+
if (!this.isVisible()) setDebuggerVisibility('bubble');
|
64
63
|
},
|
65
64
|
hide() {
|
66
|
-
setDebuggerVisibility('hidden');
|
65
|
+
if (this.isVisible()) setDebuggerVisibility('hidden');
|
67
66
|
},
|
68
67
|
}),
|
69
|
-
[],
|
68
|
+
[debuggerVisibility],
|
70
69
|
);
|
71
70
|
|
72
71
|
let content;
|
73
|
-
|
74
72
|
switch (debuggerVisibility) {
|
75
73
|
case 'bubble':
|
76
74
|
content = (
|
@@ -92,10 +90,8 @@ const XenonComponent = memo<XenonComponentProps>(
|
|
92
90
|
]}
|
93
91
|
>
|
94
92
|
<DebuggerHeader />
|
95
|
-
|
96
93
|
{panelSelected === DebuggerPanel.Network && <NetworkPanel />}
|
97
94
|
{panelSelected === DebuggerPanel.Console && <ConsolePanel />}
|
98
|
-
|
99
95
|
{!panelSelected && !!detailsData.current && <DetailsViewer />}
|
100
96
|
</SafeAreaView>
|
101
97
|
);
|
@@ -146,6 +142,9 @@ const styles = StyleSheet.create({
|
|
146
142
|
XenonComponent.displayName = 'Xenon';
|
147
143
|
|
148
144
|
const Xenon: ReactNativeXenon = {
|
145
|
+
isVisible() {
|
146
|
+
return rootRef.current?.isVisible() ?? false;
|
147
|
+
},
|
149
148
|
show() {
|
150
149
|
rootRef.current?.show();
|
151
150
|
},
|
@@ -16,6 +16,8 @@ interface BubbleProps {
|
|
16
16
|
}
|
17
17
|
|
18
18
|
export default function Bubble({ bubbleSize, pan }: BubbleProps) {
|
19
|
+
const iconSize = bubbleSize * 0.65;
|
20
|
+
|
19
21
|
const { setDebuggerVisibility, screenWidth, screenHeight, verticalSafeMargin } =
|
20
22
|
useContext(MainContext)!;
|
21
23
|
|
@@ -74,13 +76,7 @@ export default function Bubble({ bubbleSize, pan }: BubbleProps) {
|
|
74
76
|
},
|
75
77
|
]}
|
76
78
|
>
|
77
|
-
<Image
|
78
|
-
source={icons.code}
|
79
|
-
style={{
|
80
|
-
width: bubbleSize * 0.75,
|
81
|
-
height: bubbleSize * 0.75,
|
82
|
-
}}
|
83
|
-
/>
|
79
|
+
<Image source={icons.bug} style={{ width: iconSize, height: iconSize }} />
|
84
80
|
</Animated.View>
|
85
81
|
);
|
86
82
|
}
|
@@ -1,10 +1,9 @@
|
|
1
1
|
import { useCallback, useContext } from 'react';
|
2
2
|
import { FlatList, StyleSheet, View, type ListRenderItem } from 'react-native';
|
3
|
+
import colors from '../../../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';
|
8
7
|
|
9
8
|
const Separator = () => <View style={styles.divider} />;
|
10
9
|
|
@@ -15,8 +14,6 @@ export default function ConsolePanel() {
|
|
15
14
|
detailsData,
|
16
15
|
} = useContext(MainContext)!;
|
17
16
|
|
18
|
-
const listRef = useScrollToBottom(logMessages.length);
|
19
|
-
|
20
17
|
const renderItem = useCallback<ListRenderItem<LogMessage>>(
|
21
18
|
({ item }) => {
|
22
19
|
return (
|
@@ -34,12 +31,12 @@ export default function ConsolePanel() {
|
|
34
31
|
|
35
32
|
return (
|
36
33
|
<FlatList
|
37
|
-
|
38
|
-
|
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
|
}
|
@@ -1,11 +1,10 @@
|
|
1
|
-
import { useCallback, useContext } from 'react';
|
1
|
+
import { useCallback, useContext, useMemo } from 'react';
|
2
2
|
import { FlatList, StyleSheet, View, type ListRenderItem } from 'react-native';
|
3
|
+
import colors from '../../../colors';
|
3
4
|
import { MainContext } from '../../../contexts';
|
4
|
-
import { useScrollToBottom } from '../../../hooks';
|
5
5
|
import { NetworkType, type HttpRequest, type ID, type WebSocketRequest } from '../../../types';
|
6
6
|
import NetworkPanelHeader from '../headers/NetworkPanelHeader';
|
7
7
|
import NetworkPanelItem from '../items/NetworkPanelItem';
|
8
|
-
import colors from '../../../colors';
|
9
8
|
|
10
9
|
const Separator = () => <View style={styles.divider} />;
|
11
10
|
|
@@ -16,7 +15,7 @@ export default function NetworkPanel() {
|
|
16
15
|
detailsData,
|
17
16
|
} = useContext(MainContext)!;
|
18
17
|
|
19
|
-
const
|
18
|
+
const data = useMemo(() => Array.from(networkRequests).reverse(), [networkRequests]);
|
20
19
|
|
21
20
|
const renderItem = useCallback<ListRenderItem<[NonNullable<ID>, HttpRequest | WebSocketRequest]>>(
|
22
21
|
({ item: [_, item] }) => {
|
@@ -41,16 +40,17 @@ export default function NetworkPanel() {
|
|
41
40
|
);
|
42
41
|
|
43
42
|
return (
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
43
|
+
<>
|
44
|
+
<NetworkPanelHeader />
|
45
|
+
<FlatList
|
46
|
+
inverted
|
47
|
+
data={data}
|
48
|
+
renderItem={renderItem}
|
49
|
+
keyExtractor={([key]) => key}
|
50
|
+
ItemSeparatorComponent={Separator}
|
51
|
+
style={styles.container}
|
52
|
+
/>
|
53
|
+
</>
|
54
54
|
);
|
55
55
|
}
|
56
56
|
|
package/src/utils.ts
CHANGED
Binary file
|
@@ -1,23 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.default = useScrollToBottom;
|
7
|
-
var _react = require("react");
|
8
|
-
function useScrollToBottom(listSize) {
|
9
|
-
const currentSize = (0, _react.useRef)(listSize);
|
10
|
-
const listRef = (0, _react.useRef)(null);
|
11
|
-
(0, _react.useEffect)(() => {
|
12
|
-
if (listSize <= currentSize.current) return;
|
13
|
-
currentSize.current = listSize;
|
14
|
-
const timer = setTimeout(() => {
|
15
|
-
if (listSize) listRef.current?.scrollToEnd();
|
16
|
-
}, 0);
|
17
|
-
return () => {
|
18
|
-
clearTimeout(timer);
|
19
|
-
};
|
20
|
-
}, [listSize]);
|
21
|
-
return listRef;
|
22
|
-
}
|
23
|
-
//# sourceMappingURL=useScrollToBottom.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["_react","require","useScrollToBottom","listSize","currentSize","useRef","listRef","useEffect","current","timer","setTimeout","scrollToEnd","clearTimeout"],"sourceRoot":"../../../src","sources":["hooks/useScrollToBottom.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGe,SAASC,iBAAiBA,CAACC,QAAgB,EAAE;EAC1D,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAACF,QAAQ,CAAC;EACpC,MAAMG,OAAO,GAAG,IAAAD,aAAM,EAAkB,IAAI,CAAC;EAE7C,IAAAE,gBAAS,EAAC,MAAM;IACd,IAAIJ,QAAQ,IAAIC,WAAW,CAACI,OAAO,EAAE;IAErCJ,WAAW,CAACI,OAAO,GAAGL,QAAQ;IAE9B,MAAMM,KAAK,GAAGC,UAAU,CAAC,MAAM;MAC7B,IAAIP,QAAQ,EAAEG,OAAO,CAACE,OAAO,EAAEG,WAAW,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,CAAC;IAEL,OAAO,MAAM;MACXC,YAAY,CAACH,KAAK,CAAC;IACrB,CAAC;EACH,CAAC,EAAE,CAACN,QAAQ,CAAC,CAAC;EAEd,OAAOG,OAAO;AAChB","ignoreList":[]}
|
Binary file
|
@@ -1,19 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
import { useEffect, useRef } from 'react';
|
4
|
-
export default function useScrollToBottom(listSize) {
|
5
|
-
const currentSize = useRef(listSize);
|
6
|
-
const listRef = useRef(null);
|
7
|
-
useEffect(() => {
|
8
|
-
if (listSize <= currentSize.current) return;
|
9
|
-
currentSize.current = listSize;
|
10
|
-
const timer = setTimeout(() => {
|
11
|
-
if (listSize) listRef.current?.scrollToEnd();
|
12
|
-
}, 0);
|
13
|
-
return () => {
|
14
|
-
clearTimeout(timer);
|
15
|
-
};
|
16
|
-
}, [listSize]);
|
17
|
-
return listRef;
|
18
|
-
}
|
19
|
-
//# sourceMappingURL=useScrollToBottom.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useScrollToBottom","listSize","currentSize","listRef","current","timer","setTimeout","scrollToEnd","clearTimeout"],"sourceRoot":"../../../src","sources":["hooks/useScrollToBottom.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAGzC,eAAe,SAASC,iBAAiBA,CAACC,QAAgB,EAAE;EAC1D,MAAMC,WAAW,GAAGH,MAAM,CAACE,QAAQ,CAAC;EACpC,MAAME,OAAO,GAAGJ,MAAM,CAAkB,IAAI,CAAC;EAE7CD,SAAS,CAAC,MAAM;IACd,IAAIG,QAAQ,IAAIC,WAAW,CAACE,OAAO,EAAE;IAErCF,WAAW,CAACE,OAAO,GAAGH,QAAQ;IAE9B,MAAMI,KAAK,GAAGC,UAAU,CAAC,MAAM;MAC7B,IAAIL,QAAQ,EAAEE,OAAO,CAACC,OAAO,EAAEG,WAAW,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,CAAC;IAEL,OAAO,MAAM;MACXC,YAAY,CAACH,KAAK,CAAC;IACrB,CAAC;EACH,CAAC,EAAE,CAACJ,QAAQ,CAAC,CAAC;EAEd,OAAOE,OAAO;AAChB","ignoreList":[]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"useScrollToBottom.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/useScrollToBottom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,0DAmBzD"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"useScrollToBottom.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/useScrollToBottom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,0DAmBzD"}
|
Binary file
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import { useEffect, useRef } from 'react';
|
2
|
-
import type { FlatList } from 'react-native';
|
3
|
-
|
4
|
-
export default function useScrollToBottom(listSize: number) {
|
5
|
-
const currentSize = useRef(listSize);
|
6
|
-
const listRef = useRef<FlatList | null>(null);
|
7
|
-
|
8
|
-
useEffect(() => {
|
9
|
-
if (listSize <= currentSize.current) return;
|
10
|
-
|
11
|
-
currentSize.current = listSize;
|
12
|
-
|
13
|
-
const timer = setTimeout(() => {
|
14
|
-
if (listSize) listRef.current?.scrollToEnd();
|
15
|
-
}, 0);
|
16
|
-
|
17
|
-
return () => {
|
18
|
-
clearTimeout(timer);
|
19
|
-
};
|
20
|
-
}, [listSize]);
|
21
|
-
|
22
|
-
return listRef;
|
23
|
-
}
|