UNPKG

meteor-interface

Version:

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

132 lines (115 loc) 5.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _reactRouterDom = require("react-router-dom"); var _reactHelmet = require("react-helmet"); var _reactToastify = require("react-toastify"); var _DynamicImporter = _interopRequireDefault(require("./utils/DynamicImporter")); var _ConditionnalRoute = _interopRequireDefault(require("./utils/ConditionnalRoute")); var _LoadingComponent = _interopRequireDefault(require("./ui/components/LoadingComponent")); var _notifier = _interopRequireDefault(require("./utils/notifier")); var _UserProvider = _interopRequireWildcard(require("./utils/contexts/UserProvider")); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // Packages // Utils // Context // Pages var AdminLayout = (0, _DynamicImporter.default)(function () { return new Promise(function (resolve) { require.ensure([], function (require) { resolve(require('./ui/Layout/Layout')); }); }); }); var Login = (0, _DynamicImporter.default)(function () { return new Promise(function (resolve) { require.ensure([], function (require) { resolve(require('./ui/Login/Login')); }); }); }); var UploaderNotifier = (0, _DynamicImporter.default)(function () { return new Promise(function (resolve) { require.ensure([], function (require) { resolve(require('./ui/components/Uploader/UploaderNotifier')); }); }); }); var GlobalRouter = function GlobalRouter() { if (Meteor.isServer) { return _react.default.createElement(_LoadingComponent.default, null); } return _react.default.createElement(_UserProvider.default, null, _react.default.createElement(_UserProvider.UserContext.Consumer, null, function (_ref) { var user = _ref.user, permissions = _ref.permissions, loggingIn = _ref.loggingIn, authenticated = _ref.authenticated, authorized = _ref.authorized, _ref$config = _ref.config, config = _ref$config === void 0 ? {} : _ref$config; var root = config.root, title = config.title, login = config.login; (0, _notifier.default)(config); return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_reactHelmet.Helmet, null, _react.default.createElement("title", null, title), _react.default.createElement("meta", { name: "robots", content: "noindex, nofollow" }), _react.default.createElement("meta", { name: "author", content: "MeXaR" }), _react.default.createElement("link", { rel: "icon", type: "image/png", href: "https://s3-eu-west-3.amazonaws.com/mexar/projects/logo_interface_black_alone.png" }), _react.default.createElement("meta", { name: "viewport", content: "width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" }), _react.default.createElement("link", { rel: "stylesheet", href: "//cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.1/semantic.min.css" }), _react.default.createElement("link", { href: "https://fonts.googleapis.com/css?family=Lato|Oswald|Titillium+Web:200,300,400,400i,600,700,900", rel: "stylesheet" }), _react.default.createElement("script", { async: true, defer: true, src: "//cdn.tinymce.com/4/tinymce.min.js" })), _react.default.createElement(_reactRouterDom.Switch, null, _react.default.createElement(_ConditionnalRoute.default, { exact: true, path: "".concat(root).concat(login), waitWhile: loggingIn, condition: !authenticated, Element: Login, redirect: root, computedProps: { root: root, user: user, permissions: permissions, loggingIn: loggingIn, authenticated: authenticated, config: config } }), _react.default.createElement(_ConditionnalRoute.default, { path: root, waitWhile: loggingIn, condition: authorized, Element: AdminLayout, redirect: "".concat(root).concat(login), computedProps: { root: root, user: user, permissions: permissions, loggingIn: loggingIn, authenticated: authenticated, authorized: authorized, config: config } })), _react.default.createElement(UploaderNotifier, null), _react.default.createElement(_reactToastify.ToastContainer, null)); })); }; // export default () => <Route path={root} component={GlobalRouter} /> var _default = GlobalRouter; exports.default = _default;