mirror of
https://github.com/ant-design/ant-design.git
synced 2025-06-07 17:44:35 +08:00

* feat: Select filled style * chore: update snapshot * feat: Cascader and TreeSelect support variant * feat: multiple style * fix: import * chore: fix lint * chore: update auto-complete docs * fix: clearIcon bg * chore: code clean
25 lines
656 B
TypeScript
25 lines
656 B
TypeScript
type DefaultVariant = 'outlined' | 'borderless';
|
|
|
|
/**
|
|
* Compatible for legacy `bordered` prop.
|
|
*/
|
|
const useVariant = <T extends string>(
|
|
variant: T | undefined,
|
|
legacyBordered: boolean | undefined,
|
|
variants: readonly (T | DefaultVariant)[],
|
|
): [T | DefaultVariant, boolean] => {
|
|
let mergedVariant: T | DefaultVariant;
|
|
if (typeof variant !== 'undefined') {
|
|
mergedVariant = variant;
|
|
} else if (legacyBordered === false) {
|
|
mergedVariant = 'borderless';
|
|
} else {
|
|
mergedVariant = 'outlined';
|
|
}
|
|
|
|
const enableVariantCls = variants.includes(mergedVariant);
|
|
return [mergedVariant, enableVariantCls];
|
|
};
|
|
|
|
export default useVariant;
|