solid-panes
Version:
Solid-compatible Panes: applets and views for the mashlib and databrowser
73 lines (72 loc) • 2.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.dashboardPane = void 0;
var _solidUi = require("solid-ui");
var _solidLogic = require("solid-logic");
var _homepage = require("./homepage");
var dashboardPane = exports.dashboardPane = {
icon: _solidUi.icons.iconBase + 'noun_547570.svg',
name: 'dashboard',
label: function label(subject) {
console.log();
if (subject.uri === subject.site().uri) {
return 'Dashboard';
}
return null;
},
render: function render(subject, context) {
console.log('Dashboard Pane Render');
var dom = context.dom;
var container = dom.createElement('div');
var runBuildPage = function runBuildPage() {
container.innerHTML = '';
buildPage(container, _solidLogic.authn.currentUser() || null, context, subject);
};
_solidLogic.authSession.onLogin(function () {
// console.log('On Login')
runBuildPage();
});
_solidLogic.authSession.onSessionRestore(function () {
// console.log('On Session Restore')
runBuildPage();
});
// console.log('Initial Load')
runBuildPage();
return container;
}
};
function buildPage(container, webId, context, subject) {
// if uri then SolidOS is a browse.html web app
var uri = new URL(window.location.href).searchParams.get('uri');
if (webId && (uri || webId.site().uri === subject.site().uri)) {
return buildDashboard(container, context);
}
return buildHomePage(container, subject);
}
function buildDashboard(container, context) {
// console.log('build dashboard')
// @@ TODO get a proper type
var outliner = context.getOutliner(context.dom);
outliner.getDashboard().then(function (dashboard) {
return container.appendChild(dashboard);
});
}
function buildHomePage(container, subject) {
// console.log('build home page')
var wrapper = document.createElement('div');
container.appendChild(wrapper);
var shadow = wrapper.attachShadow({
mode: 'open'
});
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = '/common/css/bootstrap.min.css';
shadow.appendChild(link);
(0, _homepage.generateHomepage)(subject, _solidLogic.store, _solidLogic.store.fetcher).then(function (homepage) {
return shadow.appendChild(homepage);
});
}
var _default = exports["default"] = dashboardPane;
//# sourceMappingURL=dashboardPane.js.map