UNPKG

5.17 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _extends2 = require('babel-runtime/helpers/extends');
6
7var _extends3 = _interopRequireDefault(_extends2);
8
9var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
10
11var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12
13var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
14
15var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16
17var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
18
19var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20
21var _inherits2 = require('babel-runtime/helpers/inherits');
22
23var _inherits3 = _interopRequireDefault(_inherits2);
24
25exports.default = Base;
26
27var _react = require('react');
28
29var _react2 = _interopRequireDefault(_react);
30
31var _classnames2 = require('classnames');
32
33var _classnames3 = _interopRequireDefault(_classnames2);
34
35var _propTypes = require('prop-types');
36
37var _propTypes2 = _interopRequireDefault(_propTypes);
38
39var _configProvider = require('../config-provider');
40
41var _configProvider2 = _interopRequireDefault(_configProvider);
42
43function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
44
45function Base(props) {
46 var _class, _temp;
47
48 var componentName = props.componentName;
49 var Shell = (_temp = _class = function (_Component) {
50 (0, _inherits3.default)(Shell, _Component);
51
52 function Shell() {
53 (0, _classCallCheck3.default)(this, Shell);
54 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
55 }
56
57 Shell.prototype.getChildContext = function getChildContext() {
58 var collapse = this.props.collapse;
59
60
61 return {
62 isCollapse: collapse
63 };
64 };
65
66 Shell.prototype.render = function render() {
67 var _classnames;
68
69 var _props = this.props,
70 prefix = _props.prefix,
71 className = _props.className,
72 miniable = _props.miniable,
73 device = _props.device,
74 direction = _props.direction,
75 children = _props.children,
76 collapse = _props.collapse,
77 triggerProps = _props.triggerProps,
78 onCollapseChange = _props.onCollapseChange,
79 component = _props.component,
80 align = _props.align,
81 fixed = _props.fixed,
82 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'miniable', 'device', 'direction', 'children', 'collapse', 'triggerProps', 'onCollapseChange', 'component', 'align', 'fixed']);
83
84
85 var Tag = component;
86
87 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'shell-' + componentName.toLowerCase()] = true, _classnames[prefix + 'shell-collapse'] = !!collapse, _classnames[prefix + 'shell-mini'] = miniable, _classnames[prefix + 'shell-nav-' + align] = componentName === 'Navigation' && direction === 'hoz' && align, _classnames[className] = !!className, _classnames));
88
89 var newChildren = children;
90 if (componentName === 'Content') {
91 newChildren = _react2.default.createElement(
92 'div',
93 { className: prefix + 'shell-content-inner' },
94 children
95 );
96 }
97
98 if (componentName === 'Page') {
99 return children;
100 }
101
102 return _react2.default.createElement(
103 Tag,
104 (0, _extends3.default)({ className: cls }, others),
105 newChildren
106 );
107 };
108
109 return Shell;
110 }(_react.Component), _class.displayName = componentName, _class._typeMark = 'Shell_' + componentName, _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
111 prefix: _propTypes2.default.string,
112 collapse: _propTypes2.default.bool,
113 miniable: _propTypes2.default.bool,
114 component: _propTypes2.default.string,
115 trigger: _propTypes2.default.node,
116 triggerProps: _propTypes2.default.object,
117 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
118 align: _propTypes2.default.oneOf(['left', 'right', 'center']),
119 /**
120 * 弹层显示或隐藏时触发的回调函数
121 * @param {Boolean} collapse 弹层是否显示
122 */
123 onCollapseChange: _propTypes2.default.func,
124 /**
125 * 是否固定,仅对 Shell.Navigation Shell.ToolDock 生效,且需要在在 Shell fixedHeader时生效
126 */
127 fixed: _propTypes2.default.bool
128 }), _class.defaultProps = {
129 prefix: 'next-',
130 component: 'div',
131 onCollapseChange: function onCollapseChange() {},
132 fixed: false
133 }, _class.childContextTypes = {
134 isCollapse: _propTypes2.default.bool
135 }, _temp);
136 Shell.displayName = 'Shell';
137
138
139 return _configProvider2.default.config(Shell);
140}
141module.exports = exports['default'];
\No newline at end of file