@bootstrap-styled/ra-ui
Version:
UI components for react-admin
131 lines (105 loc) • 5.17 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.TabbedShowLayout = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
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 _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _Divider = _interopRequireDefault(require("@material-ui/core/Divider"));
var _reactRouterDom = require("react-router-dom");
var _compose = _interopRequireDefault(require("recompose/compose"));
var _raCore = require("ra-core");
var _CardContentInner = _interopRequireDefault(require("../layout/CardContentInner"));
var _TabbedShowLayoutTabs = _interopRequireDefault(require("./TabbedShowLayoutTabs"));
var sanitizeRestProps = function sanitizeRestProps(_ref) {
var children = _ref.children,
className = _ref.className,
record = _ref.record,
resource = _ref.resource,
basePath = _ref.basePath,
version = _ref.version,
initialValues = _ref.initialValues,
staticContext = _ref.staticContext,
translate = _ref.translate,
tabs = _ref.tabs,
rest = (0, _objectWithoutProperties2.default)(_ref, ["children", "className", "record", "resource", "basePath", "version", "initialValues", "staticContext", "translate", "tabs"]);
return rest;
};
var getTabFullPath = function getTabFullPath(tab, index, baseUrl) {
return "".concat(baseUrl).concat(tab.props.path ? "/".concat(tab.props.path) : index > 0 ? "/".concat(index) : '');
};
var TabbedShowLayout = function (_Component) {
(0, _inherits2.default)(TabbedShowLayout, _Component);
function TabbedShowLayout() {
(0, _classCallCheck2.default)(this, TabbedShowLayout);
return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(TabbedShowLayout).apply(this, arguments));
}
(0, _createClass2.default)(TabbedShowLayout, [{
key: "render",
value: function render() {
var _this$props = this.props,
basePath = _this$props.basePath,
children = _this$props.children,
className = _this$props.className,
location = _this$props.location,
match = _this$props.match,
record = _this$props.record,
resource = _this$props.resource,
translate = _this$props.translate,
version = _this$props.version,
value = _this$props.value,
tabs = _this$props.tabs,
rest = (0, _objectWithoutProperties2.default)(_this$props, ["basePath", "children", "className", "location", "match", "record", "resource", "translate", "version", "value", "tabs"]);
return _react.default.createElement("div", (0, _extends2.default)({
className: className,
key: version
}, sanitizeRestProps(rest)), (0, _react.cloneElement)(tabs, {
value: location.pathname,
match: match
}, children), _react.default.createElement(_Divider.default, null), _react.default.createElement(_CardContentInner.default, null, _react.Children.map(children, function (tab, index) {
return tab && (0, _react.isValidElement)(tab) ? _react.default.createElement(_reactRouterDom.Route, {
exact: true,
path: getTabFullPath(tab, index, match.url),
render: function render() {
return (0, _react.cloneElement)(tab, {
context: 'content',
resource: resource,
record: record,
basePath: basePath
});
}
}) : null;
})));
}
}]);
return TabbedShowLayout;
}(_react.Component);
exports.TabbedShowLayout = TabbedShowLayout;
TabbedShowLayout.propTypes = {
children: _propTypes.default.node,
className: _propTypes.default.string,
location: _propTypes.default.object,
match: _propTypes.default.object,
record: _propTypes.default.object,
resource: _propTypes.default.string,
basePath: _propTypes.default.string,
value: _propTypes.default.number,
version: _propTypes.default.number,
translate: _propTypes.default.func,
tabs: _propTypes.default.element.isRequired
};
TabbedShowLayout.defaultProps = {
tabs: _react.default.createElement(_TabbedShowLayoutTabs.default, null)
};
var enhance = (0, _compose.default)(_reactRouterDom.withRouter, _raCore.translate);
var _default = enhance(TabbedShowLayout);
exports.default = _default;