1- import classNames from 'classnames' ;
1+ import clsx from 'classnames' ;
22import type { FC , ReactElement } from 'react' ;
33import React , { cloneElement , useRef } from 'react' ;
44import type { BaseInputProps } from './interface' ;
@@ -14,9 +14,6 @@ const BaseInput: FC<BaseInputProps> = (props) => {
1414 addonAfter,
1515 className,
1616 style,
17- affixWrapperClassName,
18- groupClassName,
19- wrapperClassName,
2017 disabled,
2118 readOnly,
2219 focused,
@@ -25,9 +22,10 @@ const BaseInput: FC<BaseInputProps> = (props) => {
2522 value,
2623 handleReset,
2724 hidden,
28- inputStyle,
2925 classes,
26+ classNames,
3027 dataAttrs,
28+ styles,
3129 } = props ;
3230
3331 const containerRef = useRef < HTMLSpanElement > ( null ) ;
@@ -56,7 +54,7 @@ const BaseInput: FC<BaseInputProps> = (props) => {
5654 // Do not trigger onBlur when clear input
5755 // https://github.com/ant-design/ant-design/issues/31200
5856 onMouseDown = { ( e ) => e . preventDefault ( ) }
59- className = { classNames ( clearIconCls , {
57+ className = { clsx ( clearIconCls , {
6058 [ `${ clearIconCls } -hidden` ] : ! needClear ,
6159 [ `${ clearIconCls } -has-suffix` ] : ! ! suffix ,
6260 } ) }
@@ -72,20 +70,19 @@ const BaseInput: FC<BaseInputProps> = (props) => {
7270 value,
7371 hidden,
7472 className :
75- classNames (
73+ clsx (
7674 inputElement . props ?. className ,
7775 ! hasPrefixSuffix ( props ) && ! hasAddon ( props ) && className ,
7876 ) || null ,
7977 style : {
8078 ...inputElement . props ?. style ,
81- ...inputStyle ,
8279 } ,
8380 } ) ;
8481
8582 // ================== Prefix & Suffix ================== //
8683 if ( hasPrefixSuffix ( props ) ) {
8784 const affixWrapperPrefixCls = `${ prefixCls } -affix-wrapper` ;
88- const affixWrapperCls = classNames (
85+ const affixWrapperCls = clsx (
8986 affixWrapperPrefixCls ,
9087 {
9188 [ `${ affixWrapperPrefixCls } -disabled` ] : disabled ,
@@ -95,12 +92,14 @@ const BaseInput: FC<BaseInputProps> = (props) => {
9592 suffix && allowClear && value ,
9693 } ,
9794 ! hasAddon ( props ) && className ,
98- affixWrapperClassName ,
9995 classes ?. affixWrapper ,
10096 ) ;
10197
10298 const suffixNode = ( suffix || allowClear ) && (
103- < span className = { `${ prefixCls } -suffix` } >
99+ < span
100+ className = { clsx ( `${ prefixCls } -suffix` , classNames ?. suffix ) }
101+ style = { styles ?. suffix }
102+ >
104103 { getClearIcon ( ) }
105104 { suffix }
106105 </ span >
@@ -115,9 +114,15 @@ const BaseInput: FC<BaseInputProps> = (props) => {
115114 { ...dataAttrs ?. affixWrapper }
116115 ref = { containerRef }
117116 >
118- { prefix && < span className = { `${ prefixCls } -prefix` } > { prefix } </ span > }
117+ { prefix && (
118+ < span
119+ className = { clsx ( `${ prefixCls } -prefix` , classNames ?. prefix ) }
120+ style = { styles ?. prefix }
121+ >
122+ { prefix }
123+ </ span >
124+ ) }
119125 { cloneElement ( inputElement , {
120- style : inputStyle ?? null ,
121126 value,
122127 hidden : null ,
123128 } ) }
@@ -131,17 +136,15 @@ const BaseInput: FC<BaseInputProps> = (props) => {
131136 const wrapperCls = `${ prefixCls } -group` ;
132137 const addonCls = `${ wrapperCls } -addon` ;
133138
134- const mergedWrapperClassName = classNames (
139+ const mergedWrapperClassName = clsx (
135140 `${ prefixCls } -wrapper` ,
136141 wrapperCls ,
137- wrapperClassName ,
138142 classes ?. wrapper ,
139143 ) ;
140144
141- const mergedGroupClassName = classNames (
145+ const mergedGroupClassName = clsx (
142146 `${ prefixCls } -group-wrapper` ,
143147 className ,
144- groupClassName ,
145148 classes ?. group ,
146149 ) ;
147150
@@ -152,7 +155,6 @@ const BaseInput: FC<BaseInputProps> = (props) => {
152155 < span className = { mergedWrapperClassName } >
153156 { addonBefore && < span className = { addonCls } > { addonBefore } </ span > }
154157 { cloneElement ( element , {
155- style : inputStyle ?? null ,
156158 hidden : null ,
157159 } ) }
158160 { addonAfter && < span className = { addonCls } > { addonAfter } </ span > }
0 commit comments