diff --git a/src/core/components/layout-utils.jsx b/src/core/components/layout-utils.jsx
index c23f5186277..2066f7aae5e 100644
--- a/src/core/components/layout-utils.jsx
+++ b/src/core/components/layout-utils.jsx
@@ -1,5 +1,6 @@
import React from "react"
import PropTypes from "prop-types"
+import DebounceInput from "react-debounce-input"
function xclass(...args) {
return args.filter(a => !!a).join(" ").trim()
@@ -124,9 +125,10 @@ export class Button extends React.Component {
}
-
export const TextArea = (props) =>
+export const DebounceTextArea = (props) =>
+
export const Input = (props) =>
export class Select extends React.Component {
diff --git a/src/core/components/param-body.jsx b/src/core/components/param-body.jsx
index 878b4546ab4..ed9a6a93138 100644
--- a/src/core/components/param-body.jsx
+++ b/src/core/components/param-body.jsx
@@ -101,7 +101,7 @@ export default class ParamBody extends PureComponent {
} = this.props
const Button = getComponent("Button")
- const TextArea = getComponent("TextArea")
+ const TextArea = getComponent("DebounceTextArea")
const HighlightCode = getComponent("HighlightCode", true)
const ContentType = getComponent("contentType")
// for domains where specSelectors not passed
diff --git a/src/core/plugins/json-schema-5/components/json-schema-components.jsx b/src/core/plugins/json-schema-5/components/json-schema-components.jsx
index 9f1cf55163c..ea309ef7ef5 100644
--- a/src/core/plugins/json-schema-5/components/json-schema-components.jsx
+++ b/src/core/plugins/json-schema-5/components/json-schema-components.jsx
@@ -420,7 +420,7 @@ export class JsonSchema_object extends PureComponent {
disabled
} = this.props
- const TextArea = getComponent("TextArea")
+ const TextArea = getComponent("DebounceTextArea")
errors = errors.toJS ? errors.toJS() : Array.isArray(errors) ? errors : []
return (
diff --git a/src/core/plugins/oas3/components/request-body-editor.jsx b/src/core/plugins/oas3/components/request-body-editor.jsx
index dd82aeb036e..83d1f0099f3 100644
--- a/src/core/plugins/oas3/components/request-body-editor.jsx
+++ b/src/core/plugins/oas3/components/request-body-editor.jsx
@@ -86,7 +86,7 @@ export default class RequestBodyEditor extends PureComponent {
} = this.state
let isInvalid = errors.size > 0 ? true : false
- const TextArea = getComponent("TextArea")
+ const TextArea = getComponent("DebounceTextArea")
return (
diff --git a/test/e2e-cypress/e2e/features/oas3-request-body-required.cy.js b/test/e2e-cypress/e2e/features/oas3-request-body-required.cy.js
index 4da95e67f3c..8f3d353b2f6 100644
--- a/test/e2e-cypress/e2e/features/oas3-request-body-required.cy.js
+++ b/test/e2e-cypress/e2e/features/oas3-request-body-required.cy.js
@@ -79,6 +79,7 @@ describe("OpenAPI 3.0 Validation for Required Request Body and Request Body Fiel
)
.should("not.have.class", "invalid")
.clear()
+ .blur()
// Execute
.get(".execute.opblock-control__btn")
.click()
@@ -104,6 +105,7 @@ describe("OpenAPI 3.0 Validation for Required Request Body and Request Body Fiel
)
.clear()
.type(" ")
+ .blur()
// Execute
.get(".execute.opblock-control__btn")
.click()
@@ -197,6 +199,7 @@ describe("OpenAPI 3.0 Validation for Required Request Body and Request Body Fiel
)
.should("not.have.class", "invalid")
.clear()
+ .blur()
// Execute
.get(".execute.opblock-control__btn")
.click()
diff --git a/test/e2e-cypress/e2e/features/schema-form.cy.js b/test/e2e-cypress/e2e/features/schema-form.cy.js
index 0b8ff348c54..52b2a062f1e 100644
--- a/test/e2e-cypress/e2e/features/schema-form.cy.js
+++ b/test/e2e-cypress/e2e/features/schema-form.cy.js
@@ -814,6 +814,7 @@ describe("OpenAPI 3.0 Additional JsonSchemaForm in a Parameter", () => {
}
]`
)
+ .blur()
.should("contain.text", "Jane")
.should("contain.text", "201")
// Execute
diff --git a/test/unit/core/plugins/json-schema-5/components/json-schema-form.jsx b/test/unit/core/plugins/json-schema-5/components/json-schema-form.jsx
index 5d54ebb5d5e..5c297ba9a3f 100644
--- a/test/unit/core/plugins/json-schema-5/components/json-schema-form.jsx
+++ b/test/unit/core/plugins/json-schema-5/components/json-schema-form.jsx
@@ -5,8 +5,9 @@ import { mount, render } from "enzyme"
import { getSchemaObjectType } from "core/plugins/json-schema-5-samples/fn/index"
import * as JsonSchemaComponents from "core/plugins/json-schema-5/components/json-schema-components"
import { makeIsFileUploadIntended } from "core/plugins/oas3/fn"
+import { DebounceTextArea } from "core/components/layout-utils"
-const components = {...JsonSchemaComponents, Select, Input, TextArea}
+const components = {...JsonSchemaComponents, Select, Input, TextArea, DebounceTextArea}
const getComponentStub = (name) => {
if(components[name]) return components[name]