UNPKG

meteor-interface

Version:

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

116 lines (94 loc) 4.56 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 _slugify = _interopRequireDefault(require("slugify")); var _reactRouterDom = require("react-router-dom"); var _DynamicImporter = _interopRequireDefault(require("../../../utils/DynamicImporter")); var _LoadingComponent = _interopRequireDefault(require("../../components/LoadingComponent")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } var ContentList = (0, _DynamicImporter.default)(function () { return new Promise(function (resolve) { require.ensure([], function (require) { resolve(require('../pages/ContentList')); }); }); }); var params = new ReactiveVar({ page: 1, search: '' }); var ContentBalancer = function ContentBalancer(_ref) { var _ref$collection = _ref.collection, collection = _ref$collection === void 0 ? {} : _ref$collection, _ref$config = _ref.config, config = _ref$config === void 0 ? {} : _ref$config, root = _ref.root, rest = _objectWithoutProperties(_ref, ["collection", "config", "root"]); if (collection.single) { var match = rest.match, _rest$list = rest.list, list = _rest$list === void 0 ? {} : _rest$list, ready = rest.ready; var collectionSlug = match.params.collectionSlug; if (!ready) { return _react.default.createElement(_LoadingComponent.default, null); } if (list._id) { return _react.default.createElement(_reactRouterDom.Redirect, { to: "".concat(root, "/collections/").concat(collectionSlug, "/").concat(list._id) }); } return _react.default.createElement(_reactRouterDom.Redirect, { to: "".concat(root, "/collections/").concat(collectionSlug, "/new") }); } return _react.default.createElement(ContentList, _extends({ params: params, collection: collection }, rest, { config: config, root: root })); }; var _default = (0, _reactMeteorData.withTracker)(function (_ref2) { var _sort; var match = _ref2.match, config = _ref2.config; var _config$collections = config.collections, collections = _config$collections === void 0 ? [] : _config$collections; var collectionSlug = match.params.collectionSlug; var collection = null; collections.map(function (coll) { var slug = (0, _slugify.default)(coll.label, { lower: true }); if (slug === collectionSlug) { collection = coll; } }); var subscriptionName = collection.single ? "interface.single.".concat(collectionSlug) : "interface.all.".concat(collectionSlug); var subscription = Meteor.subscribe(subscriptionName, params.get()); var ready = subscription.ready(); var firstField = collection.fields[0].name; var number = Counts.get("count-all-".concat((0, _slugify.default)(collection.label, { lower: true }))); var list = collection.single ? collection.mongo.findOne({}) : collection.mongo.find({}, { sort: (_sort = {}, _defineProperty(_sort, firstField, 1), _defineProperty(_sort, "_id", 1), _sort) }).fetch(); return { collection: collection, ready: ready, list: list, firstField: firstField, number: number }; })(ContentBalancer); exports.default = _default;