fix(radio-group): reset also if selected value is behind initial value

This commit is contained in:
qa46hx 2020-11-23 14:02:17 +01:00
parent 8f1456c8cb
commit aa8ad0e6b0
3 changed files with 31 additions and 1 deletions

View file

@ -0,0 +1,9 @@
---
'@lion/checkbox-group': patch
'@lion/form-core': patch
'@lion/radio-group': patch
---
- (RadioGroup) fix reset bug when selected value was behind inital value
- Add ChoiceInputMixin test suite
- Make use of ChoiceGroupMixin test suite

View file

@ -10,4 +10,26 @@ export class LionRadioGroup extends ChoiceGroupMixin(FormGroupMixin(LitElement))
super.connectedCallback();
this.setAttribute('role', 'radiogroup');
}
/**
* @override FormGroupMixin, during a reset if the current checked value is behind
* the initial checked value, they both got unchecked
*/
resetGroup() {
let initValue;
this.formElements.forEach(child => {
if (typeof child.resetGroup === 'function') {
child.resetGroup();
} else if (typeof child.reset === 'function') {
child.reset();
// If the value was initially checked save this
if (child.checked) {
initValue = child.value;
}
}
});
this.modelValue = initValue;
this.resetInteractionState();
}
}

View file

@ -1,5 +1,4 @@
import { expect, fixture as _fixture, html } from '@open-wc/testing';
import '../lion-radio-group.js';
import '../lion-radio.js';