diff --git a/components/_util/InputAddon.tsx b/components/_util/InputAddon.tsx
new file mode 100644
index 0000000000..39b0447aff
--- /dev/null
+++ b/components/_util/InputAddon.tsx
@@ -0,0 +1,15 @@
+import React from 'react';
+
+import { NoFormStyle } from '../form/context';
+import { NoCompactStyle } from '../space/Compact';
+
+const getInputAddon = (addon: React.ReactNode): React.ReactNode =>
+ addon ? (
+
+
+ {addon}
+
+
+ ) : null;
+
+export default getInputAddon;
diff --git a/components/input-number/index.tsx b/components/input-number/index.tsx
index ac2952f98c..685f1f980a 100644
--- a/components/input-number/index.tsx
+++ b/components/input-number/index.tsx
@@ -5,6 +5,7 @@ import classNames from 'classnames';
import type { InputNumberProps as RcInputNumberProps, ValueType } from 'rc-input-number';
import RcInputNumber from 'rc-input-number';
+import getInputAddon from '../_util/InputAddon';
import type { InputStatus } from '../_util/statusUtils';
import { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';
import { devUseWarning } from '../_util/warning';
@@ -13,10 +14,10 @@ import DisabledContext from '../config-provider/DisabledContext';
import useCSSVarCls from '../config-provider/hooks/useCSSVarCls';
import useSize from '../config-provider/hooks/useSize';
import type { SizeType } from '../config-provider/SizeContext';
-import { FormItemInputContext, NoFormStyle } from '../form/context';
+import { FormItemInputContext } from '../form/context';
import type { Variant } from '../form/hooks/useVariants';
import useVariant from '../form/hooks/useVariants';
-import { NoCompactStyle, useCompactItemContext } from '../space/Compact';
+import { useCompactItemContext } from '../space/Compact';
import useStyle from './style';
export interface InputNumberProps
@@ -124,19 +125,6 @@ const InputNumber = React.forwardRef((props,
);
const wrapperClassName = `${prefixCls}-group`;
- const getAddon = (addon: React.ReactNode): React.ReactNode => {
- if (!addon) {
- return null;
- }
- return (
-
-
- {addon}
-
-
- );
- };
-
const element = (
((props,
controls={controlsTemp}
prefix={prefix}
suffix={suffixNode}
- addonBefore={getAddon(addonBefore)}
- addonAfter={getAddon(addonAfter)}
+ addonBefore={getInputAddon(addonBefore)}
+ addonAfter={getInputAddon(addonAfter)}
classNames={{
input: inputNumberClass,
variant: classNames(
diff --git a/components/input/Input.tsx b/components/input/Input.tsx
index 694b8cf2f3..b196d02b73 100644
--- a/components/input/Input.tsx
+++ b/components/input/Input.tsx
@@ -5,6 +5,7 @@ import RcInput from 'rc-input';
import { composeRef } from 'rc-util/lib/ref';
import getAllowClear from '../_util/getAllowClear';
+import getInputAddon from '../_util/InputAddon';
import type { InputStatus } from '../_util/statusUtils';
import { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';
import { devUseWarning } from '../_util/warning';
@@ -13,10 +14,10 @@ import DisabledContext from '../config-provider/DisabledContext';
import useCSSVarCls from '../config-provider/hooks/useCSSVarCls';
import useSize from '../config-provider/hooks/useSize';
import type { SizeType } from '../config-provider/SizeContext';
-import { FormItemInputContext, NoFormStyle } from '../form/context';
+import { FormItemInputContext } from '../form/context';
import type { Variant } from '../form/hooks/useVariants';
import useVariant from '../form/hooks/useVariants';
-import { NoCompactStyle, useCompactItemContext } from '../space/Compact';
+import { useCompactItemContext } from '../space/Compact';
import useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';
import useStyle from './style';
import { hasPrefixSuffix } from './utils';
@@ -171,15 +172,6 @@ const Input = forwardRef((props, ref) => {
>
);
- const getAddon = (addon: React.ReactNode): React.ReactNode =>
- addon && (
-
-
- {addon}
-
-
- );
-
const mergedAllowClear = getAllowClear(allowClear ?? input?.allowClear);
const [variant, enableVariantCls] = useVariant(customVariant, bordered);
@@ -206,8 +198,8 @@ const Input = forwardRef((props, ref) => {
input?.className,
)}
onChange={handleChange}
- addonBefore={getAddon(addonBefore)}
- addonAfter={getAddon(addonAfter)}
+ addonBefore={getInputAddon(addonBefore)}
+ addonAfter={getInputAddon(addonAfter)}
classNames={{
...classes,
...input?.classNames,