ReactD3 = ({data}) => {
const ref = useD3(root => {
root.selectAll("div")
.data(data, d => d)
.join(
enter => enter
.append("div")
.style("position", "absolute")
.style("transform", (d, i) => `translate(${i * 50}px,-50px)`)
.style("opacity", 0)
.style("font-size", "50px")
.style("line-height", 1)
.text(d => d),
update => update,
exit => exit
.call(exit =>
exit.transition()
.duration(1000)
.delay((d, i) => i * 100)
.style("transform", (d,i) => `translate(${i * 50}px,50px)`)
.style("opacity", 0)
.remove()
)
)
.transition()
.duration(1000)
.delay((d, i) => i * 100)
.style("transform", (d, i) => `translate(${i * 50}px,0px)`)
.style("opacity", 1);
});
return React.createElement("div", {ref, style: {position: "relative", padding: 50, height: 50}});
}