@@ -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