import { TabContext, TabList, TabPanel } from "@mui/lab"; import { Box, Tab } from "@mui/material"; import { useState } from "react"; import Editor from "../common/Editor"; import KeyValuePairTable, { KeyValuePair, KeyValuePairTableProps } from "./KeyValuePair"; enum TabValue { QueryParams = "queryParams", Headers = "headers", Body = "body", } export type EditRequestTabsProps = { queryParams: KeyValuePair[]; headers: KeyValuePair[]; onQueryParamChange: KeyValuePairTableProps["onChange"]; onQueryParamDelete: KeyValuePairTableProps["onDelete"]; onHeaderChange: KeyValuePairTableProps["onChange"]; onHeaderDelete: KeyValuePairTableProps["onDelete"]; body: string; onBodyChange: (value: string) => void; }; function EditRequestTabs(props: EditRequestTabsProps): JSX.Element { const { queryParams, onQueryParamChange, onQueryParamDelete, headers, onHeaderChange, onHeaderDelete, body, onBodyChange, } = props; const [tabValue, setTabValue] = useState(TabValue.QueryParams); const tabSx = { textTransform: "none", }; return ( setTabValue(value)}> 1 ? "s" : "") + ")" : "")} sx={tabSx} /> { onBodyChange(value || ""); }} monacoOptions={{ readOnly: false }} contentType={headers.find(({ key }) => key.toLowerCase() === "content-type")?.value} /> ); } export default EditRequestTabs;