diff --git a/packages/app/components/ui/form/Form.tsx b/packages/app/components/ui/form/Form.tsx index d534591..a68a6f5 100644 --- a/packages/app/components/ui/form/Form.tsx +++ b/packages/app/components/ui/form/Form.tsx @@ -131,6 +131,7 @@ export default class Form extends React.Component { } if (form.checkValidity()) { + this.clearErrors(); let result: Promise | void; if (hasForm(this.props)) { @@ -187,6 +188,8 @@ export default class Form extends React.Component { this.props.onInvalid(errors); } + clearErrors = () => hasForm(this.props) && this.props.form.clearErrors(); + onFormSubmit = (event: React.FormEvent) => { event.preventDefault(); diff --git a/packages/app/components/ui/form/FormModel.ts b/packages/app/components/ui/form/FormModel.ts index 03d9c76..746c12f 100644 --- a/packages/app/components/ui/form/FormModel.ts +++ b/packages/app/components/ui/form/FormModel.ts @@ -139,6 +139,14 @@ export default class FormModel { }); } + /** + * Clear errors in form fields + */ + clearErrors(): void { + this.errors = {}; + Object.values(this.fields).forEach((field) => field.setError(null)); + } + getFirstError(): ValidationError | null { const [error] = Object.values(this.errors);