import type { HttpRequest } from '@yaakapp-internal/models'; import classNames from 'classnames'; import { useAtomValue } from 'jotai'; import type { CSSProperties } from 'react'; import React from 'react'; import { showGraphQLDocExplorerAtom } from '../atoms/graphqlSchemaAtom'; import { useCurrentGraphQLSchema } from '../hooks/useIntrospectGraphQL'; import type { SlotProps } from './core/SplitLayout'; import { SplitLayout } from './core/SplitLayout'; import { GraphQLDocsExplorer } from './GraphQLDocsExplorer'; import { HttpRequestPane } from './HttpRequestPane'; import { HttpResponsePane } from './HttpResponsePane'; interface Props { activeRequest: HttpRequest; style: CSSProperties; } export function HttpRequestLayout({ activeRequest, style }: Props) { const { bodyType } = activeRequest; const showGraphQLDocExplorer = useAtomValue(showGraphQLDocExplorerAtom); const graphQLSchema = useCurrentGraphQLSchema(activeRequest); const requestResponseSplit = ({ style }: Pick) => ( ( )} secondSlot={({ style }) => ( )} /> ); if (bodyType === 'graphql' && showGraphQLDocExplorer && graphQLSchema != null) { return ( ( )} /> ); } return requestResponseSplit({ style }); }