import React, { useEffect, useState } from "react"; import { Handle, Position, useReactFlow } from "reactflow"; const ImageViewerNode = ({ id, data }) => { const { getEdges } = useReactFlow(); const [imageBase64, setImageBase64] = useState(""); const [selectedType, setSelectedType] = useState("base64"); // Watch upstream value useEffect(() => { const interval = setInterval(() => { const edges = getEdges(); const inputEdge = edges.find(e => e.target === id); if (inputEdge) { const sourceId = inputEdge.source; const valueBus = window.BorealisValueBus || {}; const value = valueBus[sourceId]; if (typeof value === "string") { setImageBase64(value); } } }, 1000); return () => clearInterval(interval); }, [id, getEdges]); return (
Image Viewer
{imageBase64 ? ( Live ) : (
Waiting for image...
)}
); }; export default { type: "Image_Viewer", label: "Image Viewer", description: "Displays base64 image pulled from ValueBus of upstream node.", content: "Visual preview of base64 image", component: ImageViewerNode };