UI: fix default values resetting form inputs (#22458)

This commit is contained in:
claire bontempo
2023-08-20 10:55:41 -07:00
committed by GitHub
parent 98523a6874
commit abd6324e50
3 changed files with 7 additions and 2 deletions

3
changelog/22458.txt Normal file
View File

@@ -0,0 +1,3 @@
```release-note:bug
ui: fixes model defaults overwriting input value when user tries to clear form input
```

View File

@@ -306,8 +306,9 @@
disabled={{and @attr.options.editDisabled (not @model.isNew)}}
autocomplete="off"
spellcheck="false"
value={{or (get @model this.valuePath) @attr.options.defaultValue}}
value={{get @model this.valuePath}}
{{on "change" this.onChangeWithEvent}}
{{on "input" this.onChangeWithEvent}}
{{on "keyup" this.handleKeyUp}}
class="input {{if this.validationError 'has-error-border'}}"
maxLength={{@attr.options.characterLimit}}

View File

@@ -26,7 +26,8 @@ module('Integration | Component | form field', function (hooks) {
};
const setup = async function (attr) {
const model = EmberObject.create({});
// ember sets model attrs from the defaultValue key, mimicking that behavior here
const model = EmberObject.create({ [attr.name]: attr.options?.defaultValue });
const spy = sinon.spy();
this.set('onChange', spy);
this.set('model', model);