Skip to content

Commit bdcac3e

Browse files
authored
Add Minimap/Graph toggle to dependencies panel in developer panel (#7976)
1 parent 6820ce7 commit bdcac3e

File tree

1 file changed

+46
-10
lines changed

1 file changed

+46
-10
lines changed

‎frontend/src/components/editor/chrome/panels/dependency-graph-panel.tsx‎

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,66 @@
11
/* Copyright 2026 Marimo. All rights reserved. */
22

33
import type React from "react";
4+
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
45
import { useCellDataAtoms, useCellIds } from "@/core/cells/cells";
56
import { useVariables } from "@/core/variables/state";
67
import { cn } from "@/utils/cn";
78
import { DependencyGraph } from "../../../dependency-graph/dependency-graph";
89
import { MinimapContent } from "../../../dependency-graph/minimap-content";
910
import { useDependencyPanelTab } from "../wrapper/useDependencyPanelTab";
11+
import { usePanelSection } from "./panel-context";
1012

1113
const DependencyGraphPanel: React.FC = () => {
12-
const { dependencyPanelTab } = useDependencyPanelTab();
14+
const { dependencyPanelTab, setDependencyPanelTab } = useDependencyPanelTab();
1315
const variables = useVariables();
1416
const cellIds = useCellIds();
1517
const [cells] = useCellDataAtoms();
18+
const panelSection = usePanelSection();
19+
20+
// Show toggle inside panel when in developer panel (horizontal layout)
21+
// since the sidebar has its own header with the toggle
22+
const showInlineToggle = panelSection === "developer-panel";
1623

1724
return (
18-
<div className={cn("w-full h-full flex-1 mx-auto -mb-4 relative")}>
19-
{dependencyPanelTab === "minimap" ? (
20-
<MinimapContent />
21-
) : (
22-
<DependencyGraph
23-
cellAtoms={cells}
24-
variables={variables}
25-
cellIds={cellIds.inOrderIds}
26-
/>
25+
<div className={cn("w-full h-full flex-1 mx-auto -mb-4 flex flex-col")}>
26+
{showInlineToggle && (
27+
<div className="p-2 shrink-0">
28+
<Tabs
29+
value={dependencyPanelTab}
30+
onValueChange={(value) => {
31+
if (value === "minimap" || value === "graph") {
32+
setDependencyPanelTab(value);
33+
}
34+
}}
35+
>
36+
<TabsList>
37+
<TabsTrigger
38+
value="minimap"
39+
className="py-0.5 text-xs uppercase tracking-wide font-bold"
40+
>
41+
Minimap
42+
</TabsTrigger>
43+
<TabsTrigger
44+
value="graph"
45+
className="py-0.5 text-xs uppercase tracking-wide font-bold"
46+
>
47+
Graph
48+
</TabsTrigger>
49+
</TabsList>
50+
</Tabs>
51+
</div>
2752
)}
53+
<div className="flex-1 min-h-0 relative">
54+
{dependencyPanelTab === "minimap" ? (
55+
<MinimapContent />
56+
) : (
57+
<DependencyGraph
58+
cellAtoms={cells}
59+
variables={variables}
60+
cellIds={cellIds.inOrderIds}
61+
/>
62+
)}
63+
</div>
2864
</div>
2965
);
3066
};

0 commit comments

Comments
 (0)