Skip to content

Commit c1ed77f

Browse files
committed
feat: number add compactSize & disabledContext
1 parent df6a1fd commit c1ed77f

File tree

1 file changed

+25
-12
lines changed

1 file changed

+25
-12
lines changed

components/input-number/index.tsx

+25-12
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import { booleanType, stringType } from '../_util/type';
2121

2222
// CSSINJS
2323
import useStyle from './style';
24+
import { NoCompactStyle, useCompactItemContext } from '../space/Compact';
25+
import { useInjectDisabled } from '../config-provider/DisabledContext';
2426

2527
const baseProps = baseInputNumberProps();
2628
export const inputNumberProps = () => ({
@@ -52,11 +54,14 @@ const InputNumber = defineComponent({
5254
const formItemContext = useInjectFormItemContext();
5355
const formItemInputContext = FormItemInputContext.useInject();
5456
const mergedStatus = computed(() => getMergedStatus(formItemInputContext.status, props.status));
55-
const { prefixCls, size, direction } = useConfigInject('input-number', props);
56-
57+
const { prefixCls, size, direction, disabled } = useConfigInject('input-number', props);
58+
const { compactSize, compactItemClassnames } = useCompactItemContext(prefixCls, direction);
5759
// Style
5860
const [wrapSSR, hashId] = useStyle(prefixCls);
5961

62+
const mergedSize = computed(() => compactSize.value || size.value);
63+
const disabledContext = useInjectDisabled();
64+
const mergedDisabled = computed(() => disabled.value ?? disabledContext.value);
6065
const mergedValue = ref(props.value === undefined ? props.defaultValue : props.value);
6166
const focused = ref(false);
6267
watch(
@@ -109,18 +114,18 @@ const InputNumber = defineComponent({
109114

110115
const preCls = prefixCls.value;
111116

112-
const mergeSize = size.value;
113117
const inputNumberClass = classNames(
114118
{
115-
[`${preCls}-lg`]: mergeSize === 'large',
116-
[`${preCls}-sm`]: mergeSize === 'small',
119+
[`${preCls}-lg`]: mergedSize.value === 'large',
120+
[`${preCls}-sm`]: mergedSize.value === 'small',
117121
[`${preCls}-rtl`]: direction.value === 'rtl',
118122
[`${preCls}-readonly`]: readonly,
119123
[`${preCls}-borderless`]: !bordered,
120124
[`${preCls}-in-form-item`]: isFormItemInput,
121125
},
122126
getStatusClassNames(preCls, mergedStatus.value),
123127
className,
128+
compactItemClassnames.value,
124129
hashId.value,
125130
);
126131

@@ -154,9 +159,9 @@ const InputNumber = defineComponent({
154159
getStatusClassNames(`${preCls}-affix-wrapper`, mergedStatus.value, hasFeedback),
155160
{
156161
[`${preCls}-affix-wrapper-focused`]: focused.value,
157-
[`${preCls}-affix-wrapper-disabled`]: props.disabled,
158-
[`${preCls}-affix-wrapper-sm`]: size.value === 'small',
159-
[`${preCls}-affix-wrapper-lg`]: size.value === 'large',
162+
[`${preCls}-affix-wrapper-disabled`]: mergedDisabled.value,
163+
[`${preCls}-affix-wrapper-sm`]: mergedSize.value === 'small',
164+
[`${preCls}-affix-wrapper-lg`]: mergedSize.value === 'large',
160165
[`${preCls}-affix-wrapper-rtl`]: direction.value === 'rtl',
161166
[`${preCls}-affix-wrapper-readonly`]: readonly,
162167
[`${preCls}-affix-wrapper-borderless`]: !bordered,
@@ -198,8 +203,8 @@ const InputNumber = defineComponent({
198203
const mergedGroupClassName = classNames(
199204
`${preCls}-group-wrapper`,
200205
{
201-
[`${preCls}-group-wrapper-sm`]: mergeSize === 'small',
202-
[`${preCls}-group-wrapper-lg`]: mergeSize === 'large',
206+
[`${preCls}-group-wrapper-sm`]: mergedSize.value === 'small',
207+
[`${preCls}-group-wrapper-lg`]: mergedSize.value === 'large',
203208
[`${preCls}-group-wrapper-rtl`]: direction.value === 'rtl',
204209
},
205210
getStatusClassNames(`${prefixCls}-group-wrapper`, mergedStatus.value, hasFeedback),
@@ -209,9 +214,17 @@ const InputNumber = defineComponent({
209214
element = (
210215
<div class={mergedGroupClassName} style={style}>
211216
<div class={mergedWrapperClassName}>
212-
{addonBeforeNode && <NoFormStatus>{addonBeforeNode}</NoFormStatus>}
217+
{addonBeforeNode && (
218+
<NoCompactStyle>
219+
<NoFormStatus>{addonBeforeNode}</NoFormStatus>
220+
</NoCompactStyle>
221+
)}
213222
{element}
214-
{addonAfterNode && <NoFormStatus>{addonAfterNode}</NoFormStatus>}
223+
{addonAfterNode && (
224+
<NoCompactStyle>
225+
<NoFormStatus>{addonAfterNode}</NoFormStatus>
226+
</NoCompactStyle>
227+
)}
215228
</div>
216229
</div>
217230
);

0 commit comments

Comments
 (0)