From f49ad8eff4abfdc15e00dea3dbaa401b2b8585d8 Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Wed, 19 Aug 2026 18:47:46 +0200 Subject: [PATCH] refactor(webui): adopt semantic workspace actions --- webui/src/features/workflow/WorkflowPage.tsx | 91 ++++++++++---------- 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/webui/src/features/workflow/WorkflowPage.tsx b/webui/src/features/workflow/WorkflowPage.tsx index cd98c29..9dda5d1 100644 --- a/webui/src/features/workflow/WorkflowPage.tsx +++ b/webui/src/features/workflow/WorkflowPage.tsx @@ -14,7 +14,6 @@ import { GitFork, ListChecks, Plus, - RefreshCw, RotateCcw, Save, Settings2, @@ -23,7 +22,7 @@ import { } from "lucide-react"; import { ReactFlowProvider } from "@xyflow/react"; import { useSearchParams } from "react-router"; -import { ToolbarGroup, ActionToolbar, +import { ActionToolbar, Button, ConfirmDialog, ContentGrid, @@ -46,6 +45,7 @@ import { ToolbarGroup, ActionToolbar, StatePanel, StatusBadge, ToggleSwitch, + WorkspaceActionBar, WorkspaceFrame, WorkspaceLayout, hasScope, @@ -111,7 +111,7 @@ export default function WorkflowPage({ settings: ApiSettings; auth: AuthInfo; }) { - const { requestNavigation } = useUnsavedChanges(); + const { requestDiscard, requestNavigation } = useUnsavedChanges(); const [searchParams, setSearchParams] = useSearchParams(); const requestedDefinitionId = searchParams.get("definition"); const requestedRunId = searchParams.get("run"); @@ -606,20 +606,13 @@ export default function WorkflowPage({ contentLabel="Workflow editor" contentClassName="workflow-workspace" primary={<> - - Workflows - - - } - variant="ghost" - onClick={() => void reload(draft?.id)} - disabled={loading || working} - /> + void reload(draft?.id), loading: loading || working }} + contextActions={<> + Workflows {hasScope(auth, "workflow:instance:admin") ? ( ) : null} - } + helpAction={} + createAction={} variant="primary" onClick={createNew} disabled={!canWrite} disabledReason={!canWrite ? "Workflow definition write permission is required." : undefined} - /> - - + />} + /> {draft && displayedGraph ? ( <> - - + - - + } + primaryActions={ {draft.id ? (