Skip to content

Commit e2761f6

Browse files
authored
Merge pull request #277 from react-component/refactor
refactor: Rewrite of Drawer
2 parents 133fd21 + 1487051 commit e2761f6

37 files changed

+1433
-2223
lines changed

assets/index.less

Lines changed: 259 additions & 206 deletions
Large diffs are not rendered by default.

docs/demo/forceRender.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## Force Render
2+
3+
<code src="../examples/forceRender.tsx">

docs/demo/getContainer.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
## getContainer
22

33
<code src="../examples/getContainer.tsx">
4+
<code src="../examples/getContainer-false.tsx">

docs/demo/level.md

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

docs/demo/openRenderDom.md

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

docs/demo/simple.md

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

docs/examples/assets/motion.less

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
@duration: 0.3s;
2+
3+
.mask-motion {
4+
&-enter,
5+
&-appear,
6+
&-leave {
7+
&-active {
8+
transition: all @duration;
9+
}
10+
}
11+
12+
&-enter,
13+
&-appear {
14+
opacity: 0;
15+
16+
&-active {
17+
opacity: 1;
18+
}
19+
}
20+
21+
&-leave {
22+
opacity: 1;
23+
24+
&-active {
25+
opacity: 0;
26+
}
27+
}
28+
}
29+
30+
.panel-motion() {
31+
&-enter,
32+
&-appear,
33+
&-leave {
34+
&-active {
35+
transition: all @duration;
36+
}
37+
}
38+
}
39+
40+
.panel-motion {
41+
&-left {
42+
.panel-motion();
43+
44+
&-enter,
45+
&-appear {
46+
transform: translateX(-100%);
47+
48+
&-active {
49+
transform: translateX(0);
50+
}
51+
}
52+
53+
&-leave {
54+
transform: translateX(0);
55+
56+
&-active {
57+
transform: translateX(-100%);
58+
}
59+
}
60+
}
61+
62+
&-right {
63+
.panel-motion();
64+
65+
&-enter,
66+
&-appear {
67+
transform: translateX(100%);
68+
69+
&-active {
70+
transform: translateX(0);
71+
}
72+
}
73+
74+
&-leave {
75+
transform: translateX(0);
76+
77+
&-active {
78+
transform: translateX(100%);
79+
}
80+
}
81+
}
82+
}

docs/examples/base.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* eslint-disable @typescript-eslint/no-unused-vars */
22
import React, { useState } from 'react';
33
import Drawer from 'rc-drawer';
4+
import motionProps from './motion';
45

56
const Demo = () => {
67
const [open, setOpen] = useState(false);
@@ -22,11 +23,13 @@ const Demo = () => {
2223
onClose={onTouchEnd}
2324
handler={false}
2425
level={null}
25-
afterVisibleChange={(c: boolean) => {
26-
// console.log('transitionEnd: ', c);
26+
afterOpenChange={(c: boolean) => {
27+
console.log('transitionEnd: ', c);
2728
}}
2829
placement="right"
2930
width={400}
31+
// Motion
32+
{...motionProps}
3033
>
3134
content
3235
</Drawer>

docs/examples/change-remove.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
import { AppstoreOutlined, MailOutlined, SettingOutlined } from '@ant-design/icons';
1+
import {
2+
AppstoreOutlined,
3+
MailOutlined,
4+
SettingOutlined,
5+
} from '@ant-design/icons';
26
import { Menu } from 'antd';
37
import * as React from 'react';
48

59
import Drawer from 'rc-drawer';
610

711
import '../../assets/index.less';
812
import './assets/index.less';
13+
import motionProps from './motion';
914

1015
const SubMenu = Menu.SubMenu;
1116
const MenuItemGroup = Menu.ItemGroup;
@@ -24,7 +29,12 @@ class Demo extends React.Component<any, { show: boolean }> {
2429
return (
2530
<div>
2631
{this.state.show && (
27-
<Drawer wrapperClassName="drawer-wrapper" width="20vw">
32+
<Drawer
33+
wrapperClassName="drawer-wrapper"
34+
width="20vw"
35+
open
36+
{...motionProps}
37+
>
2838
<Menu
2939
defaultSelectedKeys={['1']}
3040
defaultOpenKeys={['sub1']}

docs/examples/change.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
import { AppstoreOutlined, MailOutlined, SettingOutlined } from '@ant-design/icons';
1+
import {
2+
AppstoreOutlined,
3+
MailOutlined,
4+
SettingOutlined,
5+
} from '@ant-design/icons';
26
import { Menu } from 'antd';
37
import * as React from 'react';
48

@@ -9,6 +13,7 @@ import 'antd/lib/style';
913

1014
import '../../assets/index.less';
1115
import './assets/index.less';
16+
import motionProps from './motion';
1217

1318
const SubMenu = Menu.SubMenu;
1419
const MenuItemGroup = Menu.ItemGroup;
@@ -49,6 +54,8 @@ class Demo extends React.Component {
4954
console.log('transitionEnd: ', c);
5055
}}
5156
width="20vw"
57+
// Motion
58+
{...motionProps}
5259
>
5360
<Menu
5461
defaultSelectedKeys={['1']}

0 commit comments

Comments
 (0)