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