UNPKG

@bootstrap-styled/ra-ui

Version:
131 lines (105 loc) 5.17 kB
"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;