react port of commits graph for SVG and canvas