UNPKG

@bootstrap-styled/ra-ui

Version:
138 lines (115 loc) 5.07 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.ReferenceFieldView = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _raCore = require("ra-core"); var _LinearProgress = _interopRequireDefault(require("../layout/LinearProgress")); var _Link = _interopRequireDefault(require("../Link")); var _sanitizeRestProps = _interopRequireDefault(require("./sanitizeRestProps")); var stopPropagation = function stopPropagation(e) { return e.stopPropagation(); }; var ReferenceFieldView = function ReferenceFieldView(_ref) { var allowEmpty = _ref.allowEmpty, basePath = _ref.basePath, children = _ref.children, className = _ref.className, isLoading = _ref.isLoading, record = _ref.record, reference = _ref.reference, referenceRecord = _ref.referenceRecord, resource = _ref.resource, resourceLinkPath = _ref.resourceLinkPath, source = _ref.source, _ref$translateChoice = _ref.translateChoice, translateChoice = _ref$translateChoice === void 0 ? false : _ref$translateChoice, rest = (0, _objectWithoutProperties2.default)(_ref, ["allowEmpty", "basePath", "children", "className", "isLoading", "record", "reference", "referenceRecord", "resource", "resourceLinkPath", "source", "translateChoice"]); if (isLoading) { return _react.default.createElement(_LinearProgress.default, null); } if (resourceLinkPath) { return _react.default.createElement(_Link.default, { to: resourceLinkPath, className: className, onClick: stopPropagation }, _react.default.cloneElement(_react.Children.only(children), (0, _objectSpread2.default)({ className: (0, _classnames.default)(children.props.className), record: referenceRecord, resource: reference, allowEmpty: allowEmpty, basePath: basePath, translateChoice: translateChoice }, (0, _sanitizeRestProps.default)(rest)))); } return _react.default.cloneElement(_react.Children.only(children), (0, _objectSpread2.default)({ record: referenceRecord, resource: reference, allowEmpty: allowEmpty, basePath: basePath, translateChoice: translateChoice }, (0, _sanitizeRestProps.default)(rest))); }; exports.ReferenceFieldView = ReferenceFieldView; ReferenceFieldView.propTypes = { allowEmpty: _propTypes.default.bool, basePath: _propTypes.default.string, children: _propTypes.default.element, className: _propTypes.default.string, isLoading: _propTypes.default.bool, record: _propTypes.default.object, reference: _propTypes.default.string, referenceRecord: _propTypes.default.object, resource: _propTypes.default.string, resourceLinkPath: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]), source: _propTypes.default.string, translateChoice: _propTypes.default.bool }; var ReferenceField = function ReferenceField(_ref2) { var children = _ref2.children, props = (0, _objectWithoutProperties2.default)(_ref2, ["children"]); if (_react.default.Children.count(children) !== 1) { throw new Error('<ReferenceField> only accepts a single child'); } return _react.default.createElement(_raCore.ReferenceFieldController, props, function (controllerProps) { return _react.default.createElement(ReferenceFieldView, (0, _extends2.default)({}, props, (0, _objectSpread2.default)({ children: children }, controllerProps))); }); }; ReferenceField.propTypes = { addLabel: _propTypes.default.bool, allowEmpty: _propTypes.default.bool, basePath: _propTypes.default.string, children: _propTypes.default.element.isRequired, className: _propTypes.default.string, cellClassName: _propTypes.default.string, headerClassName: _propTypes.default.string, label: _propTypes.default.string, record: _propTypes.default.object, reference: _propTypes.default.string.isRequired, resource: _propTypes.default.string, sortBy: _propTypes.default.string, source: _propTypes.default.string.isRequired, translateChoice: _propTypes.default.func, linkType: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]) }; ReferenceField.defaultProps = { allowEmpty: false, linkType: 'edit', record: {} }; var EnhancedReferenceField = ReferenceField; EnhancedReferenceField.defaultProps = { addLabel: true }; var _default = EnhancedReferenceField; exports.default = _default;