feat(dashboard): redesign space dashboard with members, activity, votes
Replace the global "Your Spaces" grid with a space-centric dashboard showing members, previously open tools, recent activity, active votes, and quick actions. Fix layout cut-off by positioning dashboard fixed below header+tab row (top: 92px) with sidebar-push support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
e3a6a45c5a
commit
30f037c2a0
|
|
@ -840,11 +840,12 @@ export function renderShell(opts: ShellOptions): string {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// No tabs left — show dashboard
|
// No tabs left — show dashboard
|
||||||
|
const dashboard = document.querySelector('rstack-user-dashboard');
|
||||||
|
if (dashboard && dashboard.setOpenTabs) dashboard.setOpenTabs([...layers]);
|
||||||
tabBar.setLayers([]);
|
tabBar.setLayers([]);
|
||||||
tabBar.setAttribute('active', '');
|
tabBar.setAttribute('active', '');
|
||||||
currentModuleId = '';
|
currentModuleId = '';
|
||||||
if (tabCache) tabCache.hideAllPanes();
|
if (tabCache) tabCache.hideAllPanes();
|
||||||
const dashboard = document.querySelector('rstack-user-dashboard');
|
|
||||||
if (dashboard) { dashboard.style.display = ''; if (dashboard.refresh) dashboard.refresh(); }
|
if (dashboard) { dashboard.style.display = ''; if (dashboard.refresh) dashboard.refresh(); }
|
||||||
const app = document.getElementById('app');
|
const app = document.getElementById('app');
|
||||||
if (app) app.classList.remove('canvas-layout');
|
if (app) app.classList.remove('canvas-layout');
|
||||||
|
|
@ -995,8 +996,9 @@ export function renderShell(opts: ShellOptions): string {
|
||||||
|
|
||||||
if (layers.length === 0) {
|
if (layers.length === 0) {
|
||||||
// No tabs left — show the dashboard
|
// No tabs left — show the dashboard
|
||||||
if (tabCache) tabCache.hideAllPanes();
|
|
||||||
const dashboard = document.querySelector('rstack-user-dashboard');
|
const dashboard = document.querySelector('rstack-user-dashboard');
|
||||||
|
if (dashboard && dashboard.setOpenTabs) dashboard.setOpenTabs(closedLayer ? [closedLayer] : []);
|
||||||
|
if (tabCache) tabCache.hideAllPanes();
|
||||||
if (dashboard) {
|
if (dashboard) {
|
||||||
dashboard.style.display = '';
|
dashboard.style.display = '';
|
||||||
if (dashboard.refresh) dashboard.refresh();
|
if (dashboard.refresh) dashboard.refresh();
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -347,6 +347,7 @@ body {
|
||||||
|
|
||||||
.rstack-tab-row,
|
.rstack-tab-row,
|
||||||
#app,
|
#app,
|
||||||
|
rstack-user-dashboard,
|
||||||
.rspace-iframe-wrap,
|
.rspace-iframe-wrap,
|
||||||
#toolbar {
|
#toolbar {
|
||||||
transition: margin-left 0.25s ease, left 0.25s ease;
|
transition: margin-left 0.25s ease, left 0.25s ease;
|
||||||
|
|
@ -360,6 +361,10 @@ body.rstack-sidebar-open #app {
|
||||||
margin-left: 280px;
|
margin-left: 280px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body.rstack-sidebar-open rstack-user-dashboard {
|
||||||
|
left: 280px;
|
||||||
|
}
|
||||||
|
|
||||||
body.rstack-sidebar-open .rspace-iframe-wrap {
|
body.rstack-sidebar-open .rspace-iframe-wrap {
|
||||||
left: 280px;
|
left: 280px;
|
||||||
}
|
}
|
||||||
|
|
@ -457,6 +462,7 @@ body.rstack-sidebar-open #toolbar {
|
||||||
/* Sidebar overlays on mobile — no push offsets */
|
/* Sidebar overlays on mobile — no push offsets */
|
||||||
body.rstack-sidebar-open .rstack-tab-row { left: 0; }
|
body.rstack-sidebar-open .rstack-tab-row { left: 0; }
|
||||||
body.rstack-sidebar-open #app { margin-left: 0; }
|
body.rstack-sidebar-open #app { margin-left: 0; }
|
||||||
|
body.rstack-sidebar-open rstack-user-dashboard { left: 0; }
|
||||||
body.rstack-sidebar-open .rspace-iframe-wrap { left: 0; }
|
body.rstack-sidebar-open .rspace-iframe-wrap { left: 0; }
|
||||||
body.rstack-sidebar-open #toolbar { left: 12px; }
|
body.rstack-sidebar-open #toolbar { left: 12px; }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue