Skip to content

Commit 86a9046

Browse files
committed
perf: update transition
1 parent b6e1284 commit 86a9046

File tree

16 files changed

+88
-93
lines changed

16 files changed

+88
-93
lines changed

components/_util/getTransitionGroupProps.js

Lines changed: 0 additions & 21 deletions
This file was deleted.

components/_util/getTransitionProps.js

Lines changed: 0 additions & 21 deletions
This file was deleted.

components/_util/transition.tsx

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import { defineComponent, Fragment, Transition as T, TransitionGroup as TG } from 'vue';
2+
3+
export const getTransitionProps = (transitionName: string, opt: object = {}) => {
4+
const transitionProps = transitionName
5+
? {
6+
appear: true,
7+
appearFromClass: `${transitionName}-appear ${transitionName}-appear-prepare`,
8+
// appearActiveClass: `antdv-base-transtion`,
9+
appearToClass: `${transitionName}-appear ${transitionName}-appear-active`,
10+
enterFromClass: `${transitionName}-enter ${transitionName}-enter-prepare`,
11+
// enterActiveClass: `antdv-base-transtion`,
12+
enterToClass: `${transitionName}-enter ${transitionName}-enter-active`,
13+
leaveFromClass: ` ${transitionName}-leave`,
14+
leaveActiveClass: `${transitionName}-leave ${transitionName}-leave-active`,
15+
leaveToClass: `${transitionName}-leave ${transitionName}-leave-active`,
16+
...opt,
17+
}
18+
: { css: false, ...opt };
19+
return transitionProps;
20+
};
21+
22+
export const getTransitionGroupProps = (transitionName: string, opt: object = {}) => {
23+
const transitionProps = transitionName
24+
? {
25+
appear: true,
26+
appearFromClass: `${transitionName}-appear ${transitionName}-appear-prepare`,
27+
appearActiveClass: `${transitionName}`,
28+
appearToClass: `${transitionName}-appear ${transitionName}-appear-active`,
29+
enterFromClass: `${transitionName}-appear ${transitionName}-enter ${transitionName}-appear-prepare ${transitionName}-enter-prepare`,
30+
enterActiveClass: `${transitionName}`,
31+
enterToClass: `${transitionName}-enter ${transitionName}-appear ${transitionName}-appear-active ${transitionName}-enter-active`,
32+
leaveActiveClass: `${transitionName} ${transitionName}-leave`,
33+
leaveToClass: `${transitionName}-leave-active`,
34+
...opt,
35+
}
36+
: { css: false, ...opt };
37+
return transitionProps;
38+
};
39+
40+
let Transition = T;
41+
let TransitionGroup = TG;
42+
43+
if (process.env.NODE_ENV === 'test') {
44+
Transition = (_, { slots }) => {
45+
return slots.default?.();
46+
};
47+
TransitionGroup = defineComponent({
48+
props: ['tag', 'class'],
49+
setup(props, { slots }) {
50+
const { tag: Tag = Fragment, ...rest } = props;
51+
return () => {
52+
return <Tag {...rest}>{slots.default?.()}</Tag>;
53+
};
54+
},
55+
});
56+
}
57+
58+
export { Transition, TransitionGroup };
59+
60+
export default Transition;

components/alert/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Transition, inject, cloneVNode, defineComponent, App } from 'vue';
1+
import { inject, cloneVNode, defineComponent, App } from 'vue';
22
import CloseOutlined from '@ant-design/icons-vue/CloseOutlined';
33
import CheckCircleOutlined from '@ant-design/icons-vue/CheckCircleOutlined';
44
import ExclamationCircleOutlined from '@ant-design/icons-vue/ExclamationCircleOutlined';
@@ -11,7 +11,7 @@ import CloseCircleFilled from '@ant-design/icons-vue/CloseCircleFilled';
1111
import classNames from '../_util/classNames';
1212
import BaseMixin from '../_util/BaseMixin';
1313
import PropTypes from '../_util/vue-types';
14-
import getTransitionProps from '../_util/getTransitionProps';
14+
import { getTransitionProps, Transition } from '../_util/transition';
1515
import { getComponent, isValidElement, findDOMNode } from '../_util/props-util';
1616
import { defaultConfigProvider } from '../config-provider';
1717

components/back-top/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { App, defineComponent, inject, Transition } from 'vue';
1+
import { App, defineComponent, inject } from 'vue';
22
import classNames from '../_util/classNames';
33
import PropTypes from '../_util/vue-types';
44
import backTopTypes from './backTopTypes';
55
import addEventListener from '../vc-util/Dom/addEventListener';
66
import getScroll from '../_util/getScroll';
77
import BaseMixin from '../_util/BaseMixin';
8-
import getTransitionProps from '../_util/getTransitionProps';
8+
import { getTransitionProps, Transition } from '../_util/transition';
99
import { defaultConfigProvider } from '../config-provider';
1010
import scrollTo from '../_util/scrollTo';
1111

