zack commited on
Commit
0c6bba7
·
1 Parent(s): ac09650

🔧 Update ReactFlow environment setup

Browse files
frontend/src/components/ReactFlow/ReactFlowEnv.js CHANGED
@@ -59,6 +59,26 @@ export default function ReactEnviorment() {
59
  restore();
60
  },[deleteNode, deleteEdge]);
61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  const onNodesChange = useCallback(
63
  (changes) => setNodes((nds) => applyNodeChanges(changes, nds)),
64
  [setNodes]
@@ -202,7 +222,7 @@ export default function ReactEnviorment() {
202
  <button onClick={() => setShowProxmoxForm(true)} className="absolute top-10 right-10 z-50 p-2 bg-green-500 text-white">Add Proxmox VM</button>
203
  <div className={`flex h-screen w-screen ${theme ? "dark" : ""} transition-all`}>
204
  <ReactFlowProvider>
205
- <Navbar onDelete={deleteNodeContains} colour={JSON.parse(localStorage.getItem('colour'))} emoji={JSON.parse(localStorage.getItem('emoji'))}/>
206
  <div className="h-screen w-screen" ref={reactFlowWrapper}>
207
  <ReactFlow nodes={nodes} edges={edges} nodeTypes={NODE} edgeTypes={EDGE} onNodesChange={onNodesChange} onNodesDelete={deleteNode} onEdgesChange={onEdgesChange} onEdgeUpdate={onEdgeUpdate} onConnect={onConnect} onDragOver={onDragOver} onDrop={onDrop} onInit={setReactFlowInstance} connectionLineComponent={CustomLine} fitView>
208
  <Background variant='dots' size={1} className=" bg-white dark:bg-neutral-800"/>
 
59
  restore();
60
  },[deleteNode, deleteEdge]);
61
 
62
+ const handleAddProxmoxVnc = async ({ vmid, node }) => {
63
+ const response = await fetch('http://localhost:5000/api/proxmox/vnc', {
64
+ method: 'POST',
65
+ headers: { 'Content-Type': 'application/json' },
66
+ body: JSON.stringify({ vmid, node }),
67
+ });
68
+ const data = await response.json();
69
+ // Use data.iframe_src to create a new node in React Flow
70
+ };
71
+
72
+ const handleAddEmbed = useCallback((embedData) => {
73
+ const newNode = {
74
+ id: `embed-${nodes.length + 1}`,
75
+ type: 'embed',
76
+ position: reactFlowInstance.project({ x: 0, y: 0 }), // Adjust position as needed
77
+ data: { url: embedData.url, width: embedData.width || '100%', height: embedData.height || '400px' },
78
+ };
79
+ setNodes((nds) => nds.concat(newNode));
80
+ }, [nodes, reactFlowInstance]);
81
+
82
  const onNodesChange = useCallback(
83
  (changes) => setNodes((nds) => applyNodeChanges(changes, nds)),
84
  [setNodes]
 
222
  <button onClick={() => setShowProxmoxForm(true)} className="absolute top-10 right-10 z-50 p-2 bg-green-500 text-white">Add Proxmox VM</button>
223
  <div className={`flex h-screen w-screen ${theme ? "dark" : ""} transition-all`}>
224
  <ReactFlowProvider>
225
+ <Navbar onDelete={deleteNodeContains} colour={JSON.parse(localStorage.getItem('colour'))} emoji={JSON.parse(localStorage.getItem('emoji'))} nodes={nodes}/>
226
  <div className="h-screen w-screen" ref={reactFlowWrapper}>
227
  <ReactFlow nodes={nodes} edges={edges} nodeTypes={NODE} edgeTypes={EDGE} onNodesChange={onNodesChange} onNodesDelete={deleteNode} onEdgesChange={onEdgesChange} onEdgeUpdate={onEdgeUpdate} onConnect={onConnect} onDragOver={onDragOver} onDrop={onDrop} onInit={setReactFlowInstance} connectionLineComponent={CustomLine} fitView>
228
  <Background variant='dots' size={1} className=" bg-white dark:bg-neutral-800"/>