drawDB/src/components/relationship.jsx

38 lines
893 B
React
Raw Normal View History

2023-09-19 20:48:17 +08:00
import { React, 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,
props.data.endY
)}
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>
);
}