drawDB/src/components/relationship.jsx

40 lines
954 B
React
Raw Normal View History

2023-12-16 11:39:13 +08:00
import { useState } from "react";
2023-12-12 05:11:30 +08:00
import { calcPath } from "../utils";
2023-09-19 20:48:17 +08:00
export default function Relationship(props) {
const [hovered, setHovered] = useState(false);
return (
<g>
<defs>
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow
2023-09-19 20:48:18 +08:00
dx="0"
dy="0"
2023-09-19 20:51:08 +08:00
stdDeviation="4"
2023-09-19 20:48:17 +08:00
floodColor="gray"
2023-09-19 20:51:08 +08:00
floodOpacity="0.3"
2023-09-19 20:48:17 +08:00
/>
</filter>
</defs>
<path
d={calcPath(
props.data.startX,
props.data.endX,
props.data.startY,
2023-12-28 12:17:48 +08:00
props.data.endY,
props.data.startFieldId,
props.data.endFieldId
2023-09-19 20:48:17 +08:00
)}
stroke={hovered ? "blue" : "gray"}
fill="none"
2023-09-19 20:48:18 +08:00
strokeWidth={2}
2023-09-19 20:48:17 +08:00
filter="url(#shadow)"
cursor="pointer"
onMouseEnter={() => setHovered(true)}
onMouseLeave={() => setHovered(false)}
/>
</g>
);
}