solid-panes
Version:
Solid-compatible Panes: applets and views for the mashlib and databrowser
55 lines (53 loc) • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.initMainPage = initMainPage;
Object.defineProperty(exports, "refreshHeader", {
enumerable: true,
get: function () {
return _header.refreshHeader;
}
});
exports.refreshUI = refreshUI;
Object.defineProperty(exports, "updateMenuLayout", {
enumerable: true,
get: function () {
return _menu.refreshMenu;
}
});
var _index = require("../index");
var _header = require("./header");
var _footer = require("./footer");
var _menu = require("./menu");
/* Main Page
**
** This code is called in mashlib and renders the header and footer of the Databrowser.
*/
function ensureMainContent() {
let main = document.getElementById('MainContent');
if (!main) {
main = document.createElement('main');
main.id = 'MainContent';
main.setAttribute('role', 'main');
main.setAttribute('tabindex', '-1');
main.setAttribute('aria-live', 'polite');
document.body.appendChild(main);
}
return main;
}
async function initMainPage(store, uri, environment) {
ensureMainContent();
const outliner = (0, _index.getOutliner)(document, environment);
uri = uri || window.location.href;
const subject = typeof uri === 'string' ? store.sym(uri) : uri;
outliner.GotoSubject(subject, true, undefined, true, undefined);
const header = await (0, _header.createHeader)(store, outliner);
const menu = (0, _menu.createLeftSideMenu)(subject, outliner);
const footer = menu.then(() => (0, _footer.createFooter)(store));
return Promise.all([header, menu, footer]);
}
async function refreshUI(outliner) {
await (0, _header.refreshHeader)(outliner);
(0, _menu.refreshMenu)(outliner.context.environment?.layout === 'mobile' ? 'mobile' : 'desktop');
}