diff options
author | Florrie <towerofnix@gmail.com> | 2020-05-03 14:57:01 -0300 |
---|---|---|
committer | Florrie <towerofnix@gmail.com> | 2020-05-03 14:57:01 -0300 |
commit | be0919ac31b1048248941ed0c290c03824732297 (patch) | |
tree | 1d81c019bc60529e753132287dec3c60bd8e84b9 /ui/form | |
parent | 04a9e6f780bb05d855507d9092170d873e18e229 (diff) |
fix long-ignored crash interacting with empty form
Diffstat (limited to 'ui/form')
-rw-r--r-- | ui/form/Form.js | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/ui/form/Form.js b/ui/form/Form.js index 451baa4..f61c7b6 100644 --- a/ui/form/Form.js +++ b/ui/form/Form.js @@ -81,8 +81,10 @@ module.exports = class Form extends FocusElement { } previousInput() { - // TODO: Forms currently assume there is at least one selectable input, - // but this isn't necessarily always the case. + if (this.inputs.length === 0) { + return + } + do { this.curIndex = (this.curIndex - 1) if (this.curIndex < 0) { @@ -94,7 +96,10 @@ module.exports = class Form extends FocusElement { } nextInput() { - // TODO: See previousInput + if (this.inputs.length === 0) { + return + } + do { this.curIndex = (this.curIndex + 1) % this.inputs.length } while (!this.inputs[this.curIndex].selectable) @@ -103,9 +108,12 @@ module.exports = class Form extends FocusElement { } firstInput(selectForm = true) { + if (this.inputs.length === 0) { + return + } + this.curIndex = 0 - // TODO: See previousInput if (!this.inputs[this.curIndex].selectable) { this.nextInput() } @@ -118,9 +126,12 @@ module.exports = class Form extends FocusElement { } lastInput(selectForm = true) { + if (this.inputs.length === 0) { + return + } + this.curIndex = this.inputs.length - 1 - // TODO: See previousInput if (!this.inputs[this.curIndex].selectable) { this.previousInput() } |