diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-07-06 12:09:20 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-07-06 12:09:20 +0300 |
commit | c203c40cda9df83cc33f9d69a24593ef4de1148d (patch) | |
tree | f13d457cff113e393e256132534296ec9e7ad2d7 /app/assets/javascripts/gl_field_errors.js | |
parent | 2553d13d9064a16e98720b4d25add589b1e43e28 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/gl_field_errors.js')
-rw-r--r-- | app/assets/javascripts/gl_field_errors.js | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/app/assets/javascripts/gl_field_errors.js b/app/assets/javascripts/gl_field_errors.js index c4fd719c8d0..ad79483d5ec 100644 --- a/app/assets/javascripts/gl_field_errors.js +++ b/app/assets/javascripts/gl_field_errors.js @@ -52,10 +52,23 @@ export default class GlFieldErrors { }); } - focusOnFirstInvalid() { - const firstInvalid = this.state.inputs.filter( - input => !input.inputDomElement.validity.valid, - )[0]; - firstInvalid.inputElement.focus(); + get invalidInputs() { + return this.state.inputs.filter( + ({ + inputDomElement: { + validity: { valid }, + }, + }) => !valid, + ); + } + + get focusedInvalidInput() { + return this.invalidInputs.find(({ inputElement }) => inputElement.is(':focus')); + } + + focusInvalid() { + if (this.focusedInvalidInput) return; + + this.invalidInputs[0].inputElement.focus(); } } |