diff --git a/packages/vx-hierarchy/src/DefaultLink.js b/packages/vx-hierarchy/src/DefaultLink.js new file mode 100644 index 000000000..aa7cae506 --- /dev/null +++ b/packages/vx-hierarchy/src/DefaultLink.js @@ -0,0 +1,15 @@ +import React from "react"; + +export default function DefaultLink({ link }) { + return ( + + ); +} diff --git a/packages/vx-hierarchy/src/DefaultNode.js b/packages/vx-hierarchy/src/DefaultNode.js new file mode 100644 index 000000000..2dc91862b --- /dev/null +++ b/packages/vx-hierarchy/src/DefaultNode.js @@ -0,0 +1,5 @@ +import React from "react"; + +export default function DefaultNode({ node }) { + return ; +} diff --git a/packages/vx-hierarchy/src/hierarchies/Cluster.js b/packages/vx-hierarchy/src/hierarchies/Cluster.js index 44a2102c3..4011627f6 100644 --- a/packages/vx-hierarchy/src/hierarchies/Cluster.js +++ b/packages/vx-hierarchy/src/hierarchies/Cluster.js @@ -1,7 +1,9 @@ -import React from 'react'; -import cx from 'classnames'; -import { Group } from '@vx/group'; -import { cluster as d3cluster } from 'd3-hierarchy'; +import React from "react"; +import cx from "classnames"; +import { Group } from "@vx/group"; +import { cluster as d3cluster } from "d3-hierarchy"; +import DefaultLink from "../DefaultLink"; +import DefaultNode from "../DefaultNode"; export default function Cluster({ top, @@ -11,8 +13,8 @@ export default function Cluster({ size, nodeSize, separation, - linkComponent, - nodeComponent, + linkComponent = DefaultLink, + nodeComponent = DefaultNode, ...restProps }) { const cluster = d3cluster(); @@ -23,21 +25,23 @@ export default function Cluster({ const links = data.links(); const descendants = root.descendants(); return ( - - {linkComponent && links.map((link, i) => { - return ( - - {React.createElement(linkComponent, { link })} - - ); - })} - {nodeComponent && descendants.map((node, i) => { - return ( - - {React.createElement(nodeComponent, { node })} - - ); - })} + + {linkComponent && + links.map((link, i) => { + return ( + + {React.createElement(linkComponent, { link })} + + ); + })} + {nodeComponent && + descendants.map((node, i) => { + return ( + + {React.createElement(nodeComponent, { node })} + + ); + })} ); -} \ No newline at end of file +} diff --git a/packages/vx-hierarchy/src/hierarchies/Tree.js b/packages/vx-hierarchy/src/hierarchies/Tree.js index 3ca1eb7f6..5e45821d4 100644 --- a/packages/vx-hierarchy/src/hierarchies/Tree.js +++ b/packages/vx-hierarchy/src/hierarchies/Tree.js @@ -1,7 +1,9 @@ -import React from 'react'; -import cx from 'classnames'; -import { Group } from '@vx/group'; -import { tree as d3tree } from 'd3-hierarchy'; +import React from "react"; +import cx from "classnames"; +import { Group } from "@vx/group"; +import { tree as d3tree } from "d3-hierarchy"; +import DefaultLink from "../DefaultLink"; +import DefaultNode from "../DefaultNode"; export default function Tree({ top, @@ -11,8 +13,8 @@ export default function Tree({ size, nodeSize, separation, - linkComponent, - nodeComponent, + linkComponent = DefaultLink, + nodeComponent = DefaultNode, ...restProps }) { const tree = d3tree(); @@ -23,21 +25,23 @@ export default function Tree({ const links = data.links(); const descendants = root.descendants(); return ( - - {linkComponent && links.map((link, i) => { - return ( - - {React.createElement(linkComponent, { link })} - - ); - })} - {nodeComponent && descendants.map((node, i) => { - return ( - - {React.createElement(nodeComponent, { node })} - - ); - })} + + {linkComponent && + links.map((link, i) => { + return ( + + {React.createElement(linkComponent, { link })} + + ); + })} + {nodeComponent && + descendants.map((node, i) => { + return ( + + {React.createElement(nodeComponent, { node })} + + ); + })} ); -} \ No newline at end of file +} diff --git a/packages/vx-hierarchy/src/index.js b/packages/vx-hierarchy/src/index.js index 5ab369194..927db6b9c 100644 --- a/packages/vx-hierarchy/src/index.js +++ b/packages/vx-hierarchy/src/index.js @@ -1,2 +1,4 @@ -export { default as Tree } from './hierarchies/Tree'; -export { default as Cluster } from './hierarchies/Cluster'; +export { default as Tree } from "./hierarchies/Tree"; +export { default as Cluster } from "./hierarchies/Cluster"; +export { default as DefaultLink } from "./DefaultLink"; +export { default as DefaultNode } from "./DefaultNode"; diff --git a/packages/vx-hierarchy/test/Defaults.test.js b/packages/vx-hierarchy/test/Defaults.test.js new file mode 100644 index 000000000..826acf93b --- /dev/null +++ b/packages/vx-hierarchy/test/Defaults.test.js @@ -0,0 +1,13 @@ +import { DefaultLink, DefaultNode } from "../src"; + +describe("", () => { + test("it should be defined", () => { + expect(DefaultLink).toBeDefined(); + }); +}); + +describe("", () => { + test("it should be defined", () => { + expect(DefaultNode).toBeDefined(); + }); +});