import React from 'react'; import { Sankey, Tooltip, Rectangle, Layer, ResponsiveContainer } from 'recharts'; type Node = { name: string; } type Link = { source: number; target: number; value: number; } export interface SankeyChartData { links: Link[]; nodes: Node[]; } interface Props { data: SankeyChartData; nodePadding?: number; nodeWidth?: number; } function SankeyChart(props: Props) { const { data, nodePadding = 50, nodeWidth = 10 } = props; return (
Sankey Chart
} nodePadding={nodePadding} nodeWidth={nodeWidth} margin={{ left: 10, right: 100, top: 10, bottom: 10, }} link={} > } />
); } export default SankeyChart; const CustomTooltip = (props: any) => { return
test
; // if (active && payload && payload.length) { // return ( //
//

{`${label} : ${payload[0].value}`}

//

{getIntroOfPage(label)}

//

Anything you want can be displayed here.

//
// ); // } return null; }; function CustomNodeComponent({ x, y, width, height, index, payload, containerWidth }: any) { const isOut = x + width + 6 > containerWidth; return ( {payload.name} {payload.value + 'k'} ); } const CustomLinkComponent = (props: any) => { const [fill, setFill] = React.useState('url(#linkGradient)'); const { sourceX, targetX, sourceY, targetY, sourceControlX, targetControlX, linkWidth, index } = props; return ( { setFill('rgba(0, 136, 254, 0.5)'); }} onMouseLeave={() => { setFill('url(#linkGradient)'); }} /> ); };