Skip to content

Commit a996fc4

Browse files
committed
feat: radio inject disabled
1 parent bc10741 commit a996fc4

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

src/components/NumberInput.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export default defineComponent({
1212
value: { type: Number, default: 0 },
1313
onChange: Function as PropType<() => void>,
1414
onFocus: Function as PropType<() => void>,
15+
innerClass: { type: String, default: 'min-h-12 cst' },
1516
},
1617
setup(props, { emit }) {
1718
const value = useVModel(props, 'value', emit);
@@ -39,6 +40,6 @@ export default defineComponent({
3940
refresh();
4041
}, { immediate: true });
4142

42-
return () => <TextInput ref={inputRef} v-model:value={wrap.value} type="number" step={props.step} onBlur={commitChange} onEnterPressed={commitChange} onFocus={props.onFocus} />;
43+
return () => <TextInput ref={inputRef} v-model:value={wrap.value} type="number" step={props.step} onBlur={commitChange} onEnterPressed={commitChange} onFocus={props.onFocus} innerClass={props.innerClass} />;
4344
},
4445
});

src/components/Radio/index.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { defineComponent, PropType, useId } from 'vue';
1+
import { computed, defineComponent, inject, PropType, Ref, useId } from 'vue';
22

33
export default defineComponent({
44
props: {
@@ -9,15 +9,17 @@ export default defineComponent({
99
},
1010
setup(props, { emit, slots }) {
1111
const id = useId();
12+
const disabledInject = inject<Ref<boolean>>('disabled');
13+
const disabled = computed(() => props.disabled || disabledInject?.value);
1214

13-
return () => <div class="flex gap-2 items-center">
15+
return () => <div class="flex gap-2 items-center" style={{ opacity: disabled.value ? 0.5 : undefined }}>
1416
<input
1517
type="radio" id={id}
1618
checked={props.value === props.k}
17-
disabled={props.disabled}
19+
disabled={disabled.value}
1820
onClick={(e: Event) => {
1921
e.preventDefault();
20-
if (props.disabled) return;
22+
if (disabled.value) return;
2123
emit('update:value', props.k);
2224
props.onClick?.();
2325
}}

0 commit comments

Comments
 (0)