react-native-xenon
Version:
A powerful in-app debugging tool for React Native.
77 lines (76 loc) • 2.65 kB
JavaScript
"use strict";
import { useContext } from 'react';
import { MainContext } from "../../../contexts/index.js";
import { convertToCurl, getNetworkUtils, shareText } from "../../../core/utils.js";
import colors from "../../../theme/colors.js";
import icons from "../../../theme/icons.js";
import { NetworkType } from "../../../types/index.js";
import Divider from "../common/Divider.js";
import DebuggerHeaderItem from "../items/DebuggerHeaderItem.js";
import HeaderComponents from "./HeaderComponents.js";
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
export default function NetworkHeader({
selectedPanel,
style,
ref
}) {
const {
debuggerState: {
detailsData
},
setDebuggerState
} = useContext(MainContext);
const data = detailsData?.data;
const {
isWS,
overviewShown,
headersShown,
requestShown,
responseShown,
messagesShown
} = getNetworkUtils(data);
return /*#__PURE__*/_jsxs(HeaderComponents.Wrapper, {
ref: ref,
style: style,
children: [/*#__PURE__*/_jsx(HeaderComponents.Back, {
selectedPanel: selectedPanel
}), /*#__PURE__*/_jsx(HeaderComponents.MainButtons, {}), /*#__PURE__*/_jsx(Divider, {
type: "vertical"
}), !!overviewShown && /*#__PURE__*/_jsx(HeaderComponents.DetailTabItem, {
tab: "overview",
label: "Overview"
}), !!headersShown && /*#__PURE__*/_jsx(HeaderComponents.DetailTabItem, {
tab: "headers",
label: "Headers"
}), !!requestShown && /*#__PURE__*/_jsx(HeaderComponents.DetailTabItem, {
tab: "request",
label: "Request"
}), !!responseShown && /*#__PURE__*/_jsx(HeaderComponents.DetailTabItem, {
tab: "response",
label: "Response"
}), !!messagesShown && /*#__PURE__*/_jsx(HeaderComponents.DetailTabItem, {
tab: "messages",
label: "Messages"
}), !isWS && /*#__PURE__*/_jsxs(_Fragment, {
children: [/*#__PURE__*/_jsx(Divider, {
type: "vertical"
}), /*#__PURE__*/_jsx(DebuggerHeaderItem, {
content: icons.beautify,
isActive: detailsData?.beautified,
activeColor: colors.green,
onPress: () => {
setDebuggerState(draft => {
draft.detailsData.beautified = !draft.detailsData?.beautified;
});
}
}), /*#__PURE__*/_jsx(DebuggerHeaderItem, {
content: icons.share,
onPress: async () => {
if (data?.type === NetworkType.WS) return;
await shareText(convertToCurl(data.method, data.url, data.requestHeaders, data.body));
}
})]
})]
});
}
//# sourceMappingURL=NetworkHeader.js.map