Skip to content

Commit 23e3e00

Browse files
fix: ignore rendering responses with extensions in the schema (#10592)
1 parent 943e767 commit 23e3e00

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

src/core/components/responses.jsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from "react"
22
import { fromJS, Iterable } from "immutable"
33
import PropTypes from "prop-types"
44
import ImPropTypes from "react-immutable-proptypes"
5-
import { defaultStatusCode, getAcceptControllingResponse } from "core/utils"
5+
import { defaultStatusCode, getAcceptControllingResponse, isExtension } from "core/utils"
66
import createHtmlReadyId from "core/utils/create-html-ready-id"
77

88
export default class Responses extends React.Component {
@@ -87,10 +87,11 @@ export default class Responses extends React.Component {
8787
const acceptControllingResponse = isSpecOAS3 ?
8888
getAcceptControllingResponse(responses) : null
8989

90+
const nonExtensionResponses = responses.filter((_, key) => !isExtension(key))
9091
const regionId = createHtmlReadyId(`${method}${path}_responses`)
9192
const controlId = `${regionId}_select`
9293

93-
return (
94+
return (!nonExtensionResponses || !nonExtensionResponses.size) ? null : (
9495
<div className="responses-wrapper">
9596
<div className="opblock-section-header">
9697
<h4>Responses</h4>
@@ -131,7 +132,7 @@ export default class Responses extends React.Component {
131132
</thead>
132133
<tbody>
133134
{
134-
responses.entrySeq().map( ([code, response]) => {
135+
nonExtensionResponses.entrySeq().map( ([code, response]) => {
135136

136137
let className = tryItOutResponse && tryItOutResponse.get("status") == code ? "response_current" : ""
137138
return (

src/core/utils/index.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -704,12 +704,16 @@ export const createDeepLinkPath = (str) => typeof str == "string" || str instanc
704704
// suitable for use in CSS classes and ids
705705
export const escapeDeepLinkPath = (str) => cssEscape( createDeepLinkPath(str).replace(/%20/g, "_") )
706706

707-
export const getExtensions = (defObj) => {
707+
export const isExtension = (key) => {
708708
const extensionRegExp = /^x-/
709+
return extensionRegExp.test(key)
710+
}
711+
712+
export const getExtensions = (defObj) => {
709713
if(Map.isMap(defObj)) {
710-
return defObj.filter((v, k) => extensionRegExp.test(k))
714+
return defObj.filter((v, k) => isExtension(k))
711715
}
712-
return Object.keys(defObj).filter((key) => extensionRegExp.test(key))
716+
return Object.keys(defObj).filter((key) => isExtension(key))
713717
}
714718
export const getCommonExtensions = (defObj) => defObj.filter((v, k) => /^pattern|maxLength|minLength|maximum|minimum/.test(k))
715719

0 commit comments

Comments
 (0)