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)');
}}
/>
);
};