import classnames from 'classnames';
import { useActiveRequest } from '../hooks/useActiveRequest';
import { useSendRequest } from '../hooks/useSendRequest';
import { useUpdateRequest } from '../hooks/useUpdateRequest';
import { Editor } from './core/Editor';
import { HeaderEditor } from './HeaderEditor';
import { TabContent, Tabs } from './core/Tabs/Tabs';
import { UrlBar } from './UrlBar';
interface Props {
fullHeight: boolean;
className?: string;
}
export function RequestPane({ fullHeight, className }: Props) {
const activeRequest = useActiveRequest();
const updateRequest = useUpdateRequest(activeRequest);
const sendRequest = useSendRequest(activeRequest);
if (activeRequest === null) return null;
return (
updateRequest.mutate({ method })}
onUrlChange={(url) => updateRequest.mutate({ url })}
sendRequest={sendRequest.mutate}
/>
updateRequest.mutate({ bodyType: bodyType.value }),
value: activeRequest.bodyType ?? 'nobody',
items: [
{ label: 'No Body', value: 'nobody' },
{ label: 'JSON', value: 'json' },
{ label: 'GraphQL', value: 'graphql' },
],
},
},
{ value: 'params', label: 'Params' },
{ value: 'headers', label: 'Headers' },
{ value: 'auth', label: 'Auth' },
]}
className="mt-2"
tabListClassName="px-2"
defaultValue="body"
label="Request body"
>
{activeRequest.bodyType === 'json' ? (
updateRequest.mutate({ body })}
/>
) : activeRequest.bodyType === 'graphql' ? (
updateRequest.mutate({ body })}
/>
) : (
No Body
)}
);
}