diff --git a/packages/network/stories/network.stories.tsx b/packages/network/stories/network.stories.tsx index 3a2b871b6d..4b64da532a 100644 --- a/packages/network/stories/network.stories.tsx +++ b/packages/network/stories/network.stories.tsx @@ -4,11 +4,10 @@ import { withKnobs } from '@storybook/addon-knobs' import { generateNetworkData } from '@nivo/generators' import { Network, - NetworkNodeProps, - NetworkLinkProps, - NetworkNodeTooltipProps, + NodeProps, + LinkProps, + NodeTooltipProps, NetworkSvgProps, - svgDefaultProps, // @ts-ignore } from '../src' @@ -20,21 +19,22 @@ export default { const data = generateNetworkData() -type NodeType = typeof data['nodes'][0] +type Node = typeof data['nodes'][number] +type Link = typeof data['links'][number] -const commonProperties: NetworkSvgProps = { - ...svgDefaultProps, +const commonProperties: NetworkSvgProps = { data, - width: 900, - height: 400, + width: 600, + height: 600, nodeColor: node => node.color, - repulsivity: 6, + repulsivity: 10, iterations: 60, + linkDistance: link => link.distance * 1.3, } -export const Default = () => {...commonProperties} /> +export const Default = () => {...commonProperties} /> -const CustomNodeTooltipComponent = ({ node }: NetworkNodeTooltipProps) => ( +const CustomNodeTooltipComponent = ({ node }: NodeTooltipProps) => (
) > ID: {node.id}
- depth: {node.depth} -
- radius: {node.radius} + size: {node.size}
) export const CustomNodeTooltip = () => ( - {...commonProperties} nodeTooltip={CustomNodeTooltipComponent} /> + {...commonProperties} nodeTooltip={CustomNodeTooltipComponent} /> ) -const CustomNodeComponent = ({ node }: NetworkNodeProps) => ( - - - +const CustomNodeComponent = ({ node }: NodeProps) => ( + + + ) export const CustomNode = () => ( - {...commonProperties} nodeComponent={CustomNodeComponent} /> + {...commonProperties} nodeComponent={CustomNodeComponent} /> ) -const CustomLinkComponent = ({ link }: NetworkLinkProps) => ( +const CustomLinkComponent = ({ link }: LinkProps) => ( ) export const CustomLink = () => ( - {...commonProperties} linkComponent={CustomLinkComponent} /> + + {...commonProperties} + linkThickness={link => 2 + link.target.data.height * 2} + linkComponent={CustomLinkComponent} + /> ) export const OnClickHandler = () => ( - {...commonProperties} onClick={action('onClick')} /> + {...commonProperties} onClick={action('onClick')} /> ) diff --git a/packages/network/stories/networkCanvas.stories.tsx b/packages/network/stories/networkCanvas.stories.tsx index 0d03b4d77b..8cca846a48 100644 --- a/packages/network/stories/networkCanvas.stories.tsx +++ b/packages/network/stories/networkCanvas.stories.tsx @@ -4,10 +4,9 @@ import { withKnobs } from '@storybook/addon-knobs' import { generateNetworkData } from '@nivo/generators' import { NetworkCanvas, - canvasDefaultProps, NetworkCanvasProps, - NetworkComputedNode, - NetworkNodeTooltipProps, + ComputedNode, + NodeTooltipProps, // @ts-ignore } from '../src' @@ -19,21 +18,22 @@ export default { const data = generateNetworkData() -type NodeType = typeof data['nodes'][0] +type Node = typeof data['nodes'][number] +type Link = typeof data['links'][number] -const commonProperties: NetworkCanvasProps = { - ...canvasDefaultProps, +const commonProperties: NetworkCanvasProps = { data, - width: 900, - height: 400, + width: 600, + height: 600, nodeColor: node => node.color, - repulsivity: 6, + repulsivity: 10, iterations: 60, + linkDistance: link => link.distance * 1.3, } -export const Default = () => {...commonProperties} /> +export const Default = () => {...commonProperties} /> -const CustomNodeTooltipComponent = ({ node }: NetworkNodeTooltipProps) => ( +const CustomNodeTooltipComponent = ({ node }: NodeTooltipProps) => (
) > ID: {node.id}
- depth: {node.depth} -
- radius: {node.radius} + size: {node.size}
) export const CustomNodeTooltip = () => ( - {...commonProperties} nodeTooltip={CustomNodeTooltipComponent} /> + {...commonProperties} nodeTooltip={CustomNodeTooltipComponent} /> ) -const customNodeRenderer = (ctx: CanvasRenderingContext2D, node: NetworkComputedNode) => { +const customNodeRenderer = (ctx: CanvasRenderingContext2D, node: ComputedNode) => { ctx.fillStyle = node.color ctx.beginPath() - ctx.moveTo(node.x, node.y - node.radius) - ctx.lineTo(node.x + node.radius, node.y + node.radius) - ctx.lineTo(node.x - node.radius, node.y + node.radius) + ctx.moveTo(node.x, node.y - node.size / 2) + ctx.lineTo(node.x + node.size / 2, node.y + node.size / 2) + ctx.lineTo(node.x - node.size / 2, node.y + node.size / 2) ctx.fill() } export const CustomNodeRenderer = () => ( - {...commonProperties} renderNode={customNodeRenderer} /> + {...commonProperties} renderNode={customNodeRenderer} /> ) export const OnClickHandler = () => ( - {...commonProperties} onClick={action('onClick')} /> + {...commonProperties} onClick={action('onClick')} /> ) diff --git a/website/src/data/config.ts b/website/src/data/config.ts index 82be3bca6d..37f85a174e 100644 --- a/website/src/data/config.ts +++ b/website/src/data/config.ts @@ -1,9 +1,9 @@ export default { // local // nivoApiUrl: 'http://localhost:3030/nivo', - // storybookUrl: 'http://localhost:6006/', + storybookUrl: 'http://localhost:6006/', // production nivoApiUrl: 'https://nivo-api.herokuapp.com/nivo', - storybookUrl: 'https://nivo.rocks/storybook/', + // storybookUrl: 'https://nivo.rocks/storybook/', }