You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.5 KiB
80 lines
2.5 KiB
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
|
|
var _designSystem = require("@adminjs/design-system");
|
|
|
|
var _viewHelpers = _interopRequireDefault(require("../backend/utils/view-helpers/view-helpers"));
|
|
|
|
var _store = require("./store");
|
|
|
|
var _optionsParser = require("../backend/utils/options-parser/options-parser");
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
|
|
/**
|
|
* Renders (SSR) html for given location
|
|
*
|
|
* @param {AdminJS} admin
|
|
* @param {Object} [currentAdmin]
|
|
* @param {String} currentAdmin.email
|
|
* @param {String} location='/'
|
|
*
|
|
* @private
|
|
*/
|
|
const html = async (admin, currentAdmin, location = '/') => {
|
|
const h = new _viewHelpers.default({
|
|
options: admin.options
|
|
});
|
|
const store = await (0, _store.initializeStore)(admin, currentAdmin);
|
|
const reduxState = store.getState();
|
|
const {
|
|
branding,
|
|
assets
|
|
} = reduxState;
|
|
const scripts = (assets && assets.scripts || []).map(s => `<script src="${s}"></script>`);
|
|
const styles = (assets && assets.styles || []).map(l => `<link rel="stylesheet" type="text/css" href="${l}">`);
|
|
const theme = (0, _designSystem.combineStyles)(branding.theme || {});
|
|
const faviconTag = (0, _optionsParser.getFaviconFromBranding)(branding);
|
|
return `
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script>
|
|
window.REDUX_STATE = ${JSON.stringify(reduxState)};
|
|
window.THEME = ${JSON.stringify(theme)};
|
|
window.AdminJS = { Components: {} };
|
|
</script>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
<title>${branding.companyName}</title>
|
|
${faviconTag}
|
|
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,700" type="text/css">
|
|
|
|
<script src="${h.assetPath('global.bundle.js', assets)}"></script>
|
|
<script src="${h.assetPath('design-system.bundle.js', assets)}"></script>
|
|
<script src="${h.assetPath('app.bundle.js', assets)}"></script>
|
|
<script src="${h.assetPath('components.bundle.js', assets)}"></script>
|
|
${styles.join('\n')}
|
|
</head>
|
|
<body>
|
|
<div id="app" />
|
|
<script>
|
|
var app = document.getElementById('app');
|
|
var root = createRoot(app)
|
|
root.render(AdminJS.Application);
|
|
</script>
|
|
${scripts.join('\n')}
|
|
</body>
|
|
</html>
|
|
`;
|
|
};
|
|
|
|
var _default = html;
|
|
exports.default = _default; |