Files
ant-design/components/tabs/hooks/useAnimateConfig.ts
lijianan 0c5557d1c2 refactor: [v6] use rc-component/resize-observer (#52578)
* refactor: [v6] use rc-component/resize-observer

* chore: mock of ResizeObserver

* test: update snap

* fix: fix

* chore: update dep

* test: back of snapshot

* fix: fix

* chore: update deps

* chore: update

* chore: update @rc-component/motion

---------

Signed-off-by: lijianan <574980606@qq.com>
Co-authored-by: 二货机器人 <smith3816@gmail.com>
2025-02-18 16:01:16 +08:00

48 lines
1.0 KiB
TypeScript

import type { CSSMotionProps } from '@rc-component/motion';
import type { AnimatedConfig } from '@rc-component/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;
}