@bootstrap-styled/ra-ui
Version:
UI components for react-admin
170 lines (134 loc) • 6.43 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.CLOSED_DRAWER_WIDTH = exports.DRAWER_WIDTH = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _reactRedux = require("react-redux");
var _compose = _interopRequireDefault(require("recompose/compose"));
var _Drawer = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Drawer"));
var _raCore = require("ra-core");
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _breakpoints = require("@bootstrap-styled/css-mixins/lib/breakpoints");
var _classnames = _interopRequireDefault(require("classnames"));
var _withWidth = _interopRequireDefault(require("../extendMui/withWidth"));
var _Responsive = _interopRequireDefault(require("./Responsive"));
var DRAWER_WIDTH = '230px';
exports.DRAWER_WIDTH = DRAWER_WIDTH;
var CLOSED_DRAWER_WIDTH = '57px';
exports.CLOSED_DRAWER_WIDTH = CLOSED_DRAWER_WIDTH;
var DrawerPaper = (0, _styledComponents.default)(_Drawer.default).withConfig({
displayName: "Sidebar__DrawerPaper",
componentId: "g3lh0a-0"
})(["width:", ";overflow-x:hidden;transition:width 195ms cubic-bezier(0.4,0,0.6,1) 0ms;", " ", " &.close{width:", " !important;}"], DRAWER_WIDTH, (0, _breakpoints.mediaBreakpointOnly)('xs', "\n margin-top: 0;\n height: 100vh;\n position: inherit;\n "), (0, _breakpoints.mediaBreakpointOnly)('md', "\n border: none;\n margin-top: 5.5em;\n "), CLOSED_DRAWER_WIDTH);
var Sidebar = function (_PureComponent) {
(0, _inherits2.default)(Sidebar, _PureComponent);
function Sidebar() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2.default)(this, Sidebar);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Sidebar)).call.apply(_getPrototypeOf2, [this].concat(args)));
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleClose", function () {
return _this.props.setSidebarVisibility(false);
});
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "toggleSidebar", function () {
return _this.props.setSidebarVisibility(!_this.props.open);
});
return _this;
}
(0, _createClass2.default)(Sidebar, [{
key: "componentWillMount",
value: function componentWillMount() {
var _this$props = this.props,
width = _this$props.width,
setSidebarVisibility = _this$props.setSidebarVisibility;
if (width !== 'xs' && width !== 'sm') {
setSidebarVisibility(true);
}
}
}, {
key: "render",
value: function render() {
var _this$props2 = this.props,
children = _this$props2.children,
closedSize = _this$props2.closedSize,
open = _this$props2.open,
setSidebarVisibility = _this$props2.setSidebarVisibility,
size = _this$props2.size,
width = _this$props2.width,
rest = (0, _objectWithoutProperties2.default)(_this$props2, ["children", "closedSize", "open", "setSidebarVisibility", "size", "width"]);
return _react.default.createElement(_Responsive.default, {
xsmall: _react.default.createElement(_Drawer.default, (0, _extends2.default)({
active: open,
left: DRAWER_WIDTH,
style: {
top: '45px'
},
onClose: this.toggleSidebar
}, rest), (0, _react.cloneElement)(_react.Children.only(children), {
onMenuClick: this.handleClose
})),
small: _react.default.createElement(DrawerPaper, (0, _extends2.default)({
docked: true,
left: DRAWER_WIDTH,
active: open,
className: (0, _classnames.default)('pt-3', {
close: !open
}),
onClose: this.toggleSidebar
}, rest), (0, _react.cloneElement)(_react.Children.only(children), {
onMenuClick: this.handleClose
})),
medium: _react.default.createElement(DrawerPaper, (0, _extends2.default)({
docked: true,
left: DRAWER_WIDTH,
active: open,
className: (0, _classnames.default)('pt-2', {
close: !open
}),
onClose: this.toggleSidebar
}, rest), (0, _react.cloneElement)(_react.Children.only(children)))
});
}
}]);
return Sidebar;
}(_react.PureComponent);
Sidebar.propTypes = {
children: _propTypes.default.node.isRequired,
closedSize: _propTypes.default.string,
open: _propTypes.default.bool.isRequired,
setSidebarVisibility: _propTypes.default.func.isRequired,
size: _propTypes.default.string,
width: _propTypes.default.string
};
Sidebar.defaultProps = {
size: DRAWER_WIDTH,
closedSize: CLOSED_DRAWER_WIDTH
};
var mapStateToProps = function mapStateToProps(state) {
return {
open: state.admin.ui.sidebarOpen,
locale: state.locale
};
};
var _default = (0, _compose.default)((0, _reactRedux.connect)(mapStateToProps, {
setSidebarVisibility: _raCore.setSidebarVisibility
}), (0, _withWidth.default)({
resizeInterval: Infinity
}))(Sidebar);
exports.default = _default;