darabos commited on
Commit
0ac2628
·
1 Parent(s): 8827b1e

Automatically resize charts. #52

Browse files
lynxkite-app/web/src/workspace/nodes/NodeWithVisualization.tsx CHANGED
@@ -10,20 +10,28 @@ const NodeWithVisualization = (props: any) => {
10
  if (!opts || !chartsRef.current) return;
11
  chartsInstanceRef.current = echarts.init(chartsRef.current, null, {
12
  renderer: "canvas",
13
- width: 250,
14
- height: 250,
15
  });
16
  chartsInstanceRef.current.setOption(opts);
17
- const onResize = () => chartsInstanceRef.current?.resize();
18
- window.addEventListener("resize", onResize);
 
 
 
 
 
 
19
  return () => {
20
- window.removeEventListener("resize", onResize);
21
  chartsInstanceRef.current?.dispose();
22
  };
23
  }, [props.data?.display?.value]);
 
 
24
  return (
25
- <NodeWithParams collapsed {...props}>
26
- <div className="box" draggable={false} ref={chartsRef} />
27
  </NodeWithParams>
28
  );
29
  };
 
10
  if (!opts || !chartsRef.current) return;
11
  chartsInstanceRef.current = echarts.init(chartsRef.current, null, {
12
  renderer: "canvas",
13
+ width: "auto",
14
+ height: "auto",
15
  });
16
  chartsInstanceRef.current.setOption(opts);
17
+ const resizeObserver = new ResizeObserver(() => {
18
+ const e = chartsRef.current!;
19
+ e.style.padding = "1px";
20
+ chartsInstanceRef.current?.resize();
21
+ e.style.padding = "0";
22
+ });
23
+ const observed = chartsRef.current;
24
+ resizeObserver.observe(observed);
25
  return () => {
26
+ resizeObserver.unobserve(observed);
27
  chartsInstanceRef.current?.dispose();
28
  };
29
  }, [props.data?.display?.value]);
30
+ const nodeStyle = { display: "flex", flexDirection: "column" };
31
+ const vizStyle = { flex: 1 };
32
  return (
33
+ <NodeWithParams nodeStyle={nodeStyle} collapsed {...props}>
34
+ <div style={vizStyle} ref={chartsRef} />
35
  </NodeWithParams>
36
  );
37
  };