From 74d1577bd8446f039ee288dd669116534298dc1f Mon Sep 17 00:00:00 2001 From: kelle Date: Mon, 20 Jul 2026 22:28:48 +0200 Subject: [PATCH] Sidebar: Szenario-Baum standardmaessig eingeklappt, gleichmaessig eingerueckt "Szenarien" bekommt ein Chevron: der Baum ist per Default zu und wird aktiv aufgeklappt; das Label fuehrt weiterhin in die Szenario-Liste. Der Baum wird flach dargestellt -- alle Szenarien gleich eingerueckt, Basisszenario zuoberst. Die Herkunfts-Verschachtelung zeigt weiterhin die Szenario-Liste (Spalte "aus ..."). Co-Authored-By: Claude Opus 4.8 --- src/components/AppShell.tsx | 126 +++++++++++++++++++----------------- 1 file changed, 68 insertions(+), 58 deletions(-) diff --git a/src/components/AppShell.tsx b/src/components/AppShell.tsx index 1b666c3..165964b 100644 --- a/src/components/AppShell.tsx +++ b/src/components/AppShell.tsx @@ -4,6 +4,8 @@ import { useCallback, useEffect, useMemo, useState } from "react"; import { BarChart3, BookOpen, + ChevronDown, + ChevronRight, Copy, Dices, FileText, @@ -104,6 +106,8 @@ function AppShellInner({ username }: { username: string }) { const [showActuals, setShowActuals] = useState(false); // Plan-Ebene: Dashboard / Szenarien-Liste / Analysen. Null = kein Plan-View aktiv. const [planNav, setPlanNav] = useState<{ planId: string; tab: "dashboard" | "scenarios" | "analyses" } | null>(null); + // Welche Szenario-Bäume in der Seitenleiste aufgeklappt sind. Standard: eingeklappt. + const [expandedTrees, setExpandedTrees] = useState>({}); const [savedAnalysisId, setSavedAnalysisId] = useState(null); const [showSystemParams, setShowSystemParams] = useState(false); const [showPlanTraces, setShowPlanTraces] = useState(false); @@ -378,18 +382,40 @@ function AppShellInner({ username }: { username: string }) { - {/* Unter-Menüpunkte, leicht eingezogen. */} - {subItem("scenarios", "Szenarien", Layers)} - {/* Der Szenario-Baum bleibt darunter -- ein Klick führt direkt in die Matrix. */} - + {/* «Szenarien»: Chevron klappt den Baum auf/zu (Standard: zu), das Label führt + in die Szenario-Liste. */} +
+ + +
+ {/* Der Baum erscheint nur aufgeklappt -- alle Szenarien gleich eingerückt. */} + {expandedTrees[p.id] && ( + + )} + + + + {!s.isBase && ( - {!s.isBase && ( - - )} - - + )} ))}