import { DependentRequired, DependentSchemas, } from "@theme/JSONSchemaViewer/JSONSchemaElements/SchemaConditional" import type { JSX } from "react" import type { JSONSchema } from "@theme/JSONSchemaViewer/types" type Props = { schema: Exclude [x: string]: any } export default function Dependencies(props: Props): JSX.Element { const { schema } = props let dependencies = schema.dependencies! // Split dependencies into dependentRequired / dependentSchemas let result = Object.entries(dependencies).reduce( (acc, [property, subSchema]) => { if (Array.isArray(subSchema)) { // dependentRequired case acc["dependentRequired"][property] = subSchema } else { // dependentSchemas case acc["dependentSchemas"][property] = subSchema as JSONSchema } // return result return acc }, { dependentRequired: {} as Record, dependentSchemas: {} as Record, }, ) return ( <> {Object.keys(result.dependentRequired).length > 0 && ( )} {Object.keys(result.dependentSchemas).length > 0 && ( )} ) }