diff --git a/src/core/components/parameters.jsx b/src/core/components/parameters.jsx index 5c4e46cd..a1659849 100644 --- a/src/core/components/parameters.jsx +++ b/src/core/components/parameters.jsx @@ -7,14 +7,6 @@ const eachMap = (iterable, fn) => iterable.valueSeq().filter(Im.Map.isMap).map(f export default class Parameters extends Component { - constructor(props) { - super(props) - this.state = { - callbackVisible: false, - parametersVisible: true - } - } - static propTypes = { parameters: ImPropTypes.list.isRequired, specActions: PropTypes.object.isRequired, @@ -56,21 +48,6 @@ export default class Parameters extends Component { changeConsumesValue(onChangeKey, val) } - toggleTab = (tab) => { - console.log("togggling to tab", tab) - if(tab === "parameters"){ - return this.setState({ - parametersVisible: true, - callbackVisible: false - }) - }else if(tab === "callbacks"){ - return this.setState({ - callbackVisible: true, - parametersVisible: false - }) - } - } - render(){ let { @@ -94,51 +71,38 @@ export default class Parameters extends Component { return (
-
-
this.toggleTab("parameters")} className={this.state.parametersVisible ? "tab-item active" : "tab-item"}> -

Parameters

-
-
this.toggleTab("callbacks")} className="tab-item"> -

Callbacks

-
-
+

Parameters

{ allowTryItOut ? ( ) : null }
- {this.state.parametersVisible ?
- { !parameters.count() ?

No parameters

: -
- - - - - - - - - { - eachMap(parameters, (parameter) => ( - - )).toArray() - } - -
NameDescription
-
- } -
: "" } - - {this.state.callbackVisible ?
- covfefe -
: "" } + { !parameters.count() ?

No parameters

: +
+ + + + + + + + + { + eachMap(parameters, (parameter) => ( + + )).toArray() + } + +
NameDescription
+
+ }
) } diff --git a/src/core/plugins/oas3/wrap-components/parameters.jsx b/src/core/plugins/oas3/wrap-components/parameters.jsx index 66b4ca7c..566c4c14 100644 --- a/src/core/plugins/oas3/wrap-components/parameters.jsx +++ b/src/core/plugins/oas3/wrap-components/parameters.jsx @@ -1,45 +1,184 @@ -import React from "react" +import React, { Component, PropTypes } from "react" import Im, { OrderedMap } from "immutable" +import ImPropTypes from "react-immutable-proptypes" import { OAS3ComponentWrapFactory } from "../helpers" const mapRequestBody = (iterable, fn) => iterable.entries().filter(Im.Map.isMap).map((val) => { return fn(val.get(0), val.get(1)) }) -export default OAS3ComponentWrapFactory((props) => { - const { Ori, operation, getComponent, specSelectors } = props +// More readable, just iterate over maps, only +const eachMap = (iterable, fn) => iterable.valueSeq().filter(Im.Map.isMap).map(fn) - const Model = getComponent("model") +class Parameters extends Component { - const requestBody = operation.get("requestBody") - const requestBodyDescription = (requestBody && requestBody.get("description")) || null - const requestBodyContent = (requestBody && requestBody.get("content")) || new OrderedMap() - return
- - { - requestBody && + constructor(props) { + super(props) + this.state = { + callbackVisible: false, + parametersVisible: true + } + } + + static propTypes = { + parameters: ImPropTypes.list.isRequired, + specActions: PropTypes.object.isRequired, + operation: PropTypes.object.isRequired, + getComponent: PropTypes.func.isRequired, + specSelectors: PropTypes.object.isRequired, + fn: PropTypes.object.isRequired, + tryItOutEnabled: PropTypes.bool, + allowTryItOut: PropTypes.bool, + onTryoutClick: PropTypes.func, + onCancelClick: PropTypes.func, + onChangeKey: PropTypes.array, + pathMethod: PropTypes.array.isRequired + } + + + static defaultProps = { + onTryoutClick: Function.prototype, + onCancelClick: Function.prototype, + tryItOutEnabled: false, + allowTryItOut: true, + onChangeKey: [], + } + + onChange = ( param, value, isXml ) => { + let { + specActions: { changeParam }, + onChangeKey, + } = this.props + + changeParam( onChangeKey, param.get("name"), value, isXml) + } + + onChangeConsumesWrapper = ( val ) => { + let { + specActions: { changeConsumesValue }, + onChangeKey + } = this.props + + changeConsumesValue(onChangeKey, val) + } + + toggleTab = (tab) => { + if(tab === "parameters"){ + return this.setState({ + parametersVisible: true, + callbackVisible: false + }) + }else if(tab === "callbacks"){ + return this.setState({ + callbackVisible: true, + parametersVisible: false + }) + } + } + + render(){ + + let { + onTryoutClick, + onCancelClick, + parameters, + allowTryItOut, + tryItOutEnabled, + + fn, + getComponent, + specSelectors, + pathMethod, + operation + } = this.props + + const ParameterRow = getComponent("parameterRow") + const TryItOutButton = getComponent("TryItOutButton") + const Model = getComponent("model") + + const isExecute = tryItOutEnabled && allowTryItOut + + const requestBody = operation.get("requestBody") + const requestBodyDescription = (requestBody && requestBody.get("description")) || null + const requestBodyContent = (requestBody && requestBody.get("content")) || new OrderedMap() + + return (
-

Request body

+
+
this.toggleTab("parameters")} className={this.state.parametersVisible ? "tab-item active" : "tab-item"}> +

Parameters

+
+
this.toggleTab("callbacks")} className="tab-item"> +

Callbacks

+
+
+ { allowTryItOut ? ( + + ) : null }
-
- { requestBodyDescription && -

{requestBodyDescription}

+ {this.state.parametersVisible ?
+ { !parameters.count() ?

No parameters

: +
+ + + + + + + + + { + eachMap(parameters, (parameter) => ( + + )).toArray() + } + +
NameDescription
+
} - { !requestBodyContent.count() ?

No content

: - requestBodyContent.map((mediaTypeValue, key) => ( -
-

{key}

- -
- )).toArray() - } -
+
: "" } + + {this.state.callbackVisible ?
+ covfefe +
: "" } + { + requestBody && +
+
+

Request body

+
+
+ { requestBodyDescription && +

{requestBodyDescription}

+ } + { !requestBodyContent.count() ?

No content

: + requestBodyContent.map((mediaTypeValue, key) => ( +
+

{key}

+ +
+ )).toArray() + } +
+
+ }
- } -
-}) + ) + } +} + + +export default OAS3ComponentWrapFactory(Parameters)