UNPKG

@panneau/field-page

Version:
105 lines (90 loc) 3.88 kB
import _extends from "@babel/runtime/helpers/extends"; import _classCallCheck from "@babel/runtime/helpers/classCallCheck"; import _createClass from "@babel/runtime/helpers/createClass"; import _inherits from "@babel/runtime/helpers/inherits"; import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn"; import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf"; function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import { defineMessages } from 'react-intl'; import { PropTypes as PanneauPropTypes, withUrlGenerator, withDefinition } from '@panneau/core'; import ItemField from '@panneau/field-item'; var messages = defineMessages({ placeholder: { "id": "fields.page.placeholder", "defaultMessage": "Search for a page..." } }); var propTypes = { urlGenerator: PanneauPropTypes.urlGenerator, definition: PanneauPropTypes.definition, placeholder: PanneauPropTypes.message, resourceId: PropTypes.string, endpoint: PropTypes.string }; var defaultProps = { urlGenerator: null, definition: null, placeholder: messages.placeholder, resourceId: 'pages', endpoint: null }; var PageField = /*#__PURE__*/function (_PureComponent) { _inherits(PageField, _PureComponent); var _super = _createSuper(PageField); function PageField() { _classCallCheck(this, PageField); return _super.apply(this, arguments); } _createClass(PageField, [{ key: "getEndpoint", value: function getEndpoint() { var _this$props = this.props, resourceId = _this$props.resourceId, urlGenerator = _this$props.urlGenerator, definition = _this$props.definition, endpoint = _this$props.endpoint; if (endpoint !== null) { return endpoint; } if (urlGenerator === null || definition === null) { return null; } var _definition$resources = definition.resources, resources = _definition$resources === void 0 ? [] : _definition$resources; var resource = resources.find(function (it) { return it.id === resourceId; }) || null; if (resource === null) { return null; } return urlGenerator.route(typeof resource.routes !== 'undefined' ? "resource.".concat(resource.id, ".index") : 'resource.index', { resource: resource.id }); } }, { key: "render", value: function render() { return /*#__PURE__*/React.createElement(ItemField, _extends({ cardItemMap: { name: 'title', created_at: 'created_at', thumbnail: 'image' }, autosuggestProps: { suggestionsEndpoint: this.getEndpoint(), suggestionValuePath: 'title', suggestionTitlePath: 'title' } }, this.props)); } }]); return PageField; }(PureComponent); PageField.propTypes = propTypes; PageField.defaultProps = defaultProps; var WithUrlGeneratorContainer = withUrlGenerator()(PageField); var WithDefinitionContainer = withDefinition()(WithUrlGeneratorContainer); export default WithDefinitionContainer;