diff --git a/src/core/plugins/oas3/components/request-body-editor.jsx b/src/core/plugins/oas3/components/request-body-editor.jsx index ff4c4dae6b8..ceecfcc3f14 100644 --- a/src/core/plugins/oas3/components/request-body-editor.jsx +++ b/src/core/plugins/oas3/components/request-body-editor.jsx @@ -27,6 +27,7 @@ export default class RequestBodyEditor extends PureComponent { this.state = { isEditBox: false, + userDidModify: false, value: "" } } @@ -59,6 +60,11 @@ export default class RequestBodyEditor extends PureComponent { this.onChange(this.sample(explicitMediaType)) } + resetValueToSample = (explicitMediaType) => { + this.setState({ userDidModify: false }) + this.setValueToSample(explicitMediaType) + } + sample = (explicitMediaType) => { let { requestBody, mediaType } = this.props let schema = requestBody.getIn(["content", explicitMediaType || mediaType, "schema"]).toJS() @@ -78,6 +84,7 @@ export default class RequestBodyEditor extends PureComponent { const isJson = /json/i.test(mediaType) const inputValue = isJson ? e.target.value.trim() : e.target.value + this.setState({ userDidModify: true }) this.onChange(inputValue) } @@ -87,13 +94,14 @@ export default class RequestBodyEditor extends PureComponent { let { isExecute, getComponent, + mediaType, } = this.props const Button = getComponent("Button") const TextArea = getComponent("TextArea") const HighlightCode = getComponent("highlightCode") - let { value, isEditBox } = this.state + let { value, isEditBox, userDidModify } = this.state return (