From 378fbc88c35a7c5bbc3d1bbcf7b4cb46432b484a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=B9=A4=E4=BB=99?= Date: Thu, 5 Mar 2026 14:22:48 +0800 Subject: [PATCH 1/2] feat: enhance allowClear prop to support disabled --- src/BaseInput.tsx | 6 +++++- src/interface.ts | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/BaseInput.tsx b/src/BaseInput.tsx index c8c6176..6147aec 100644 --- a/src/BaseInput.tsx +++ b/src/BaseInput.tsx @@ -74,7 +74,11 @@ const BaseInput = React.forwardRef((props, ref) => { // ================== Clear Icon ================== // let clearIcon: ReactNode = null; if (allowClear) { - const needClear = !disabled && !readOnly && value; + const needClear = + !disabled && + !readOnly && + value && + (allowClear === true || !allowClear.disabled); const clearIconCls = `${prefixCls}-clear-icon`; const iconNode = typeof allowClear === 'object' && allowClear?.clearIcon diff --git a/src/interface.ts b/src/interface.ts index 58a3d9c..1b142dc 100644 --- a/src/interface.ts +++ b/src/interface.ts @@ -33,7 +33,7 @@ export interface CommonInputProps { prefix?: CSSProperties; suffix?: CSSProperties; }; - allowClear?: boolean | { clearIcon?: ReactNode }; + allowClear?: boolean | { disabled?: boolean; clearIcon?: ReactNode }; } type DataAttr = Record<`data-${string}`, string>; @@ -86,7 +86,8 @@ export interface CountConfig { } export interface InputProps - extends CommonInputProps, + extends + CommonInputProps, Omit< InputHTMLAttributes, 'size' | 'prefix' | 'type' | 'value' From 41734989dbff492aec86930863e34a24fca97d72 Mon Sep 17 00:00:00 2001 From: Guo Yunhe Date: Thu, 5 Mar 2026 14:31:03 +0800 Subject: [PATCH 2/2] Update src/BaseInput.tsx Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- src/BaseInput.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BaseInput.tsx b/src/BaseInput.tsx index 6147aec..3bca08b 100644 --- a/src/BaseInput.tsx +++ b/src/BaseInput.tsx @@ -78,7 +78,7 @@ const BaseInput = React.forwardRef((props, ref) => { !disabled && !readOnly && value && - (allowClear === true || !allowClear.disabled); + !(typeof allowClear === 'object' && allowClear.disabled); const clearIconCls = `${prefixCls}-clear-icon`; const iconNode = typeof allowClear === 'object' && allowClear?.clearIcon