Spaces:
Running
Running
import React, { useEffect } from 'react'; | |
import NodeWithParams from './NodeWithParams'; | |
const echarts = await import('echarts'); | |
const NodeWithVisualization = (props: any) => { | |
const chartsRef = React.useRef<HTMLDivElement>(null); | |
const chartsInstanceRef = React.useRef<echarts.ECharts>(); | |
useEffect(() => { | |
const opts = props.data?.display?.value; | |
if (!opts || !chartsRef.current) return; | |
console.log(chartsRef.current); | |
chartsInstanceRef.current = echarts.init(chartsRef.current, null, { renderer: 'canvas', width: 250, height: 250 }); | |
chartsInstanceRef.current.setOption(opts); | |
const onResize = () => chartsInstanceRef.current?.resize(); | |
window.addEventListener('resize', onResize); | |
return () => { | |
window.removeEventListener('resize', onResize); | |
chartsInstanceRef.current?.dispose(); | |
}; | |
}, [props.data?.display?.value]); | |
return ( | |
<NodeWithParams {...props}> | |
<div className="box" draggable={false} ref={chartsRef} />; | |
</NodeWithParams> | |
); | |
}; | |
export default NodeWithVisualization; | |