fix(radio): set default radio value if undefined (#20329)

This commit is contained in:
Liam DeBeasi
2020-01-29 14:01:27 -05:00
committed by GitHub
parent 7877ea03fe
commit eb57723785
3 changed files with 34 additions and 36 deletions

View File

@ -67,6 +67,9 @@ export class Radio implements ComponentInterface {
@Event() ionBlur!: EventEmitter<void>;
connectedCallback() {
if (this.value === undefined) {
this.value = this.inputId;
}
const radioGroup = this.radioGroup = this.el.closest('ion-radio-group');
if (radioGroup) {
this.updateState();

View File

@ -0,0 +1,11 @@
import { Radio } from '../radio.tsx';
describe('ion-radio', () => {
it('should set a default value', async () => {
const radio = new Radio();
await radio.connectedCallback();
expect(radio.value).toEqual('ion-rb-0');
});
});

View File

@ -13,9 +13,9 @@
<body>
<h1>Default</h1>
<ion-radio></ion-radio>
<ion-radio-group>
<ion-radio-group value="radio">
<ion-radio></ion-radio>
<ion-radio value="radio"></ion-radio>
</ion-radio-group>
<h1>Colors: Unchecked</h1>
@ -30,49 +30,33 @@
<ion-radio color="dark"></ion-radio>
<h1>Colors: Checked</h1>
<ion-radio-group>
<ion-radio color="primary"></ion-radio>
</ion-radio-group>
<ion-radio-group>
<ion-radio color="secondary"></ion-radio>
</ion-radio-group>
<ion-radio-group>
<ion-radio color="tertiary"></ion-radio>
</ion-radio-group>
<ion-radio-group>
<ion-radio color="success"></ion-radio>
</ion-radio-group>
<ion-radio-group>
<ion-radio color="warning"></ion-radio>
</ion-radio-group>
<ion-radio-group>
<ion-radio color="danger"></ion-radio>
</ion-radio-group>
<ion-radio-group>
<ion-radio color="light"></ion-radio>
</ion-radio-group>
<ion-radio-group>
<ion-radio color="medium"></ion-radio>
</ion-radio-group>
<ion-radio-group>
<ion-radio color="dark"></ion-radio>
<ion-radio-group value="radio">
<ion-radio color="primary" value="radio"></ion-radio>
<ion-radio color="secondary" value="radio"></ion-radio>
<ion-radio color="tertiary" value="radio"></ion-radio>
<ion-radio color="success" value="radio"></ion-radio>
<ion-radio color="warning" value="radio"></ion-radio>
<ion-radio color="danger" value="radio"></ion-radio>
<ion-radio color="light" value="radio"></ion-radio>
<ion-radio color="medium" value="radio"></ion-radio>
<ion-radio color="dark" value="radio"></ion-radio>
</ion-radio-group>
<h1>Disabled</h1>
<ion-radio disabled></ion-radio>
<ion-radio color="secondary" disabled></ion-radio>
<ion-radio-group>
<ion-radio-group value="radio">
<ion-radio disabled></ion-radio>
<ion-radio color="secondary" disabled></ion-radio>
<ion-radio disabled value="radio"></ion-radio>
<ion-radio color="secondary" disabled value="radio"></ion-radio>
</ion-radio-group>
<h1>Custom</h1>
<ion-radio class="custom"></ion-radio>
<ion-radio-group>
<ion-radio-group value="radio">
<ion-radio class="custom"></ion-radio>
<ion-radio class="custom" color="tertiary"></ion-radio>
<ion-radio class="custom-size" color="danger"></ion-radio>
<ion-radio class="custom" value="radio"></ion-radio>
<ion-radio class="custom" color="tertiary" value="radio"></ion-radio>
<ion-radio class="custom-size" color="danger" value="radio"></ion-radio>
</ion-radio-group>
<style>