From 8440db8c6eb293af46435c12d532e76c397b03f7 Mon Sep 17 00:00:00 2001 From: Schalli Date: Mon, 28 Sep 2026 16:05:34 +0200 Subject: [PATCH] style(web): Reiter zurueck in die Kopfzeile, Begruessung in die Seitenleiste Rueckmeldung Runde 3: die Reiter in der Seitenleiste gefallen nicht - zurueck auf den Stand vor 8532b63 (Umschalter in der Kopfzeile). Statt dessen sitzt die Begruessung jetzt zweizeilig im sonst leeren unteren Bereich der Seitenleiste ueber "Einklappen"; ueber den Kacheln bleibt nur die Befehlsleiste rechts. Co-Authored-By: Claude Opus 5.5 (1M context) --- apps/web/src/app/(portal)/page.test.tsx | 3 +- apps/web/src/app/(portal)/page.tsx | 14 +- apps/web/src/app/globals.css | 14 -- .../dashboard/dashboard-greeting.tsx | 18 +- .../components/dashboard/dashboard-tabs.tsx | 226 ++---------------- apps/web/src/components/layout/header-slot.ts | 7 - .../src/components/layout/sidebar.test.tsx | 4 + apps/web/src/components/layout/sidebar.tsx | 22 +- 8 files changed, 49 insertions(+), 259 deletions(-) diff --git a/apps/web/src/app/(portal)/page.test.tsx b/apps/web/src/app/(portal)/page.test.tsx index 26c394f..d3d72f6 100644 --- a/apps/web/src/app/(portal)/page.test.tsx +++ b/apps/web/src/app/(portal)/page.test.tsx @@ -125,7 +125,8 @@ describe('DashboardPage (quick-260916-dyv)', () => { expect(screen.queryByRole('button', { name: 'Widget hinzufügen' })).toBeNull(); expect(document.querySelector('.mt-8')).toBeNull(); expect(document.querySelector('.top-2')).toBeNull(); - await waitFor(() => expect(screen.getByTestId('dashboard-greeting')).toBeInTheDocument()); + // Runde 3: die Begruessung steht in der Seitenleiste, nicht mehr hier. + expect(screen.queryByTestId('dashboard-greeting')).toBeNull(); const grid = screen.getByTestId('dashboard-grid'); expect((grid.parentElement as HTMLElement).classList.contains('p-2')).toBe(true); diff --git a/apps/web/src/app/(portal)/page.tsx b/apps/web/src/app/(portal)/page.tsx index 7bf4340..721421b 100644 --- a/apps/web/src/app/(portal)/page.tsx +++ b/apps/web/src/app/(portal)/page.tsx @@ -5,7 +5,6 @@ import { useTranslations } from 'next-intl'; import { DashboardGrid } from '@/components/dashboard/dashboard-grid'; import { DashboardTabs } from '@/components/dashboard/dashboard-tabs'; import { EditModeToggle } from '@/components/dashboard/edit-mode-toggle'; -import { DashboardGreeting } from '@/components/dashboard/dashboard-greeting'; import { BackgroundPicker, DashboardBackdrop, useDashboardBackground } from '@/components/dashboard/dashboard-background'; import { useAuthStore } from '@/lib/stores/auth-store'; import { WidgetCatalogModal } from '@/components/dashboard/widget-catalog-modal'; @@ -142,17 +141,14 @@ export default function DashboardPage() { onReorder={reorderDashboards} /> - {/* Kopfzeile des Dashboards (Design „Mosaik“, Runde 2): Begruessung - links, Befehlsleiste rechts (Fluent „command bar“) statt des - frueheren schwebenden Knopfs unten rechts. Mit Hintergrund liegen - beide auf der durchscheinenden Kachelflaeche (.dashboard-chrome). */} + {/* Befehlsleiste rechts ueber dem Raster (Design „Mosaik“, Fluent + „command bar“). Die Begruessung sitzt seit Runde 3 unten in der + Seitenleiste; hier bleibt nur die Leiste. Mit Hintergrund liegt sie + auf der durchscheinenden Kachelflaeche (.dashboard-chrome). */}
0 ? { paddingInline: 12 + gridInset } : undefined} > -
- -
#sidebar-dashboard-slot > nav) > a { - background-color: transparent; - font-weight: 500; -} -li:has(> #sidebar-dashboard-slot > nav) > a:hover { - background-color: var(--sidebar-hover); -} -li:has(> #sidebar-dashboard-slot > nav) > a [data-testid="nav-selection-pill"] { - display: none; -} - /* Runde 3 — mehr Leben in den Kacheln, ohne bunt zu werden. Symbol-Chip: Flaeche und Symbol aus der persoenlichen Akzentfarbe. */ .widget-icon-chip { diff --git a/apps/web/src/components/dashboard/dashboard-greeting.tsx b/apps/web/src/components/dashboard/dashboard-greeting.tsx index 6332516..176a3c2 100644 --- a/apps/web/src/components/dashboard/dashboard-greeting.tsx +++ b/apps/web/src/components/dashboard/dashboard-greeting.tsx @@ -19,8 +19,8 @@ export function greetingName(displayName: string | null | undefined, username: s } /** - * Ruhige Begruessung ueber dem Raster (Design „Mosaik“, Runde 2/3): „Guten - * Morgen, Max“ plus Wochentag und Datum in einer Zeile. Keine Kennzahlen. Die Uhrzeit wird + * Ruhige Begruessung (Design „Mosaik“): „Guten Morgen, Max“ plus Wochentag + * und Datum. Seit Runde 3 unten in der Seitenleiste ueber „Einklappen“. Keine Kennzahlen. Die Uhrzeit wird * erst im Browser gelesen (kein Unterschied zwischen Server und Browser) und * jede Minute aufgefrischt. */ @@ -36,7 +36,7 @@ export function DashboardGreeting() { return () => window.clearInterval(id); }, []); - if (!now) return