diff --git a/webui/src/features/dataflow/DataflowPage.tsx b/webui/src/features/dataflow/DataflowPage.tsx index ff8036e..699866b 100644 --- a/webui/src/features/dataflow/DataflowPage.tsx +++ b/webui/src/features/dataflow/DataflowPage.tsx @@ -26,7 +26,7 @@ import { TriangleAlert, Upload } from "lucide-react"; -import { DialogSection, ToolbarGroup, ActionToolbar, +import { DialogSection, ActionToolbar, ActionBlockerHint, Button, ConfirmDialog, @@ -51,6 +51,7 @@ import { DialogSection, ToolbarGroup, ActionToolbar, StatePanel, StatusBadge, ToggleSwitch, + WorkspaceActionBar, WorkspaceFrame, WorkspaceLayout, hasScope, @@ -608,27 +609,21 @@ export default function DataflowPage({ settings, auth }: { settings: ApiSettings contentLabel="Pipeline editor" contentClassName="dataflow-workspace" primary={<> - - Pipelines - - } - variant="ghost" - onClick={() => requestNavigation(() => void loadPipelines(draft?.id))} - disabled={loading} - disabledReason={loading ? DATAFLOW_I18N.loading : undefined} - /> - } - variant="primary" - onClick={createNew} - disabled={!canWrite} - disabledReason={!canWrite ? DATAFLOW_I18N.writeReason : undefined} - /> - - + void loadPipelines(draft?.id), loading, label: "Refresh pipelines" }} + contextActions={Pipelines} + createAction={} + variant="primary" + onClick={createNew} + disabled={!canWrite} + disabledReason={!canWrite ? DATAFLOW_I18N.writeReason : undefined} + />} + /> {draft ? ( <> - -
+ -
-
- +
} + helpAction={} + primaryActions={
ariaLabel="Pipeline editor mode" options={[ @@ -777,50 +776,28 @@ export default function DataflowPage({ settings, auth }: { settings: ApiSettings disabledReason={!canViewTriggers ? DATAFLOW_I18N.writeReason : undefined} /> ) : null} +
} + destructiveActions={draft.id ? ( } - variant="ghost" - onClick={() => requestDiscard(() => undefined)} - disabled={!dirty || saving} - disabledReason={ - saving - ? DATAFLOW_I18N.working - : !dirty - ? DATAFLOW_I18N.noChanges - : undefined - } + label="Delete pipeline" + icon={} + variant="danger" + onClick={() => setDeleteOpen(true)} + disabled={!canEdit || saving} + disabledReason={saving ? DATAFLOW_I18N.working : !canEdit ? editBlockedReason : undefined} /> - {draft.id ? ( - } - variant="danger" - onClick={() => setDeleteOpen(true)} - disabled={!canEdit || saving} - disabledReason={ - saving ? DATAFLOW_I18N.working : !canEdit ? editBlockedReason : undefined - } - /> - ) : null} - - -
+ ) : undefined} + discardAction={{ + label: <> Discard, + onClick: () => requestDiscard(() => undefined) + }} + saveAction={{ + label: <> {saving ? "Saving..." : "Save"}, + onClick: () => void saveDraft(), + disabled: working || !canEdit, + disabledReason: working ? DATAFLOW_I18N.working : !canEdit ? editBlockedReason : undefined + }} + /> {error ? ( {error} ) : null}