Skip to content

Commit a2a580a

Browse files
authored
fix: BaseInput should not pass className to input when has addon (#35)
* fix: BaseInput should not pass className to input when has addon * test: add test case
1 parent 0d56079 commit a2a580a

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/BaseInput.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,11 @@ const BaseInput: FC<BaseInputProps> = (props) => {
148148
<span className={mergedGroupClassName} style={style} hidden={hidden}>
149149
<span className={mergedWrapperClassName}>
150150
{addonBefore && <span className={addonCls}>{addonBefore}</span>}
151-
{cloneElement(element, { style: inputStyle ?? null, hidden: null })}
151+
{cloneElement(inputElement, {
152+
style: inputStyle ?? null,
153+
hidden: null,
154+
value,
155+
})}
152156
{addonAfter && <span className={addonCls}>{addonAfter}</span>}
153157
</span>
154158
</span>

tests/BaseInput.test.tsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,4 +186,21 @@ describe('BaseInput', () => {
186186
expect(container.querySelector('.test-base')).toBeTruthy();
187187
expect(container.querySelector('.test')).toBeTruthy();
188188
});
189+
190+
it('should not pass className to inputElement when has addon', () => {
191+
const { container } = render(
192+
<BaseInput
193+
prefixCls="rc-input"
194+
className="test-base"
195+
addonBefore="addon"
196+
inputElement={<input className="test" />}
197+
/>,
198+
);
199+
expect(
200+
container.querySelector('input')?.classList.contains('test'),
201+
).toBeTruthy();
202+
expect(
203+
container.querySelector('input')?.classList.contains('test-base'),
204+
).toBeFalsy();
205+
});
189206
});

0 commit comments

Comments
 (0)