UNPKG

meteor-interface

Version:

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

130 lines (112 loc) 4.58 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 _reactSpring = require("react-spring"); var _semanticUiReact = require("semantic-ui-react"); var _styledComponents = _interopRequireDefault(require("styled-components")); var _LoadingComponent = _interopRequireDefault(require("../../components/LoadingComponent")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _templateObject() { var data = _taggedTemplateLiteral(["\n h5.header {\n letter-spacing:2px;\n }\n .single-vignette {\n display: flex;\n align-items: center;\n justify-content: space-between;\n transition: box-shadow 0.2s ease-in;\n cursor: pointer;\n .ui.statistic {\n margin-top: 0;\n .value{\n color: #21ba45 !important;\n }\n }\n &:hover {\n box-shadow: 5px 5px 9px 0px rgba(0,0,0,0.75);\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) } })); } var ContentHome = function ContentHome(_ref) { var _ref$counters = _ref.counters, counters = _ref$counters === void 0 ? [] : _ref$counters, history = _ref.history, ready = _ref.ready, config = _ref.config; // Extract datas from config var _config$root = config.root, root = _config$root === void 0 ? '/admin' : _config$root, _config$collections = config.collections, collections = _config$collections === void 0 ? [] : _config$collections; return _react.default.createElement(ContentHomeStyle, 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: styles }, _react.default.createElement(_semanticUiReact.Header, { content: "Dashboard", as: "h5" })); }), counters.length !== 0 ? _react.default.createElement(_semanticUiReact.Grid, { stackable: true }, _react.default.createElement(_reactSpring.Transition, { keys: counters.map(function (count) { return count.name; }), from: { marginTop: 1000 }, enter: { marginTop: 0 }, leave: { marginTop: 1000 } }, counters.map(function (count) { return function (styless) { return _react.default.createElement(_semanticUiReact.Grid.Column, { width: 8, key: count.name, style: styless, onClick: function onClick() { return history.push("".concat(root, "/collections/").concat((0, _slugify.default)(count.name, { lower: true }))); } }, _react.default.createElement(_semanticUiReact.Segment, { className: "single-vignette", color: "green" }, count.icon && _react.default.createElement(_semanticUiReact.Icon, { color: "grey", size: "huge", name: count.icon }), _react.default.createElement(_semanticUiReact.Statistic, { size: "small" }, _react.default.createElement(_semanticUiReact.Statistic.Value, null, count.number), _react.default.createElement(_semanticUiReact.Statistic.Label, null, count.name)))); }; }))) : null); }; var _default = (0, _reactMeteorData.withTracker)(function (_ref2) { var config = _ref2.config; var subscription = Meteor.subscribe('interface.counters.all.collections'); var ready = subscription.ready(); var counters = []; // Extract datas from config var _config$collections2 = config.collections, collections = _config$collections2 === void 0 ? [] : _config$collections2; collections.map(function (coll) { if (Roles.userIsInRole(Meteor.userId(), coll.visible)) { counters.push({ name: coll.label, icon: coll.icon, number: Counts.get("count-all-".concat((0, _slugify.default)(coll.label, { lower: true }))) }); } }); return { counters: counters, ready: ready }; })(ContentHome); exports.default = _default; var ContentHomeStyle = _styledComponents.default.div(_templateObject());