meteor-interface
Version:
Simple Content Management System to generate your administration interface for Meteor and React.
132 lines (115 loc) • 5.1 kB
JavaScript
"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;