[Bug] Einstellungs-Bereich: Settings-Navigation soll den Drawer/Sidebar kapern, statt eigener Top-/Side-Bar (Web) #348

Closed
opened 2026-05-19 22:44:38 +02:00 by admin-mrrm · 1 comment
Owner

Beobachtetes Verhalten

Im /einstellungen/*-Bereich erscheinen die Settings-Items (Mailkonten, Mail-Tags, Geschäfte) als horizontale Tab-Leiste oben in der Page. Der globale Drawer (Hamburger) zeigt unverändert die Top-Level-Items (Einkaufen, Todo, Listen, Mail, …). Auf Desktop existieren dadurch zwei Sidebars nebeneinander: globale Nav links + Settings-Nav 220 px daneben.

Erwartetes Verhalten

Wenn der User im Einstellungs-Bereich ist, kapert der Drawer/die Sidebar die Einstellungs-Items:

  • Auf Mobile: Hamburger → öffnet Drawer, Drawer zeigt Settings-Items (statt Top-Level-Items). Optional: oben im Drawer ein „← Zurück"-Eintrag, der zur Top-Level-Nav zurückkehrt.
  • Auf Desktop: linke Sidebar zeigt Settings-Items statt Top-Level-Items. Keine zweite Sidebar.
  • Keine separate Top-/Side-Bar in der Settings-Page — Einstellungs-Page nutzt die volle Content-Breite.

Das war die ursprüngliche Intention von #336 („damit Einstellungen nicht die Menü-Einträge bei der normalen Nutzung mischen") — aktuell sind sie aber gemischt sichtbar.

Reproduktion

  1. App im Mobile-Viewport öffnen (app.mrrm.de)
  2. Profil-Menü → „Einstellungen" → landet auf /einstellungen/mail
  3. Settings-Items (Mailkonten / Mail-Tags / Geschäfte) erscheinen als horizontale Leiste oben
  4. Hamburger antippen → Drawer zeigt weiter Einkaufen/Todo/Listen/Mail/Archiv/Pakete

Umgebung

  • App: web
  • Version / Commit: aktueller main (post-#336)
  • OS / Browser / Device: Android, Vivaldi auf app.mrrm.de

Code-Hinweis

  • apps/web/src/routes/einstellungen-layout.tsx:26-37 — eigene XStack-TopBar auf <$gtSm
  • apps/web/src/routes/einstellungen-layout.tsx:39-50 — eigene YStack-Sidebar auf $gtSm
  • apps/web/src/routes/layout.tsx — globaler Drawer/Sidebar weiß nichts vom aktiven Bereich

Lösungsskizze: Layout-Context (z.B. useMatches() aus TanStack Router) im globalen Layout auswerten und bei /einstellungen/* die Nav-Items austauschen. einstellungen-layout.tsx rendert dann nur noch <Outlet />.

Bezug

  • Einführung: #336 (App-Shell-Refactor)
  • Verwandt: #347 (Web-Drawer als Bottom-Sheet) — beide Drawer-Refactor sollten zusammen passieren
  • Parität: Mobile-App (#332 Todo-Drawer-Pattern) — Drawer-Kapern wäre dort äquivalent zu prüfen, falls Settings-Bereich auf Mobile dasselbe Symptom zeigt
## Beobachtetes Verhalten Im `/einstellungen/*`-Bereich erscheinen die Settings-Items (Mailkonten, Mail-Tags, Geschäfte) als **horizontale Tab-Leiste oben** in der Page. Der globale Drawer (Hamburger) zeigt unverändert die Top-Level-Items (Einkaufen, Todo, Listen, Mail, …). Auf Desktop existieren dadurch **zwei Sidebars nebeneinander**: globale Nav links + Settings-Nav 220 px daneben. ## Erwartetes Verhalten Wenn der User im Einstellungs-Bereich ist, **kapert** der Drawer/die Sidebar die Einstellungs-Items: - Auf Mobile: Hamburger → öffnet Drawer, Drawer zeigt **Settings-Items** (statt Top-Level-Items). Optional: oben im Drawer ein „← Zurück"-Eintrag, der zur Top-Level-Nav zurückkehrt. - Auf Desktop: linke Sidebar zeigt Settings-Items statt Top-Level-Items. Keine zweite Sidebar. - Keine separate Top-/Side-Bar in der Settings-Page — Einstellungs-Page nutzt die volle Content-Breite. Das war die ursprüngliche Intention von #336 („damit Einstellungen nicht die Menü-Einträge bei der normalen Nutzung mischen") — aktuell sind sie aber gemischt sichtbar. ## Reproduktion 1. App im Mobile-Viewport öffnen (`app.mrrm.de`) 2. Profil-Menü → „Einstellungen" → landet auf `/einstellungen/mail` 3. Settings-Items (Mailkonten / Mail-Tags / Geschäfte) erscheinen als horizontale Leiste oben 4. Hamburger antippen → Drawer zeigt weiter Einkaufen/Todo/Listen/Mail/Archiv/Pakete ## Umgebung - App: **web** - Version / Commit: aktueller `main` (post-#336) - OS / Browser / Device: Android, Vivaldi auf `app.mrrm.de` ## Code-Hinweis - `apps/web/src/routes/einstellungen-layout.tsx:26-37` — eigene `XStack`-TopBar auf `<$gtSm` - `apps/web/src/routes/einstellungen-layout.tsx:39-50` — eigene `YStack`-Sidebar auf `$gtSm` - `apps/web/src/routes/layout.tsx` — globaler Drawer/Sidebar weiß nichts vom aktiven Bereich **Lösungsskizze:** Layout-Context (z.B. `useMatches()` aus TanStack Router) im globalen Layout auswerten und bei `/einstellungen/*` die Nav-Items austauschen. `einstellungen-layout.tsx` rendert dann nur noch `<Outlet />`. ## Bezug - Einführung: #336 (App-Shell-Refactor) - Verwandt: #347 (Web-Drawer als Bottom-Sheet) — beide Drawer-Refactor sollten zusammen passieren - Parität: Mobile-App (#332 Todo-Drawer-Pattern) — Drawer-Kapern wäre dort äquivalent zu prüfen, falls Settings-Bereich auf Mobile dasselbe Symptom zeigt
Collaborator

PM-Housekeeping: Fix wurde bereits am 2026-05-20 via PR #358 (Commit a1433f2) auf main gemerged und ist seitdem in Prod ausgerollt. Issue wurde nur nicht automatisch geschlossen weil der Commit-Title fix(#348): statt Fixes #348 verwendet.

Schließe als verifiziert-implementiert. Falls bei dir lokal das Verhalten noch nicht funktioniert: bitte App-Cache leeren und neu laden — wieder öffnen wenn der Bug reproduzierbar bleibt.

**PM-Housekeeping:** Fix wurde bereits am 2026-05-20 via PR #358 (Commit `a1433f2`) auf `main` gemerged und ist seitdem in Prod ausgerollt. Issue wurde nur nicht automatisch geschlossen weil der Commit-Title `fix(#348):` statt `Fixes #348` verwendet. Schließe als verifiziert-implementiert. Falls bei dir lokal das Verhalten noch nicht funktioniert: bitte App-Cache leeren und neu laden — wieder öffnen wenn der Bug reproduzierbar bleibt.
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
admin-mrrm/mrrmlabapp#348
No description provided.