diff --git a/packages/components/checkbox/__tests__/checkboxGroup.spec.ts b/packages/components/checkbox/__tests__/checkboxGroup.spec.ts index 748fbe6a2..f1d846f92 100644 --- a/packages/components/checkbox/__tests__/checkboxGroup.spec.ts +++ b/packages/components/checkbox/__tests__/checkboxGroup.spec.ts @@ -65,12 +65,14 @@ describe('CheckboxGroup', () => { test('dataSource work', async () => { let dataSource = [ { label: 'option1', value: 'option1' }, - { label: 'option2', value: 'option2' }, + { label: 'option2', value: 'option2', disabled: true }, ] const wrapper = CheckboxGroupMount({ props: { dataSource } }) expect(wrapper.findAll('.ix-checkbox').length).toBe(2) + expect(wrapper.findAll('.ix-checkbox-disabled').length).toBe(1) + dataSource = [ { label: 'option1', value: 'option1' }, { label: 'option2', value: 'option2' }, diff --git a/packages/components/checkbox/src/Checkbox.tsx b/packages/components/checkbox/src/Checkbox.tsx index 4ba2a67bf..ee958d943 100644 --- a/packages/components/checkbox/src/Checkbox.tsx +++ b/packages/components/checkbox/src/Checkbox.tsx @@ -106,7 +106,7 @@ const useCheckbox = (props: CheckboxProps, checkboxGroup: CheckboxGroupContext | if (checkboxGroup) { const { props: groupProps, accessor } = checkboxGroup isChecked = computed(() => (accessor.valueRef.value ?? []).includes(props.value ?? props.trueValue)) - isDisabled = computed(() => accessor.disabled.value ?? !!props.disabled) + isDisabled = computed(() => accessor.disabled.value || !!props.disabled) handleBlur = (evt: FocusEvent) => { isFocused.value = false diff --git a/packages/components/radio/__tests__/radioGroup.spec.ts b/packages/components/radio/__tests__/radioGroup.spec.ts index 27a27682e..b8ab47266 100644 --- a/packages/components/radio/__tests__/radioGroup.spec.ts +++ b/packages/components/radio/__tests__/radioGroup.spec.ts @@ -98,11 +98,13 @@ describe('RadioGroup', () => { test('dataSource work', async () => { let dataSource = [ - { label: 'Beijing', value: 'a' }, + { label: 'Beijing', value: 'a', disabled: true }, { label: 'Shanghai', value: 'b' }, ] const wrapper = RadioGroupMount({ props: { dataSource } }) + expect(wrapper.findAll('.ix-radio-disabled').length).toBe(1) + expect(wrapper.findAll('.ix-radio').length).toBe(2) dataSource = [ diff --git a/packages/components/radio/src/Radio.tsx b/packages/components/radio/src/Radio.tsx index d4e360fe0..c463638fb 100644 --- a/packages/components/radio/src/Radio.tsx +++ b/packages/components/radio/src/Radio.tsx @@ -115,7 +115,7 @@ const useRadio = ( if (radioGroup) { const { accessor, props: groupProps } = radioGroup isChecked = computed(() => accessor.valueRef.value === props.value) - isDisabled = computed(() => props.disabled ?? accessor.disabled.value) + isDisabled = computed(() => accessor.disabled.value || !!props.disabled) handleBlur = (evt: FocusEvent) => { isFocused.value = false callEmit(props.onBlur, evt)