operation extensions display

This commit is contained in:
Greg Thompson
2017-11-06 09:18:05 -06:00
parent 44c422eba3
commit 9a66acf37f
3 changed files with 58 additions and 1 deletions

View File

@@ -0,0 +1,15 @@
import React from "react"
import PropTypes from "prop-types"
export const OperationExtRow = ({ xKey, xVal }) => {
return (<tr>
<td>{ xKey }</td>
<td>{ String(xVal) }</td>
</tr>)
}
OperationExtRow.propTypes = {
xKey: PropTypes.string,
xVal: PropTypes.any
}
export default OperationExtRow

View File

@@ -0,0 +1,35 @@
import React from "react"
import PropTypes from "prop-types"
export const OperationExt = ({ extensions, getComponent }) => {
let OperationExtRow = getComponent("OperationExtRow")
return (
<div className="opblock-section">
<div className="opblock-section-header">
<h4>Extensions</h4>
</div>
<div className="table-container">
<table>
<thead>
<tr>
<td className="col col_header">Field</td>
<td className="col col_header">Value</td>
</tr>
</thead>
<tbody>
{
extensions.entrySeq().map(([k, v]) => <OperationExtRow key={`${k}-${v}`} xKey={k} xVal={v} />)
}
</tbody>
</table>
</div>
</div>
)
}
OperationExt.propTypes = {
extensions: PropTypes.object.isRequired,
getComponent: PropTypes.func.isRequired
}
export default OperationExt

View File

@@ -2,7 +2,7 @@ import React, { PureComponent } from "react"
import PropTypes from "prop-types" import PropTypes from "prop-types"
import { getList } from "core/utils" import { getList } from "core/utils"
import * as CustomPropTypes from "core/proptypes" import * as CustomPropTypes from "core/proptypes"
import { sanitizeUrl } from "core/utils" import { getExtensions, sanitizeUrl } from "core/utils"
//import "less/opblock" //import "less/opblock"
@@ -126,6 +126,7 @@ export default class Operation extends PureComponent {
let summary = operation.get("summary") let summary = operation.get("summary")
let description = operation.get("description") let description = operation.get("description")
let deprecated = operation.get("deprecated") let deprecated = operation.get("deprecated")
let extensions = getExtensions(operation)
let externalDocs = operation.get("externalDocs") let externalDocs = operation.get("externalDocs")
let responses = operation.get("responses") let responses = operation.get("responses")
let security = operation.get("security") || specSelectors.security() let security = operation.get("security") || specSelectors.security()
@@ -144,6 +145,7 @@ export default class Operation extends PureComponent {
const Collapse = getComponent( "Collapse" ) const Collapse = getComponent( "Collapse" )
const Markdown = getComponent( "Markdown" ) const Markdown = getComponent( "Markdown" )
const Schemes = getComponent( "schemes" ) const Schemes = getComponent( "schemes" )
const OperationExt = getComponent( "OperationExt" )
const { deepLinking } = getConfigs() const { deepLinking } = getConfigs()
@@ -211,6 +213,7 @@ export default class Operation extends PureComponent {
</div> </div>
</div> : null </div> : null
} }
<Parameters <Parameters
parameters={parameters} parameters={parameters}
operation={operation} operation={operation}
@@ -277,6 +280,10 @@ export default class Operation extends PureComponent {
displayRequestDuration={ displayRequestDuration } displayRequestDuration={ displayRequestDuration }
fn={fn} /> fn={fn} />
} }
{ !extensions.size ? null :
<OperationExt extensions={ extensions } getComponent={ getComponent } />
}
</div> </div>
</Collapse> </Collapse>
</div> </div>