react-native-xenon 2.2.0 → 2.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/lib/module/core/constants.js +2 -0
- package/lib/module/core/constants.js.map +1 -1
- package/lib/module/core/refs.js +11 -1
- package/lib/module/core/refs.js.map +1 -1
- package/lib/module/core/utils.js +6 -1
- package/lib/module/core/utils.js.map +1 -1
- package/lib/module/ui/components/bubble/Bubble.js +1 -1
- package/lib/module/ui/components/bubble/Bubble.js.map +1 -1
- package/lib/module/ui/components/handle/Handle.js +63 -0
- package/lib/module/ui/components/handle/Handle.js.map +1 -0
- package/lib/module/ui/components/headers/DebuggerHeader.js +3 -2
- package/lib/module/ui/components/headers/DebuggerHeader.js.map +1 -1
- package/lib/module/ui/components/items/ConsolePanelItem.js +26 -12
- package/lib/module/ui/components/items/ConsolePanelItem.js.map +1 -1
- package/lib/module/ui/components/items/NetworkPanelItem.js +50 -38
- package/lib/module/ui/components/items/NetworkPanelItem.js.map +1 -1
- package/lib/module/ui/components/panels/ConsolePanel.js +9 -12
- package/lib/module/ui/components/panels/ConsolePanel.js.map +1 -1
- package/lib/module/ui/components/panels/NetworkPanel.js +8 -9
- package/lib/module/ui/components/panels/NetworkPanel.js.map +1 -1
- package/lib/module/ui/components/panels/Panel.js +25 -13
- package/lib/module/ui/components/panels/Panel.js.map +1 -1
- package/lib/typescript/src/core/constants.d.ts +2 -0
- package/lib/typescript/src/core/constants.d.ts.map +1 -1
- package/lib/typescript/src/core/refs.d.ts +2 -1
- package/lib/typescript/src/core/refs.d.ts.map +1 -1
- package/lib/typescript/src/core/utils.d.ts +2 -1
- package/lib/typescript/src/core/utils.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/handle/Handle.d.ts +2 -0
- package/lib/typescript/src/ui/components/handle/Handle.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/headers/DebuggerHeader.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/items/ConsolePanelItem.d.ts +2 -2
- package/lib/typescript/src/ui/components/items/ConsolePanelItem.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/items/NetworkPanelItem.d.ts +2 -2
- package/lib/typescript/src/ui/components/items/NetworkPanelItem.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/panels/ConsolePanel.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/panels/NetworkPanel.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/panels/Panel.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/constants.ts +2 -0
- package/src/core/refs.ts +10 -1
- package/src/core/utils.ts +7 -1
- package/src/ui/components/bubble/Bubble.tsx +1 -1
- package/src/ui/components/handle/Handle.tsx +60 -0
- package/src/ui/components/headers/DebuggerHeader.tsx +3 -2
- package/src/ui/components/items/ConsolePanelItem.tsx +28 -14
- package/src/ui/components/items/NetworkPanelItem.tsx +70 -57
- package/src/ui/components/panels/ConsolePanel.tsx +11 -10
- package/src/ui/components/panels/NetworkPanel.tsx +14 -7
- package/src/ui/components/panels/Panel.tsx +28 -9
@@ -3,15 +3,11 @@
|
|
3
3
|
import { forwardRef, useCallback, useContext, useMemo } from 'react';
|
4
4
|
import { FlatList, StyleSheet } from 'react-native';
|
5
5
|
import { MainContext } from "../../../contexts/index.js";
|
6
|
-
import
|
6
|
+
import { NETWORK_ITEM_HEIGHT } from "../../../core/constants.js";
|
7
7
|
import { DebuggerPanel, NetworkType } from "../../../types/index.js";
|
8
|
-
import Divider from "../common/Divider.js";
|
9
8
|
import Empty from "../common/Empty.js";
|
10
9
|
import NetworkPanelItem from "../items/NetworkPanelItem.js";
|
11
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
12
|
-
const Separator = () => /*#__PURE__*/_jsx(Divider, {
|
13
|
-
type: "horizontal"
|
14
|
-
});
|
15
11
|
const NetworkPanel = /*#__PURE__*/forwardRef(({
|
16
12
|
style
|
17
13
|
}, ref) => {
|
@@ -40,8 +36,6 @@ const NetworkPanel = /*#__PURE__*/forwardRef(({
|
|
40
36
|
endTime: item.endTime,
|
41
37
|
status: item.status,
|
42
38
|
onPress: () => {
|
43
|
-
refs.header.current?.setCurrentIndex(HeaderState.Network);
|
44
|
-
refs.panel.current?.setCurrentIndex(PanelState.NetworkDetail);
|
45
39
|
setDebuggerState(draft => {
|
46
40
|
draft.detailsData = {
|
47
41
|
type: DebuggerPanel.Network,
|
@@ -52,17 +46,22 @@ const NetworkPanel = /*#__PURE__*/forwardRef(({
|
|
52
46
|
});
|
53
47
|
}
|
54
48
|
}), [setDebuggerState]);
|
49
|
+
const getItemLayout = useCallback((_, index) => ({
|
50
|
+
length: NETWORK_ITEM_HEIGHT,
|
51
|
+
offset: NETWORK_ITEM_HEIGHT * index,
|
52
|
+
index
|
53
|
+
}), []);
|
55
54
|
return /*#__PURE__*/_jsx(FlatList, {
|
56
55
|
inverted: !!data.length,
|
57
56
|
data: data,
|
58
57
|
ref: ref,
|
59
58
|
renderItem: renderItem,
|
60
59
|
keyExtractor: ([key]) => key,
|
61
|
-
ItemSeparatorComponent: Separator,
|
62
60
|
style: [styles.container, style],
|
63
61
|
ListEmptyComponent: /*#__PURE__*/_jsx(Empty, {
|
64
62
|
children: "No records yet"
|
65
|
-
})
|
63
|
+
}),
|
64
|
+
getItemLayout: getItemLayout
|
66
65
|
});
|
67
66
|
});
|
68
67
|
const styles = StyleSheet.create({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["forwardRef","useCallback","useContext","useMemo","FlatList","StyleSheet","MainContext","
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useContext","useMemo","FlatList","StyleSheet","MainContext","NETWORK_ITEM_HEIGHT","DebuggerPanel","NetworkType","Empty","NetworkPanelItem","jsx","_jsx","NetworkPanel","style","ref","debuggerState","searchQuery","networkInterceptor","networkRequests","setDebuggerState","data","result","Array","from","filter","item","url","toLowerCase","includes","reverse","renderItem","_","method","type","WS","undefined","name","startTime","endTime","status","onPress","draft","detailsData","Network","selectedTab","beautified","getItemLayout","index","length","offset","inverted","keyExtractor","key","styles","container","ListEmptyComponent","children","create","flex","paddingHorizontal"],"sourceRoot":"../../../../../src","sources":["ui/components/panels/NetworkPanel.tsx"],"mappings":"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","ignoreList":[]}
|
@@ -1,18 +1,20 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
import { Platform, StyleSheet
|
4
|
-
import refs, { PanelState } from "../../../core/refs.js";
|
3
|
+
import { Animated, Platform, StyleSheet } from 'react-native';
|
4
|
+
import refs, { HeaderState, PanelState } from "../../../core/refs.js";
|
5
5
|
import IndexedStack from "../common/IndexedStack.js";
|
6
6
|
import LogMessageDetails from "../details/LogMessageDetails.js";
|
7
7
|
import NetworkRequestDetails from "../details/NetworkRequestDetails.js";
|
8
8
|
import ConsolePanel from "./ConsolePanel.js";
|
9
9
|
import NetworkPanel from "./NetworkPanel.js";
|
10
10
|
import colors from "../../../theme/colors.js";
|
11
|
-
import { forwardRef, useContext, useMemo } from 'react';
|
11
|
+
import { forwardRef, useContext, useEffect, useMemo } from 'react';
|
12
12
|
import Header from "../headers/Header.js";
|
13
13
|
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
14
14
|
import SafeArea from "../common/SafeArea.js";
|
15
15
|
import { MainContext } from "../../../contexts/index.js";
|
16
|
+
import Handle from "../handle/Handle.js";
|
17
|
+
import { DebuggerPanel } from "../../../types/index.js";
|
16
18
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
17
19
|
const Panel = /*#__PURE__*/forwardRef(({
|
18
20
|
style,
|
@@ -20,30 +22,40 @@ const Panel = /*#__PURE__*/forwardRef(({
|
|
20
22
|
}, ref) => {
|
21
23
|
const {
|
22
24
|
debuggerState: {
|
23
|
-
position
|
24
|
-
|
25
|
-
dimensions: {
|
26
|
-
width: screenWidth,
|
27
|
-
height: screenHeight
|
25
|
+
position,
|
26
|
+
detailsData
|
28
27
|
}
|
29
28
|
} = useContext(MainContext);
|
30
29
|
const containerStyle = useMemo(() => [styles.container, {
|
31
30
|
[position]: 0,
|
32
|
-
|
33
|
-
|
34
|
-
|
31
|
+
width: refs.panelSize.current?.x,
|
32
|
+
height: refs.panelSize.current?.y
|
33
|
+
}], [position]);
|
34
|
+
useEffect(() => {
|
35
|
+
switch (detailsData?.type) {
|
36
|
+
case DebuggerPanel.Network:
|
37
|
+
refs.header.current?.setCurrentIndex(HeaderState.Network);
|
38
|
+
refs.panel.current?.setCurrentIndex(PanelState.NetworkDetail);
|
39
|
+
break;
|
40
|
+
case DebuggerPanel.Console:
|
41
|
+
refs.header.current?.setCurrentIndex(HeaderState.Console);
|
42
|
+
refs.panel.current?.setCurrentIndex(PanelState.ConsoleDetail);
|
43
|
+
break;
|
44
|
+
}
|
45
|
+
}, [detailsData?.type]);
|
46
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
35
47
|
style: [containerStyle, style],
|
36
48
|
ref: ref,
|
37
49
|
...props,
|
38
50
|
children: /*#__PURE__*/_jsxs(SafeAreaProvider, {
|
39
|
-
children: [position === 'top' && /*#__PURE__*/_jsx(SafeArea, {
|
51
|
+
children: [position === 'bottom' && /*#__PURE__*/_jsx(Handle, {}), position === 'top' && /*#__PURE__*/_jsx(SafeArea, {
|
40
52
|
inset: "top"
|
41
53
|
}), /*#__PURE__*/_jsx(Header, {}), /*#__PURE__*/_jsxs(IndexedStack, {
|
42
54
|
defaultIndex: PanelState.Network,
|
43
55
|
id: "debugger-panel",
|
44
56
|
ref: refs.panel,
|
45
57
|
children: [/*#__PURE__*/_jsx(NetworkPanel, {}), /*#__PURE__*/_jsx(ConsolePanel, {}), /*#__PURE__*/_jsx(NetworkRequestDetails, {}), /*#__PURE__*/_jsx(LogMessageDetails, {})]
|
46
|
-
}), position === 'bottom' && /*#__PURE__*/_jsx(SafeArea, {
|
58
|
+
}), position === 'top' && /*#__PURE__*/_jsx(Handle, {}), position === 'bottom' && /*#__PURE__*/_jsx(SafeArea, {
|
47
59
|
inset: "bottom"
|
48
60
|
})]
|
49
61
|
})
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Platform","StyleSheet","
|
1
|
+
{"version":3,"names":["Animated","Platform","StyleSheet","refs","HeaderState","PanelState","IndexedStack","LogMessageDetails","NetworkRequestDetails","ConsolePanel","NetworkPanel","colors","forwardRef","useContext","useEffect","useMemo","Header","SafeAreaProvider","SafeArea","MainContext","Handle","DebuggerPanel","jsx","_jsx","jsxs","_jsxs","Panel","style","props","ref","debuggerState","position","detailsData","containerStyle","styles","container","width","panelSize","current","x","height","y","type","Network","header","setCurrentIndex","panel","NetworkDetail","Console","ConsoleDetail","View","children","inset","defaultIndex","id","create","flex","absoluteFillObject","pointerEvents","OS","zIndex","top","undefined","bottom","backgroundColor","lightGray","borderBottomColor","gray","borderBottomWidth","hairlineWidth"],"sourceRoot":"../../../../../src","sources":["ui/components/panels/Panel.tsx"],"mappings":"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","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/core/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,yBAAyB,CAAC"}
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/core/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAC7D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,mBAAmB,KAAK,CAAC"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { IndexedStackMethods } from '../ui/components/common/IndexedStack';
|
2
|
-
import type
|
2
|
+
import { Animated, type TextInput } from 'react-native';
|
3
3
|
export declare enum DebuggerVisibility {
|
4
4
|
Hidden = -1,
|
5
5
|
Bubble = 0,
|
@@ -22,6 +22,7 @@ declare const refs: {
|
|
22
22
|
panel: import("react").RefObject<IndexedStackMethods<PanelState> | null>;
|
23
23
|
header: import("react").RefObject<IndexedStackMethods<HeaderState> | null>;
|
24
24
|
searchInput: import("react").RefObject<TextInput | null>;
|
25
|
+
panelSize: import("react").RefObject<Animated.ValueXY | null>;
|
25
26
|
};
|
26
27
|
export default refs;
|
27
28
|
//# sourceMappingURL=refs.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../../../src/core/refs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../../../src/core/refs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAc,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE,oBAAY,kBAAkB;IAC5B,MAAM,KAAK;IACX,MAAM,IAAI;IACV,KAAK,IAAI;IACT,MAAM,IAAI;CACX;AAED,oBAAY,UAAU;IACpB,OAAO,IAAI;IACX,OAAO,IAAI;IACX,aAAa,IAAI;IACjB,aAAa,IAAI;CAClB;AAED,oBAAY,WAAW;IACrB,QAAQ,IAAI;IACZ,OAAO,IAAI;IACX,OAAO,IAAI;CACZ;AAED,QAAA,MAAM,IAAI;;;;;;CAcT,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
@@ -20,7 +20,7 @@ export declare const getNetworkUtils: (data?: HttpRequest | WebSocketRequest) =>
|
|
20
20
|
};
|
21
21
|
export declare const getConsoleTypeColor: (type: LogMessage["type"]) => string;
|
22
22
|
export declare const getVerticalSafeMargin: (screenHeight: number) => number;
|
23
|
-
export declare const clamp: (
|
23
|
+
export declare const clamp: (min: number, max: number, value: number) => number;
|
24
24
|
export declare const getHttpInterceptorId: () => string;
|
25
25
|
export declare const showNewLine: (when: boolean) => "\n" | "";
|
26
26
|
export declare const keyValueToString: (key: string, value: any, newLine?: "leading" | "trailing" | null) => string;
|
@@ -30,6 +30,7 @@ export declare const formatRequestStatusCode: (statusCode?: number) => string;
|
|
30
30
|
export declare const formatLogMessage: (values: any[]) => any;
|
31
31
|
export declare const beautify: (data: any, beautified: boolean) => string;
|
32
32
|
export declare const convertToCurl: (method: HttpRequest["method"], url: HttpRequest["url"], headers: HttpRequest["requestHeaders"], body: HttpRequest["body"]) => string;
|
33
|
+
export declare const formatCount: (count: number) => string;
|
33
34
|
export declare function frozen(_target: Object): void;
|
34
35
|
export declare function singleton<T extends {
|
35
36
|
new (...args: any[]): {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAOjG,eAAO,MAAM,SAAS,GAAU,MAAM,MAAM,kBAgB3C,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,WAAW,GAAG,gBAAgB;;;;;;;;;;;;;;;;CAuBpE,CAAC;AAKF,eAAO,MAAM,mBAAmB,GAAI,MAAM,UAAU,CAAC,MAAM,CAAC,WAsB3D,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAAI,cAAc,MAAM,WAAqB,CAAC;AAEhF,eAAO,MAAM,KAAK,GAAI,
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAOjG,eAAO,MAAM,SAAS,GAAU,MAAM,MAAM,kBAgB3C,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,WAAW,GAAG,gBAAgB;;;;;;;;;;;;;;;;CAuBpE,CAAC;AAKF,eAAO,MAAM,mBAAmB,GAAI,MAAM,UAAU,CAAC,MAAM,CAAC,WAsB3D,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAAI,cAAc,MAAM,WAAqB,CAAC;AAEhF,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,OAAO,MAAM,WACxB,CAAC;AAEtC,eAAO,MAAM,oBAAoB,cAIhC,CAAC;AAIF,eAAO,MAAM,WAAW,GAAI,MAAM,OAAO,cAAuB,CAAC;AAUjE,eAAO,MAAM,gBAAgB,GAC3B,KAAK,MAAM,EACX,OAAO,GAAG,EACV,UAAS,SAAS,GAAG,UAAU,GAAG,IAAiB,KAClD,MACsG,CAAC;AAE1G,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,WAAoB,CAAC;AAExE,eAAO,MAAM,qBAAqB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,WAGzE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,aAAa,MAAM,WAAiC,CAAC;AAE7F,eAAO,MAAM,gBAAgB,GAAI,QAAQ,GAAG,EAAE,QAE7C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,MAAM,GAAG,EAAE,YAAY,OAAO,WAStD,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,QAAQ,WAAW,CAAC,QAAQ,CAAC,EAC7B,KAAK,WAAW,CAAC,KAAK,CAAC,EACvB,SAAS,WAAW,CAAC,gBAAgB,CAAC,EACtC,MAAM,WAAW,CAAC,MAAM,CAAC,WAgB1B,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,WAIxC,CAAC;AAIF,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,QAIrC;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;CAAE,EAAE,WAAW,EAAE,CAAC;kBAIvD,GAAG,EAAE;;MAS7B"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Handle.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/handle/Handle.tsx"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,UAAU,MAAM,4CAmC7B"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DebuggerHeader.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/headers/DebuggerHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErE,OAAa,EAAsB,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
1
|
+
{"version":3,"file":"DebuggerHeader.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/headers/DebuggerHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErE,OAAa,EAAsB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAO1E,UAAU,mBAAmB;IAC3B,aAAa,EAAE,UAAU,CAAC;IAC1B,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,QAAA,MAAM,cAAc,4GA8EnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
@@ -2,6 +2,6 @@ import type { LogMessage } from '../../../types';
|
|
2
2
|
interface ConsolePanelItemProps extends LogMessage {
|
3
3
|
onPress: () => void;
|
4
4
|
}
|
5
|
-
|
6
|
-
export
|
5
|
+
declare const ConsolePanelItem: import("react").NamedExoticComponent<ConsolePanelItemProps>;
|
6
|
+
export default ConsolePanelItem;
|
7
7
|
//# sourceMappingURL=ConsolePanelItem.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ConsolePanelItem.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/items/ConsolePanelItem.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"ConsolePanelItem.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/items/ConsolePanelItem.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,UAAU,qBAAsB,SAAQ,UAAU;IAChD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,gBAAgB,6DAerB,CAAC;AAoBF,eAAe,gBAAgB,CAAC"}
|
@@ -7,6 +7,6 @@ interface NetworkPanelItemProps {
|
|
7
7
|
status?: NetworkRequest['status'];
|
8
8
|
onPress: () => void;
|
9
9
|
}
|
10
|
-
|
11
|
-
export
|
10
|
+
declare const NetworkPanelItem: import("react").NamedExoticComponent<NetworkPanelItemProps>;
|
11
|
+
export default NetworkPanelItem;
|
12
12
|
//# sourceMappingURL=NetworkPanelItem.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NetworkPanelItem.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/items/NetworkPanelItem.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"NetworkPanelItem.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/items/NetworkPanelItem.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIlE,UAAU,qBAAqB;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAsBD,QAAA,MAAM,gBAAgB,6DAqErB,CAAC;AAwCF,eAAe,gBAAgB,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/panels/ConsolePanel.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,
|
1
|
+
{"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/panels/ConsolePanel.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAGR,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAQtB,QAAA,MAAM,YAAY;YAAkC,SAAS,CAAC,SAAS,CAAC;iDA8DtE,CAAC;AAWH,eAAe,YAAY,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NetworkPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/panels/NetworkPanel.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAGR,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"NetworkPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/panels/NetworkPanel.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAGR,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAatB,QAAA,MAAM,YAAY;YAAkC,SAAS,CAAC,SAAS,CAAC;iDAoEtE,CAAC;AASH,eAAe,YAAY,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/panels/Panel.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/panels/Panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAgBpF,UAAU,UAAW,SAAQ,SAAS;CAAG;AAEzC,QAAA,MAAM,KAAK,6FA8CT,CAAC;AAgBH,eAAe,KAAK,CAAC"}
|
package/package.json
CHANGED
package/src/core/constants.ts
CHANGED
package/src/core/refs.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { createRef } from 'react';
|
2
2
|
import type { IndexedStackMethods } from '../ui/components/common/IndexedStack';
|
3
|
-
import type
|
3
|
+
import { Animated, Dimensions, type TextInput } from 'react-native';
|
4
4
|
|
5
5
|
export enum DebuggerVisibility {
|
6
6
|
Hidden = -1,
|
@@ -27,6 +27,15 @@ const refs = {
|
|
27
27
|
panel: createRef<IndexedStackMethods<PanelState>>(),
|
28
28
|
header: createRef<IndexedStackMethods<HeaderState>>(),
|
29
29
|
searchInput: createRef<TextInput>(),
|
30
|
+
panelSize: (() => {
|
31
|
+
const ref = createRef<Animated.ValueXY>();
|
32
|
+
const dimensions = Dimensions.get('window');
|
33
|
+
ref.current = new Animated.ValueXY({
|
34
|
+
x: dimensions.width,
|
35
|
+
y: Math.min(dimensions.width, dimensions.height) * 0.75,
|
36
|
+
});
|
37
|
+
return ref;
|
38
|
+
})(),
|
30
39
|
};
|
31
40
|
|
32
41
|
export default refs;
|
package/src/core/utils.ts
CHANGED
@@ -79,7 +79,7 @@ export const getConsoleTypeColor = (type: LogMessage['type']) => {
|
|
79
79
|
//#region metrics
|
80
80
|
export const getVerticalSafeMargin = (screenHeight: number) => screenHeight / 8;
|
81
81
|
|
82
|
-
export const clamp = (
|
82
|
+
export const clamp = (min: number, max: number, value: number) =>
|
83
83
|
Math.max(min, Math.min(max, value));
|
84
84
|
|
85
85
|
export const getHttpInterceptorId = () => {
|
@@ -152,6 +152,12 @@ export const convertToCurl = (
|
|
152
152
|
|
153
153
|
return curlCommand;
|
154
154
|
};
|
155
|
+
|
156
|
+
export const formatCount = (count: number) => {
|
157
|
+
if (count < 1000) return count.toString();
|
158
|
+
if (count < 1000000) return `${(count / 1000).toFixed(1)}K`;
|
159
|
+
return `${(count / 1000000).toFixed(1)}M`;
|
160
|
+
};
|
155
161
|
//#endregion
|
156
162
|
|
157
163
|
//#region decorators
|
@@ -80,9 +80,9 @@ const Bubble = forwardRef<View, BubbleProps>(
|
|
80
80
|
const verticalSafeMargin = getVerticalSafeMargin(screenHeight);
|
81
81
|
|
82
82
|
const finalY = clamp(
|
83
|
-
gesture.moveY,
|
84
83
|
verticalSafeMargin,
|
85
84
|
screenHeight - verticalSafeMargin - bubbleSize,
|
85
|
+
gesture.moveY,
|
86
86
|
);
|
87
87
|
|
88
88
|
Animated.spring(pan.current, {
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import { useContext, useMemo, useRef } from 'react';
|
2
|
+
import { Animated, PanResponder, StyleSheet, View } from 'react-native';
|
3
|
+
import { MainContext } from '../../../contexts';
|
4
|
+
import refs from '../../../core/refs';
|
5
|
+
import { clamp } from '../../../core/utils';
|
6
|
+
import colors from '../../../theme/colors';
|
7
|
+
|
8
|
+
export default function Handle() {
|
9
|
+
const pan = useRef(new Animated.Value(0));
|
10
|
+
const {
|
11
|
+
dimensions,
|
12
|
+
debuggerState: { position },
|
13
|
+
} = useContext(MainContext)!;
|
14
|
+
|
15
|
+
const panResponder = useMemo(() => {
|
16
|
+
const minPanelHeight = dimensions.height * 0.25;
|
17
|
+
const maxPanelHeight = dimensions.height * 0.9;
|
18
|
+
|
19
|
+
return PanResponder.create({
|
20
|
+
onStartShouldSetPanResponder: () => true,
|
21
|
+
onMoveShouldSetPanResponder: () => true,
|
22
|
+
onPanResponderMove: (event, gestureState) => {
|
23
|
+
const value =
|
24
|
+
position === 'bottom' ? dimensions.height - gestureState.moveY : gestureState.moveY;
|
25
|
+
|
26
|
+
refs.panelSize.current?.setValue({
|
27
|
+
x: dimensions.width,
|
28
|
+
y: clamp(minPanelHeight, maxPanelHeight, value),
|
29
|
+
});
|
30
|
+
|
31
|
+
return Animated.event([null, { dy: pan.current }], {
|
32
|
+
useNativeDriver: false,
|
33
|
+
})(event, gestureState);
|
34
|
+
},
|
35
|
+
});
|
36
|
+
}, [dimensions.height, dimensions.width, position]);
|
37
|
+
|
38
|
+
return (
|
39
|
+
<View style={styles.handleContainer}>
|
40
|
+
<Animated.View {...panResponder.panHandlers} style={styles.handle} hitSlop={16} />
|
41
|
+
</View>
|
42
|
+
);
|
43
|
+
}
|
44
|
+
|
45
|
+
const styles = StyleSheet.create({
|
46
|
+
handleContainer: {
|
47
|
+
alignItems: 'center',
|
48
|
+
justifyContent: 'center',
|
49
|
+
backgroundColor: colors.lightGray,
|
50
|
+
borderTopColor: colors.gray,
|
51
|
+
borderTopWidth: StyleSheet.hairlineWidth,
|
52
|
+
},
|
53
|
+
handle: {
|
54
|
+
width: 48,
|
55
|
+
height: 4,
|
56
|
+
marginVertical: 8,
|
57
|
+
borderRadius: 2,
|
58
|
+
backgroundColor: colors.gray,
|
59
|
+
},
|
60
|
+
});
|
@@ -6,6 +6,7 @@ import icons from '../../../theme/icons';
|
|
6
6
|
import Divider from '../common/Divider';
|
7
7
|
import DebuggerHeaderItem from '../items/DebuggerHeaderItem';
|
8
8
|
import HeaderComponents from './HeaderComponents';
|
9
|
+
import { formatCount } from '../../../core/utils';
|
9
10
|
|
10
11
|
interface DebuggerHeaderProps {
|
11
12
|
selectedPanel: PanelState;
|
@@ -54,7 +55,7 @@ const DebuggerHeader = forwardRef<ScrollView, DebuggerHeaderProps>(
|
|
54
55
|
<DebuggerHeaderItem
|
55
56
|
isLabel
|
56
57
|
isActive={selectedPanel === PanelState.Network}
|
57
|
-
content=
|
58
|
+
content={`Network (${formatCount(networkInterceptor.networkRequests.size)})`}
|
58
59
|
onPress={() => switchTo(PanelState.Network)}
|
59
60
|
/>
|
60
61
|
|
@@ -74,7 +75,7 @@ const DebuggerHeader = forwardRef<ScrollView, DebuggerHeaderProps>(
|
|
74
75
|
<DebuggerHeaderItem
|
75
76
|
isLabel
|
76
77
|
isActive={selectedPanel === PanelState.Console}
|
77
|
-
content=
|
78
|
+
content={`Console (${formatCount(consoleInterceptor.logMessages.length)})`}
|
78
79
|
onPress={() => switchTo(PanelState.Console)}
|
79
80
|
/>
|
80
81
|
|
@@ -1,4 +1,6 @@
|
|
1
|
-
import {
|
1
|
+
import { memo } from 'react';
|
2
|
+
import { StyleSheet, Text, View } from 'react-native';
|
3
|
+
import { CONSOLE_ITEM_HEIGHT } from '../../../core/constants';
|
2
4
|
import { formatLogMessage, getConsoleTypeColor } from '../../../core/utils';
|
3
5
|
import colors from '../../../theme/colors';
|
4
6
|
import type { LogMessage } from '../../../types';
|
@@ -8,23 +10,33 @@ interface ConsolePanelItemProps extends LogMessage {
|
|
8
10
|
onPress: () => void;
|
9
11
|
}
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
onPress={onPress}
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
}
|
13
|
+
const ConsolePanelItem = memo<ConsolePanelItemProps>(
|
14
|
+
({ type, values, onPress }) => {
|
15
|
+
return (
|
16
|
+
<Touchable onPress={onPress} style={styles.container}>
|
17
|
+
<View style={[styles.wrapper, { backgroundColor: getConsoleTypeColor(type) }]}>
|
18
|
+
<Text numberOfLines={1} style={styles.text}>
|
19
|
+
{formatLogMessage(values)}
|
20
|
+
</Text>
|
21
|
+
</View>
|
22
|
+
</Touchable>
|
23
|
+
);
|
24
|
+
},
|
25
|
+
(prevProps, nextProps) => {
|
26
|
+
return prevProps.type === nextProps.type && prevProps.values === nextProps.values;
|
27
|
+
},
|
28
|
+
);
|
23
29
|
|
24
30
|
const styles = StyleSheet.create({
|
25
31
|
container: {
|
26
32
|
flex: 1,
|
27
|
-
|
33
|
+
paddingBottom: 4,
|
34
|
+
height: CONSOLE_ITEM_HEIGHT,
|
35
|
+
},
|
36
|
+
wrapper: {
|
37
|
+
flex: 1,
|
38
|
+
paddingHorizontal: 8,
|
39
|
+
justifyContent: 'center',
|
28
40
|
borderRadius: 8,
|
29
41
|
},
|
30
42
|
text: {
|
@@ -32,3 +44,5 @@ const styles = StyleSheet.create({
|
|
32
44
|
fontSize: 14,
|
33
45
|
},
|
34
46
|
});
|
47
|
+
|
48
|
+
export default ConsolePanelItem;
|