diff --git a/src/routes/v2/pages/Editor/nodes/TaskNode/context/TaskDetails/TaskDetails.tsx b/src/routes/v2/pages/Editor/nodes/TaskNode/context/TaskDetails/TaskDetails.tsx index 947739fac..312baa593 100644 --- a/src/routes/v2/pages/Editor/nodes/TaskNode/context/TaskDetails/TaskDetails.tsx +++ b/src/routes/v2/pages/Editor/nodes/TaskNode/context/TaskDetails/TaskDetails.tsx @@ -2,11 +2,15 @@ import { observer } from "mobx-react-lite"; import { useEffect, useState } from "react"; import { StackingControls } from "@/components/shared/ReactFlow/FlowControls/StackingControls"; +import { + Collapsible, + CollapsibleContent, + CollapsibleTrigger, +} from "@/components/ui/collapsible"; import { ColorPicker } from "@/components/ui/color"; import { Icon } from "@/components/ui/icon"; import { BlockStack, InlineStack } from "@/components/ui/layout"; import { Separator } from "@/components/ui/separator"; -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Heading, Text } from "@/components/ui/typography"; import { AnnotationsBlock } from "@/routes/v2/pages/Editor/components/AnnotationsBlock/AnnotationsBlock"; import { useEditorSession } from "@/routes/v2/pages/Editor/store/EditorSessionContext"; @@ -23,8 +27,6 @@ import { TaskArgumentsEditor } from "./components/TaskArgumentsEditor"; import { useTaskConfigActions } from "./components/useTaskConfigActions"; import { useTask } from "./hooks/useTask"; -const TAB_CONTENT_CLASS = "overflow-y-auto w-full px-4 py-4 pr-5"; - interface TaskDetailsProps { entityId: string; } @@ -39,13 +41,14 @@ export const TaskDetails = observer(function TaskDetails({ const task = useTask(entityId); const { focusedArgumentName } = editor; - const [activeTab, setActiveTab] = useState("arguments"); + const [argumentsOpen, setArgumentsOpen] = useState(true); + const [configOpen, setConfigOpen] = useState(true); useEffect(() => { - if (focusedArgumentName && activeTab !== "arguments") { - setActiveTab("arguments"); + if (focusedArgumentName && !argumentsOpen) { + setArgumentsOpen(true); } - }, [focusedArgumentName, activeTab]); + }, [focusedArgumentName, argumentsOpen]); if (!spec || !task) { return null; @@ -103,66 +106,89 @@ export const TaskDetails = observer(function TaskDetails({ /> - {/* ── Tabs ── */} - - - - - Arguments - - - - Config - - - + {/* ── Sections ── */} + {/* ── Arguments ── */} - - - - Inputs - - - - - Outputs - + + + + + + Arguments + + + + + + + + Inputs + + + + + Outputs + + - - + + {/* ── Configuration ── */} - - - - - Task color + + + + + + Config - - - - - - - - - - - - + + + + + + + Task color + + + + + + + + + + + + + + + ); });