Skip to content

Commit e227572

Browse files
committed
fix errors without schema
1 parent 104d824 commit e227572

File tree

1 file changed

+60
-58
lines changed
  • packages/docusaurus-theme-openapi-docs/src/theme/ResponseSchema

1 file changed

+60
-58
lines changed

packages/docusaurus-theme-openapi-docs/src/theme/ResponseSchema/index.tsx

Lines changed: 60 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -57,73 +57,75 @@ const ResponseSchemaComponent: React.FC<Props> = ({
5757
const mediaTypeObject = body.content?.[mimeType];
5858
const responseExamples = mediaTypeObject?.examples;
5959
const responseExample = mediaTypeObject?.example;
60-
const firstBody = mediaTypeObject?.schema ?? mediaTypeObject;
60+
const firstBody = mediaTypeObject?.schema;
6161

6262
if (
63-
firstBody === undefined &&
64-
responseExample === undefined &&
65-
responseExamples === undefined
63+
!firstBody ||
64+
(firstBody.properties &&
65+
Object.keys(firstBody.properties).length === 0)
6666
) {
67-
return undefined;
68-
}
69-
70-
if (firstBody) {
7167
return (
7268
// @ts-ignore
7369
<TabItem key={mimeType} label={mimeType} value={mimeType}>
74-
<SchemaTabs className="openapi-tabs__schema">
75-
{/* @ts-ignore */}
76-
<TabItem key={title} label={title} value={title}>
77-
<Details
78-
className="openapi-markdown__details response"
79-
data-collapsed={false}
80-
open={true}
81-
style={style}
82-
summary={
83-
<>
84-
<summary>
85-
<strong className="openapi-markdown__details-summary-response">
86-
{title}
87-
{body.required === true && (
88-
<span className="openapi-schema__required">
89-
required
90-
</span>
91-
)}
92-
</strong>
93-
</summary>
94-
</>
95-
}
96-
>
97-
<div style={{ textAlign: "left", marginLeft: "1rem" }}>
98-
{body.description && (
99-
<div
100-
style={{ marginTop: "1rem", marginBottom: "1rem" }}
101-
>
102-
<Markdown>{body.description}</Markdown>
103-
</div>
104-
)}
105-
</div>
106-
<ul style={{ marginLeft: "1rem" }}>
107-
<SchemaNode schema={firstBody} schemaType="response" />
108-
</ul>
109-
</Details>
110-
</TabItem>
111-
{firstBody &&
112-
ExampleFromSchema({
113-
schema: firstBody,
114-
mimeType: mimeType,
115-
})}
116-
117-
{responseExamples &&
118-
ResponseExamples({ responseExamples, mimeType })}
119-
120-
{responseExample &&
121-
ResponseExample({ responseExample, mimeType })}
122-
</SchemaTabs>
70+
<div>No schema</div>
12371
</TabItem>
12472
);
12573
}
126-
return undefined;
74+
75+
return (
76+
// @ts-ignore
77+
<TabItem key={mimeType} label={mimeType} value={mimeType}>
78+
<SchemaTabs className="openapi-tabs__schema">
79+
{/* @ts-ignore */}
80+
<TabItem key={title} label={title} value={title}>
81+
<Details
82+
className="openapi-markdown__details response"
83+
data-collapsed={false}
84+
open={true}
85+
style={style}
86+
summary={
87+
<>
88+
<summary>
89+
<strong className="openapi-markdown__details-summary-response">
90+
{title}
91+
{body.required === true && (
92+
<span className="openapi-schema__required">
93+
required
94+
</span>
95+
)}
96+
</strong>
97+
</summary>
98+
</>
99+
}
100+
>
101+
<div style={{ textAlign: "left", marginLeft: "1rem" }}>
102+
{body.description && (
103+
<div
104+
style={{ marginTop: "1rem", marginBottom: "1rem" }}
105+
>
106+
<Markdown>{body.description}</Markdown>
107+
</div>
108+
)}
109+
</div>
110+
<ul style={{ marginLeft: "1rem" }}>
111+
<SchemaNode schema={firstBody} schemaType="response" />
112+
</ul>
113+
</Details>
114+
</TabItem>
115+
{firstBody &&
116+
ExampleFromSchema({
117+
schema: firstBody,
118+
mimeType: mimeType,
119+
})}
120+
121+
{responseExamples &&
122+
ResponseExamples({ responseExamples, mimeType })}
123+
124+
{responseExample &&
125+
ResponseExample({ responseExample, mimeType })}
126+
</SchemaTabs>
127+
</TabItem>
128+
);
127129
})}
128130
</MimeTabs>
129131
);

0 commit comments

Comments
 (0)