From 4bf6677bc5e5a921a20c6b5966809be6cd935a28 Mon Sep 17 00:00:00 2001 From: Ida Date: Wed, 13 May 2026 15:00:06 +0200 Subject: [PATCH] fix: clean header --- .../editor/Automation2FlowEditor.module.css | 105 ++--- .../editor/Automation2FlowEditor.tsx | 69 +--- .../FlowEditor/editor/CanvasHeader.test.tsx | 99 ----- .../FlowEditor/editor/CanvasHeader.tsx | 367 +++++++----------- .../editor/WorkflowConfigurationModal.tsx | 123 ------ src/components/UiComponents/Button/Button.tsx | 7 +- 6 files changed, 189 insertions(+), 581 deletions(-) delete mode 100644 src/components/FlowEditor/editor/CanvasHeader.test.tsx delete mode 100644 src/components/FlowEditor/editor/WorkflowConfigurationModal.tsx diff --git a/src/components/FlowEditor/editor/Automation2FlowEditor.module.css b/src/components/FlowEditor/editor/Automation2FlowEditor.module.css index 93a064f..02e13e9 100644 --- a/src/components/FlowEditor/editor/Automation2FlowEditor.module.css +++ b/src/components/FlowEditor/editor/Automation2FlowEditor.module.css @@ -256,27 +256,28 @@ background: var(--bg-primary, #fff); } -/* Toolbar: context (load + name) is fluid with ellipsis; actions stay right-aligned. */ +/* Single toolbar row (all controls in one flex wrap). */ .canvasHeaderRow { - display: grid; - grid-template-columns: minmax(0, 1fr) auto; - gap: 0.75rem; - align-items: center; width: 100%; } -@media (max-width: 900px) { - .canvasHeaderRow { - grid-template-columns: 1fr; - } +.canvasHeaderToolbar { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.4rem; + width: 100%; + padding: 0.35rem 0.5rem; + border-radius: 8px; + border: 1px solid var(--border-color, #e0e0e0); + background: var(--bg-secondary, #f8f9fa); + box-sizing: border-box; } -.canvasHeaderContext { - display: flex; - align-items: center; - gap: 0.5rem; - min-width: 0; - flex: 1; +/* .retryButton sets margin-top for legacy error stacks — not wanted in the toolbar. */ +.canvasHeaderToolbar :global(button), +.canvasHeaderToolbar label { + margin-top: 0; } /* Closed = ({ workflows, ))} -
- {currentWorkflowId && currentWorkflow ? ( - editingName ? ( - setNameValue(e.target.value)} - onBlur={_commitNameEdit} - onKeyDown={(e) => { if (e.key === 'Enter') _commitNameEdit(); if (e.key === 'Escape') setEditingName(false); }} - /> - ) : ( -

- {currentWorkflow.label} -

- ) - ) : ( -

- {t('Neuer Workflow')} -

- )} -
- {onWorkflowSettings && ( - - )} - {targetInstanceOptions && targetInstanceOptions.length > 0 && onTargetInstanceChange && ( - - )} - - -
-
-
- - -
- {newMenuOpen && ( -
- - {onNewFromTemplate && ( - - )} -
- )} -
- - - - {onAutoLayout && ( - - )} - + onClick={onSave} + title={!hasNodes ? t('Workflow ist leer — Speichern legt einen leeren Workflow an.') : t('Speichern')} + aria-label={t('Speichern')} + /> + + {t('Als Vorlage')} + {templateMenuOpen && (
{(['user', 'instance', 'mandate'] as const).map((s) => ( @@ -325,7 +272,10 @@ export const CanvasHeader: React.FC = ({ workflows, key={s} type="button" className={styles.canvasHeaderMenuItem} - onClick={() => { onSaveAsTemplate(s); setTemplateMenuOpen(false); }} + onClick={() => { + onSaveAsTemplate(s); + setTemplateMenuOpen(false); + }} role="menuitem" > {scopeLabels[s]} @@ -336,53 +286,6 @@ export const CanvasHeader: React.FC = ({ workflows,
)} - - {onToggleChat && ( - - )} {_isSysAdmin && onVerboseSchemaChange && (