import { select<% if (isTS) { %>, Selection<% } %> } from 'd3-selection'; import React, { useEffect, useRef } from 'react'; import styles from './styles.scss'; <% if (isTS) { %> type <%= className %>Props = { color?: string; } <% } %> const <%= className %><% if (isTS) { %>: React.FC<<%= className %>Props><% } %> = ({ color = 'black' }) => { const root = useRef<% if (isTS) { %><% } %>(null); const svg = useRef<% if (isTS) { %> | null><% } %>(null); const g = useRef<% if (isTS) { %> | null><% } %>(null); const rect = useRef<% if (isTS) { %> | null><% } %>(null); useEffect(() => { svg.current = select(root.current) .append('svg') .attr('width', 400) .attr('height', 300); g.current = svg.current.append('g'); rect.current = g.current .append('rect') .attr('x', 0) .attr('y', 0) .attr('rx', 3) .attr('ry', 3) .attr('width', '100%') .attr('height', '100%'); }, []); useEffect(() => { if (!g.current) { return; } g.current.attr('fill', color); }, [color]); return
; }; export default <%= className %>;