ant-design/components/tabs/hooks/useAnimateConfig.ts
二货爱吃白萝卜 f7782a05a9
fix: Animated default set (#37642)
* fix: Animated default set

* test: Update test case
2022-09-19 23:37:12 +08:00

47 lines
1021 B
TypeScript

import type { CSSMotionProps } from 'rc-motion';
import type { AnimatedConfig } from 'rc-tabs/lib/interface';
import type { TabsProps } from '..';
import { getTransitionName } from '../../_util/motion';
const motion: CSSMotionProps = {
motionAppear: false,
motionEnter: true,
motionLeave: true,
};
export default function useAnimateConfig(
prefixCls: string,
animated: TabsProps['animated'] = {
inkBar: true,
tabPane: false,
},
): AnimatedConfig {
let mergedAnimated: AnimatedConfig;
if (animated === false) {
mergedAnimated = {
inkBar: false,
tabPane: false,
};
} else if (animated === true) {
mergedAnimated = {
inkBar: true,
tabPane: true,
};
} else {
mergedAnimated = {
inkBar: true,
...(typeof animated === 'object' ? animated : {}),
};
}
if (mergedAnimated.tabPane) {
mergedAnimated.tabPaneMotion = {
...motion,
motionName: getTransitionName(prefixCls, 'switch'),
};
}
return mergedAnimated;
}