From 552f35194964a5b851a7210785ba9ac1adf371b2 Mon Sep 17 00:00:00 2001 From: dvirlabs Date: Fri, 11 Jul 2025 19:34:04 +0300 Subject: [PATCH] Add more node type --- frontend/src/components/ColorNode.jsx | 26 ++++++++++++++++++++++++++ frontend/src/components/Diagram.jsx | 4 ++++ frontend/src/components/RouterNode.jsx | 14 ++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 frontend/src/components/ColorNode.jsx create mode 100644 frontend/src/components/RouterNode.jsx diff --git a/frontend/src/components/ColorNode.jsx b/frontend/src/components/ColorNode.jsx new file mode 100644 index 0000000..8eafab3 --- /dev/null +++ b/frontend/src/components/ColorNode.jsx @@ -0,0 +1,26 @@ +import { Handle, Position } from 'reactflow'; + +function ColorNode({ data }) { + return ( +
+ +
🎨 Shape Color
+ data.onChange?.(e.target.value)} + style={{ width: '100%' }} + /> + +
+ ); +} + +export default ColorNode; diff --git a/frontend/src/components/Diagram.jsx b/frontend/src/components/Diagram.jsx index 9b8e518..a5c1165 100644 --- a/frontend/src/components/Diagram.jsx +++ b/frontend/src/components/Diagram.jsx @@ -17,10 +17,13 @@ import CustomNode from './CustomNode'; import IconSelector from './IconSelector'; import { toast } from 'react-toastify'; import RouterNode from './RouterNode'; +import ColorNode from './ColorNode'; + const nodeTypes = { custom: CustomNode, router: RouterNode, + color: ColorNode, }; function Diagram() { @@ -296,6 +299,7 @@ function Diagram() { > + {newType === 'custom' && ( diff --git a/frontend/src/components/RouterNode.jsx b/frontend/src/components/RouterNode.jsx new file mode 100644 index 0000000..b41e794 --- /dev/null +++ b/frontend/src/components/RouterNode.jsx @@ -0,0 +1,14 @@ +// components/RouterNode.js +import { Handle, Position } from 'reactflow'; + +function RouterNode({ data }) { + return ( +
+ +
📡 {data.label}
+ +
+ ); +} + +export default RouterNode;