import Collapsible from '../collapsible' import ResponseObject from '../response-object' import PropertyObject from '../property-object' import { capitalCase } from 'change-case' import useHover from '../../../../lib/hooks/use-hover' import SvgrChevronDown from '../chevron-down/black' import styles from './operation-object.module.css' function OperationObject({ data, path, type, isHighlighted, isCollapsed, setIsCollapsed, }) { const [headerRef, isHeaderHovered] = useHover() // const [isCollapsed, setIsCollapsed] = useState(true) const { operationId, parameters, responses, summary } = data const successResponse = responses['200'] const title = capitalCase(operationId.split('_').slice(1).join()) // Group parameter properties by type const pathParams = parameters.filter((p) => p.in === 'path') const queryParams = parameters.filter((p) => p.in === 'query') const bodyParam = parameters.filter((p) => p.in === 'body')[0] // Note: we only accept a single "in=body" param const bodyProps = bodyParam ? getBodyParamProps(bodyParam) : [] return (
{summary}
Request
{pathParams.length > 0 ? (Response
{!!successResponse ? (Successful Response
No response has been defined.
)}{title}
{params.map((parameter, idx) => { return (