1
This commit is contained in:
+24
@@ -0,0 +1,24 @@
|
||||
import { useMemo } from 'react';
|
||||
export const useAllowClear = (prefixCls, displayValues, allowClear, clearIcon, disabled = false, mergedSearchValue, mode) => {
|
||||
// Convert boolean to object first
|
||||
const allowClearConfig = useMemo(() => {
|
||||
if (typeof allowClear === 'boolean') {
|
||||
return {
|
||||
allowClear
|
||||
};
|
||||
}
|
||||
if (allowClear && typeof allowClear === 'object') {
|
||||
return allowClear;
|
||||
}
|
||||
return {
|
||||
allowClear: false
|
||||
};
|
||||
}, [allowClear]);
|
||||
return useMemo(() => {
|
||||
const mergedAllowClear = !disabled && allowClearConfig.allowClear !== false && (displayValues.length || mergedSearchValue) && !(mode === 'combobox' && mergedSearchValue === '');
|
||||
return {
|
||||
allowClear: mergedAllowClear,
|
||||
clearIcon: mergedAllowClear ? allowClearConfig.clearIcon || clearIcon || '×' : null
|
||||
};
|
||||
}, [allowClearConfig, clearIcon, disabled, displayValues.length, mergedSearchValue, mode]);
|
||||
};
|
||||
Reference in New Issue
Block a user