UNPKG

zrmc

Version:

ZRMC is an ES7 React wrapper for Material Components Web.

156 lines (122 loc) 4.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _objectWithoutProperties2 = require("babel-runtime/helpers/objectWithoutProperties"); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require("babel-runtime/helpers/createClass"); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn"); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require("babel-runtime/helpers/inherits"); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _propTypes = require("prop-types"); var _propTypes2 = _interopRequireDefault(_propTypes); var _ = require("../"); var _2 = _interopRequireDefault(_); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * See: * https://material.io/components/web/catalog/drawers/ * https://material-components-web.appspot.com/drawer/persistent-drawer.html * * TODO: * - temporary, permanent, persistent */ var MDC_DRAWER = "mdc-drawer"; /** * Copyright (c) 2015-present, CWB SAS * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ var Drawer = function (_PureComponent) { (0, _inherits3.default)(Drawer, _PureComponent); function Drawer(props) { (0, _classCallCheck3.default)(this, Drawer); var _this = (0, _possibleConstructorReturn3.default)(this, (Drawer.__proto__ || Object.getPrototypeOf(Drawer)).call(this, props)); _this.onClick = function (event) { if (_this.props.type === "temporary" && _this.props.open && event.target === _this.ref) { event.preventDefault(); _this.props.onClose(); } }; _this.ref = null; return _this; } (0, _createClass3.default)(Drawer, [{ key: "render", value: function render() { var _this2 = this; var _props = this.props, children = _props.children, type = _props.type, open = _props.open, onClose = _props.onClose, above = _props.above, toolbarSpacer = _props.toolbarSpacer, props = (0, _objectWithoutProperties3.default)(_props, ["children", "type", "open", "onClose", "above", "toolbarSpacer"]); var classes = MDC_DRAWER + " mdc-drawer--" + type + " zrmc-drawer"; if (!above && !toolbarSpacer && type === "permanent") { classes += " zrmc-drawer--toolbar"; } var spacer = void 0; if (toolbarSpacer) { spacer = _react2.default.createElement("div", { className: "mdc-drawer__toolbar-spacer" }); } if (type === "permanent") { return _2.default.render(_react2.default.createElement( "nav", { className: classes }, spacer, children ), props); } if (open) { classes += " mdc-drawer--open"; } return _2.default.render(_react2.default.createElement( "aside", { className: classes, role: "presentation", onKeyUp: function onKeyUp() {}, onClick: this.onClick, ref: function ref(c) { _this2.ref = c; } }, _react2.default.createElement( "nav", { className: "mdc-drawer__drawer" }, spacer, children ) ), props); } }]); return Drawer; }(_react.PureComponent); exports.default = Drawer; Drawer.defaultProps = { mdcElement: MDC_DRAWER, children: null, type: "permanent", open: false, toolbarSpacer: false, above: false, onClose: function onClose() {} }; Drawer.propTypes = { mdcElement: _propTypes2.default.string, children: _propTypes2.default.node, type: _propTypes2.default.oneOf(["permanent", "persistent", "temporary"]), open: _propTypes2.default.bool, toolbarSpacer: _propTypes2.default.bool, above: _propTypes2.default.bool, onClose: _propTypes2.default.func };