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 }); }