Fix Field validation tooltip sticking if blurred before async validation resolved

pull/21833/head
Michael Telatynski 2019-12-17 14:28:18 +00:00
parent 0140338ac5
commit 213bc4c3ac
1 changed files with 9 additions and 1 deletions

View File

@ -66,10 +66,14 @@ export default class Field extends React.PureComponent {
this.state = { this.state = {
valid: undefined, valid: undefined,
feedback: undefined, feedback: undefined,
focused: false,
}; };
} }
onFocus = (ev) => { onFocus = (ev) => {
this.setState({
focused: true,
});
this.validate({ this.validate({
focused: true, focused: true,
}); });
@ -88,6 +92,9 @@ export default class Field extends React.PureComponent {
}; };
onBlur = (ev) => { onBlur = (ev) => {
this.setState({
focused: false,
});
this.validate({ this.validate({
focused: false, focused: false,
}); });
@ -112,7 +119,8 @@ export default class Field extends React.PureComponent {
allowEmpty, allowEmpty,
}); });
if (feedback) { // this method is async and we may have been blurred since validate was called so check
if (this.state.focused && feedback) {
this.setState({ this.setState({
valid, valid,
feedback, feedback,