components/badge/Badge.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import { PresetColorTypes } from '../_util/colors';
44
import classNames from '../_util/classNames';
55
import { initDefaultProps, getComponent, getSlot } from '../_util/props-util';
66
import { cloneElement } from '../_util/vnode';
7-
import getTransitionProps from '../_util/getTransitionProps';
7+
import { getTransitionProps, Transition } from '../_util/transition';
88
import isNumeric from '../_util/isNumeric';
99
import { defaultConfigProvider } from '../config-provider';
10-
import { inject, Transition, defineComponent, CSSProperties } from 'vue';
10+
import { inject, defineComponent, CSSProperties } from 'vue';
1111
import { tuple } from '../_util/type';
1212

1313
const BadgeProps = {

components/form/FormItem.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { inject, provide, Transition, PropType, defineComponent, computed } from 'vue';
1+
import { inject, provide, PropType, defineComponent, computed } from 'vue';
22
import cloneDeep from 'lodash-es/cloneDeep';
33
import PropTypes from '../_util/vue-types';
44
import classNames from '../_util/classNames';
5-
import getTransitionProps from '../_util/getTransitionProps';
5+
import { getTransitionProps, Transition } from '../_util/transition';
66
import Row from '../grid/Row';
77
import Col from '../grid/Col';
88
import hasProp, {

components/transfer/renderListBody.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { defineComponent, TransitionGroup } from 'vue';
1+
import { defineComponent } from 'vue';
22
import raf from '../_util/raf';
33
import ListItem from './ListItem';
44
import PropTypes, { withUndefined } from '../_util/vue-types';
55
import { findDOMNode } from '../_util/props-util';
6-
import getTransitionGroupProps from '../_util/getTransitionGroupProps';
6+
import { getTransitionGroupProps, TransitionGroup } from '../_util/transition';
77
const ListBody = defineComponent({
88
name: 'ListBody',
99
inheritAttrs: false,
@@ -105,11 +105,7 @@ const ListBody = defineComponent({
105105
onScroll: this.handleScroll,
106106
},
107107
);
108-
return (
109-
<TransitionGroup {...transitionProps}>
110-
{items}
111-
</TransitionGroup>
112-
);
108+
return <TransitionGroup {...transitionProps}>{items}</TransitionGroup>;
113109
},
114110
});
115111

components/upload/UploadList.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
import { defineComponent, inject, Transition, TransitionGroup, CSSProperties } from 'vue';
1+
import { defineComponent, inject, CSSProperties } from 'vue';
22
import BaseMixin from '../_util/BaseMixin';
33
import { getOptionProps, initDefaultProps } from '../_util/props-util';
4-
import getTransitionProps from '../_util/getTransitionProps';
4+
import {
5+
getTransitionProps,
6+
Transition,
7+
getTransitionGroupProps,
8+
TransitionGroup,
9+
} from '../_util/transition';
510
import { defaultConfigProvider } from '../config-provider';
611
import { previewImage, isImageUrl } from './utils';
712
import LoadingOutlined from '@ant-design/icons-vue/LoadingOutlined';
@@ -15,7 +20,6 @@ import Tooltip from '../tooltip';
1520
import Progress from '../progress';
1621
import classNames from '../_util/classNames';
1722
import { UploadListProps } from './interface';
18-
import getTransitionGroupProps from '../_util/getTransitionGroupProps';
1923

2024
export default defineComponent({
2125
name: 'AUploadList',

components/vc-dialog/Dialog.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { defineComponent, provide, Transition } from 'vue';
1+
import { defineComponent, provide } from 'vue';
22
import { initDefaultProps, getSlot, findDOMNode } from '../_util/props-util';
33
import KeyCode from '../_util/KeyCode';
44
import contains from '../vc-util/Dom/contains';
55
import LazyRenderBox from './LazyRenderBox';
66
import BaseMixin from '../_util/BaseMixin';
7-
import getTransitionProps from '../_util/getTransitionProps';
7+
import { getTransitionProps, Transition } from '../_util/transition';
88
import switchScrollingEffect from '../_util/switchScrollingEffect';
99
import getDialogPropTypes from './IDialogPropTypes';
1010
const IDialogPropTypes = getDialogPropTypes();

0 commit comments

Comments
 (0)