UNPKG

5.8 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports.default = void 0;
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
16var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
18var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
20var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
22var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
23
24var _PortalWrapper = _interopRequireDefault(require("rc-util/lib/PortalWrapper"));
25
26var React = _interopRequireWildcard(require("react"));
27
28var _DrawerChild = _interopRequireDefault(require("./DrawerChild"));
29
30var _excluded = ["defaultOpen", "getContainer", "wrapperClassName", "forceRender", "handler"],
31 _excluded2 = ["visible", "afterClose"];
32
33var DrawerWrapper = /*#__PURE__*/function (_React$Component) {
34 (0, _inherits2.default)(DrawerWrapper, _React$Component);
35
36 var _super = (0, _createSuper2.default)(DrawerWrapper);
37
38 function DrawerWrapper(props) {
39 var _this;
40
41 (0, _classCallCheck2.default)(this, DrawerWrapper);
42 _this = _super.call(this, props);
43 _this.dom = void 0;
44
45 _this.onHandleClick = function (e) {
46 var _this$props = _this.props,
47 onHandleClick = _this$props.onHandleClick,
48 $open = _this$props.open;
49
50 if (onHandleClick) {
51 onHandleClick(e);
52 }
53
54 if (typeof $open === 'undefined') {
55 var open = _this.state.open;
56
57 _this.setState({
58 open: !open
59 });
60 }
61 };
62
63 _this.onClose = function (e) {
64 var _this$props2 = _this.props,
65 onClose = _this$props2.onClose,
66 open = _this$props2.open;
67
68 if (onClose) {
69 onClose(e);
70 }
71
72 if (typeof open === 'undefined') {
73 _this.setState({
74 open: false
75 });
76 }
77 };
78
79 var _open = typeof props.open !== 'undefined' ? props.open : !!props.defaultOpen;
80
81 _this.state = {
82 open: _open
83 };
84
85 if ('onMaskClick' in props) {
86 console.warn('`onMaskClick` are removed, please use `onClose` instead.');
87 }
88
89 return _this;
90 }
91
92 (0, _createClass2.default)(DrawerWrapper, [{
93 key: "render",
94 value: // tslint:disable-next-line:member-ordering
95 function render() {
96 var _this2 = this;
97
98 var _this$props3 = this.props,
99 defaultOpen = _this$props3.defaultOpen,
100 getContainer = _this$props3.getContainer,
101 wrapperClassName = _this$props3.wrapperClassName,
102 forceRender = _this$props3.forceRender,
103 handler = _this$props3.handler,
104 props = (0, _objectWithoutProperties2.default)(_this$props3, _excluded);
105 var open = this.state.open; // 渲染在当前 dom 里;
106
107 if (!getContainer) {
108 return /*#__PURE__*/React.createElement("div", {
109 className: wrapperClassName,
110 ref: function ref(c) {
111 _this2.dom = c;
112 }
113 }, /*#__PURE__*/React.createElement(_DrawerChild.default, (0, _extends2.default)({}, props, {
114 open: open,
115 handler: handler,
116 getContainer: function getContainer() {
117 return _this2.dom;
118 },
119 onClose: this.onClose,
120 onHandleClick: this.onHandleClick
121 })));
122 } // 如果有 handler 为内置强制渲染;
123
124
125 var $forceRender = !!handler || forceRender;
126 return /*#__PURE__*/React.createElement(_PortalWrapper.default, {
127 visible: open,
128 forceRender: $forceRender,
129 getContainer: getContainer,
130 wrapperClassName: wrapperClassName
131 }, function (_ref) {
132 var visible = _ref.visible,
133 afterClose = _ref.afterClose,
134 rest = (0, _objectWithoutProperties2.default)(_ref, _excluded2);
135 return (
136 /*#__PURE__*/
137 // react 15,componentWillUnmount 时 Portal 返回 afterClose, visible.
138 React.createElement(_DrawerChild.default, (0, _extends2.default)({}, props, rest, {
139 open: visible !== undefined ? visible : open,
140 afterVisibleChange: afterClose !== undefined ? afterClose : props.afterVisibleChange,
141 handler: handler,
142 onClose: _this2.onClose,
143 onHandleClick: _this2.onHandleClick
144 }))
145 );
146 });
147 }
148 }], [{
149 key: "getDerivedStateFromProps",
150 value: function getDerivedStateFromProps(props, _ref2) {
151 var prevProps = _ref2.prevProps;
152 var newState = {
153 prevProps: props
154 };
155
156 if (typeof prevProps !== 'undefined' && props.open !== prevProps.open) {
157 newState.open = props.open;
158 }
159
160 return newState;
161 }
162 }]);
163 return DrawerWrapper;
164}(React.Component);
165
166DrawerWrapper.defaultProps = {
167 prefixCls: 'drawer',
168 placement: 'left',
169 getContainer: 'body',
170 defaultOpen: false,
171 level: 'all',
172 duration: '.3s',
173 ease: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',
174 onChange: function onChange() {},
175 afterVisibleChange: function afterVisibleChange() {},
176 handler: /*#__PURE__*/React.createElement("div", {
177 className: "drawer-handle"
178 }, /*#__PURE__*/React.createElement("i", {
179 className: "drawer-handle-icon"
180 })),
181 showMask: true,
182 maskClosable: true,
183 maskStyle: {},
184 wrapperClassName: '',
185 className: '',
186 keyboard: true,
187 forceRender: false,
188 autoFocus: true
189};
190var _default = DrawerWrapper;
191exports.default = _default;
\No newline at end of file