bkrem / react-d3-tree

:deciduous_tree: React component to create interactive D3 tree graphs
https://bkrem.github.io/react-d3-tree
MIT License
1.09k stars 270 forks source link

Added Feature: backgroundGrid #513

Open EtBLh opened 2 weeks ago

EtBLh commented 2 weeks ago

backgroundGrid

I wanted to add a background grid in my existing project that is using react-d3-grid and I found the easiest way is to modify the package itself.

implementation

I used svg <pattern> and and a background <rect fill="url(#grid-pattern)"/> to implement the grid.

usage

there's a new props in <Tree />

backgroundGrid?: {
    type: "dot" | "line" | "custom",
    thickness?: number,
    color?: string,
    gridCellSize?: {width: number, height: number},
    gridCellFunc?: (options?: BackgroundGrid) => ReactElement
}

when backgroundGrid is undefined, grid will not be rendered. there's 2 default type of grid: dot and line

type: custom allows customizing content inside by passing gridCellFunc a function that return a ReactElement(svg elements)

testing

I added unit testing for <BackgroundGrid /> but haven't added testing for zooming, dragging

screenshots