diff --git a/packages/serverless-workflow-diagram-editor/src/react-flow/diagram/Diagram.css b/packages/serverless-workflow-diagram-editor/src/react-flow/diagram/Diagram.css index 42d7c67..2e588e7 100644 --- a/packages/serverless-workflow-diagram-editor/src/react-flow/diagram/Diagram.css +++ b/packages/serverless-workflow-diagram-editor/src/react-flow/diagram/Diagram.css @@ -402,6 +402,57 @@ } /* end validation errors */ + + .dec-start-end-node { + position: relative; + display: flex; + justify-content: center; + align-items: center; + } + + .dec-start-node, + .dec-end-node { + width: 72px; + height: 72px; + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; + position: relative; + background: var(--color-background, white); + } + + .dec-start-node { + border: 1px solid #aea6a6; + background-color: #f2f2f2; + } + + .dec-end-node { + border: 1px solid #aea6a6; + background-color: #e7e3e3; + } + + .dec-end-node-inner { + position: absolute; + inset: 6px; + border-radius: 50%; + border: 1px solid #aea6a6; + background-color: #e7e3e3; + pointer-events: none; + } + + .dec-start-end-node.selected .dec-start-node { + box-shadow: 0 0 0 4px rgba(209, 204, 204, 0.3); + } + + .dec-start-end-node.selected .dec-end-node { + box-shadow: 0 0 0 4px rgba(209, 204, 204, 0.3); + } + + .dec-start-node:hover, + .dec-end-node:hover { + box-shadow: 0 0 0 4px rgba(209, 204, 204, 0.3); + } } /* custom edges */ diff --git a/packages/serverless-workflow-diagram-editor/src/react-flow/nodes/Nodes.tsx b/packages/serverless-workflow-diagram-editor/src/react-flow/nodes/Nodes.tsx index 9a9efe6..c676b5e 100644 --- a/packages/serverless-workflow-diagram-editor/src/react-flow/nodes/Nodes.tsx +++ b/packages/serverless-workflow-diagram-editor/src/react-flow/nodes/Nodes.tsx @@ -182,26 +182,18 @@ function TerminalNodeContent({ id, type }: { id: string; type: TerminalNodeType ); } -// TODO: These props are just a placeholder -interface PlaceholderProps { - id: string; - data: BaseNodeData; - selected: boolean; - type: string; -} - -// TODO: This content is just a placeholder -function PlaceholderContent({ id, data, selected, type }: PlaceholderProps) { +function StartEndNode({ id, data, selected, type }: NodeContentProps) { + const isStart = type === GraphNodeType.Start; return (