cspace-ui
Version:
CollectionSpace user interface for browsers
112 lines (110 loc) • 4.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _reactDom = require("react-dom");
var _reactIntl = require("react-intl");
var _reactRouter = require("react-router");
var _reactRouterDom = require("react-router-dom");
var _reactHelmet = require("react-helmet");
var _warning = _interopRequireDefault(require("warning"));
var _favicon = _interopRequireDefault(require("../images/favicon.png"));
var _collectionspace = _interopRequireDefault(require("../images/collectionspace.svg"));
var _RootPage = _interopRequireDefault(require("../styles/cspace-ui/RootPage.css"));
var _ServicePage = _interopRequireDefault(require("../styles/cspace-ui/ServicePage.css"));
var _ServiceLoginPage = _interopRequireDefault(require("./components/pages/service/ServiceLoginPage"));
var _ServiceLogoutPage = _interopRequireDefault(require("./components/pages/service/ServiceLogoutPage"));
var _PasswordResetPage = _interopRequireDefault(require("./components/pages/service/PasswordResetPage"));
var _PasswordResetRequestPage = _interopRequireDefault(require("./components/pages/service/PasswordResetRequestPage"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* global document */
const defaultConfig = {
basename: '',
className: '',
container: '#cspace',
locale: 'en-US',
logo: _collectionspace.default,
messages: undefined,
prettyUrls: false,
serverUrl: ''
};
const title = 'CollectionSpace';
var _default = uiConfig => {
const config = {
...defaultConfig,
...uiConfig
};
const {
container,
csrf,
error,
isLogoutSuccess,
locale,
logo,
messages,
sso,
tenantId,
tenantLoginUrl,
token
} = config;
const mountNode = document.querySelector(container);
process.env.NODE_ENV !== "production" ? (0, _warning.default)(mountNode, `No container element was found using the selector '${container}'. The CollectionSpace UI will not be rendered.`) : void 0;
if (mountNode) {
process.env.NODE_ENV !== "production" ? (0, _warning.default)(mountNode !== document.body, `The container element for the CollectionSpace UI found using the selector '${container}' is the document body. This may cause problems, and is not supported.`) : void 0;
}
(0, _reactDom.render)( /*#__PURE__*/_react.default.createElement(_reactIntl.IntlProvider, {
locale: locale,
defaultLocale: "en-US",
messages: messages
}, /*#__PURE__*/_react.default.createElement("div", {
className: _RootPage.default.common
}, /*#__PURE__*/_react.default.createElement(_reactHelmet.Helmet, {
defaultTitle: title,
titleTemplate: `%s | ${title}`,
htmlAttributes: {
lang: locale
}
}, /*#__PURE__*/_react.default.createElement("link", {
rel: "shortcut icon",
href: _favicon.default
})), /*#__PURE__*/_react.default.createElement("div", {
className: _ServicePage.default.common
}, /*#__PURE__*/_react.default.createElement("header", null, /*#__PURE__*/_react.default.createElement("img", {
src: logo,
alt: title
})), /*#__PURE__*/_react.default.createElement(_reactRouterDom.BrowserRouter, {
basename: "/cspace-services"
}, /*#__PURE__*/_react.default.createElement(_reactRouter.Switch, null, /*#__PURE__*/_react.default.createElement(_reactRouter.Route, {
path: "/login",
render: () => /*#__PURE__*/_react.default.createElement(_ServiceLoginPage.default, {
csrf: csrf,
error: error,
isLogoutSuccess: isLogoutSuccess,
locale: locale,
sso: sso,
tenantId: tenantId
})
}), /*#__PURE__*/_react.default.createElement(_reactRouter.Route, {
path: "/logout",
render: () => /*#__PURE__*/_react.default.createElement(_ServiceLogoutPage.default, {
csrf: csrf
})
}), /*#__PURE__*/_react.default.createElement(_reactRouter.Route, {
path: "/accounts/requestpasswordreset",
render: () => /*#__PURE__*/_react.default.createElement(_PasswordResetRequestPage.default, {
csrf: csrf,
tenantId: tenantId
})
}), /*#__PURE__*/_react.default.createElement(_reactRouter.Route, {
path: "/accounts/processpasswordreset",
render: () => /*#__PURE__*/_react.default.createElement(_PasswordResetPage.default, {
csrf: csrf,
tenantId: tenantId,
tenantLoginUrl: tenantLoginUrl,
token: token
})
})))))), mountNode);
};
exports.default = _default;