UNPKG

meteor-interface

Version:

Simple Content Management System to generate your administration interface for Meteor and React.

142 lines (121 loc) 5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _reactMeteorData = require("meteor/react-meteor-data"); var _reactRouterDom = require("react-router-dom"); var _slugify = _interopRequireDefault(require("slugify")); var _reactSpring = require("react-spring"); var _semanticUiReact = require("semantic-ui-react"); var _styledComponents = _interopRequireDefault(require("styled-components")); var _LoadingComponent = _interopRequireDefault(require("../../components/LoadingComponent")); var _WidgetSelector = _interopRequireDefault(require("../components/WidgetSelector")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _templateObject() { var data = _taggedTemplateLiteral(["\n h5.header {\n letter-spacing:2px;\n margin-bottom: 0;\n \n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var ContentView = function ContentView(_ref) { var _ref$item = _ref.item, item = _ref$item === void 0 ? {} : _ref$item, history = _ref.history, ready = _ref.ready, _ref$collection = _ref.collection, collection = _ref$collection === void 0 ? {} : _ref$collection, firstField = _ref.firstField, _ref$config = _ref.config, config = _ref$config === void 0 ? {} : _ref$config, root = _ref.root; var editable = Roles.userIsInRole(Meteor.userId(), collection.edit); return _react.default.createElement(ContentViewStyle, null, _react.default.createElement(_reactSpring.Spring, { from: { opacity: 0, marginLeft: 600 }, to: { opacity: 1, marginLeft: 0 } }, function (styles) { return _react.default.createElement(_semanticUiReact.Segment, { style: _objectSpread({}, styles, { display: 'flex', justifyContent: 'space-between', alignItems: 'center' }) }, _react.default.createElement(_semanticUiReact.Header, { content: "Single item from ".concat(collection.label), as: "h5" }), editable && _react.default.createElement(_reactRouterDom.Link, { to: "".concat(root, "/collections/").concat((0, _slugify.default)(collection.label, { lower: true }), "/").concat(item._id, "/edit") }, _react.default.createElement(_semanticUiReact.Button, { content: "EDIT", size: "mini", icon: "edit", color: "blue", labelPosition: "left" }))); }), _react.default.createElement(_reactSpring.Spring, { from: { opacity: 0, marginTop: 600 }, to: { opacity: 1, marginTop: 0 } }, function (styles) { return _react.default.createElement(_semanticUiReact.Segment, { style: styles, color: "green" }, _react.default.createElement(_WidgetSelector.default, { collection: collection, item: item, ready: ready })); })); }; var _default = (0, _reactMeteorData.withTracker)(function (_ref2) { var match = _ref2.match, config = _ref2.config; var _match$params = match.params, collectionSlug = _match$params.collectionSlug, itemId = _match$params.itemId; var collection = null; var _config$collections = config.collections, collections = _config$collections === void 0 ? [] : _config$collections; collections.map(function (coll) { var slug = (0, _slugify.default)(coll.label, { lower: true }); if (slug === collectionSlug) collection = coll; }); var subscription = Meteor.subscribe("interface.one.".concat((0, _slugify.default)(collection.label, { lower: true })), { itemId: itemId }); var ready = subscription.ready(); var firstField = collection.fields[0].name; var item = collection.mongo.findOne({ _id: itemId }); return { collection: collection, ready: ready, item: item, firstField: firstField }; })(ContentView); exports.default = _default; var ContentViewStyle = _styledComponents.default.div(_templateObject());