@bootstrap-styled/ra-ui
Version:
UI components for react-admin
114 lines (89 loc) • 4.12 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 = void 0;
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 _AccountCircle = _interopRequireDefault(require("@material-ui/icons/AccountCircle"));
var _ButtonDropdown = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Button/ButtonDropdown"));
var _DropdownMenu = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Dropdown/DropdownMenu"));
var _Button = _interopRequireDefault(require("../button/Button"));
var UserMenu = function (_React$Component) {
(0, _inherits2.default)(UserMenu, _React$Component);
function UserMenu() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2.default)(this, UserMenu);
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)(UserMenu)).call.apply(_getPrototypeOf2, [this].concat(args)));
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
open: false
});
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleMenu", function () {
_this.setState({
open: !_this.state.open
});
});
return _this;
}
(0, _createClass2.default)(UserMenu, [{
key: "render",
value: function render() {
var _this2 = this;
var _this$props = this.props,
children = _this$props.children,
label = _this$props.label,
icon = _this$props.icon,
logout = _this$props.logout;
var open = this.state.open;
if (!logout && !children) return null;
return _react.default.createElement("div", null, _react.default.createElement(_ButtonDropdown.default, {
id: "menu-appbar",
"aria-owns": open ? 'menu-appbar' : null,
"aria-haspopup": true,
toggle: this.handleMenu,
isOpen: open,
style: {
height: '48px'
}
}, _react.default.createElement(_Button.default, {
className: "add-filter h-100 cursor-pointer text-white rounded-0",
onClick: this.handleMenu,
label: label
}, icon), _react.default.createElement(_DropdownMenu.default, {
right: true,
className: "mt-0 rounded-0 rounded-bottom"
}, _react.Children.map(children, function (menuItem) {
return (0, _react.isValidElement)(menuItem) ? (0, _react.cloneElement)(menuItem, {
onClick: _this2.handleClose
}) : null;
}), logout)));
}
}]);
return UserMenu;
}(_react.default.Component);
(0, _defineProperty2.default)(UserMenu, "propTypes", {
children: _propTypes.default.node,
label: _propTypes.default.string.isRequired,
logout: _propTypes.default.node,
icon: _propTypes.default.node
});
(0, _defineProperty2.default)(UserMenu, "defaultProps", {
label: 'ra.auth.user_menu',
icon: _react.default.createElement(_AccountCircle.default, null)
});
var _default = UserMenu;
exports.default = _default;
module.exports = exports.default;