Bin
2025-12-16 9e0b2ba2c317b1a86212f24cbae3195ad1f3dbfa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { Circle } from "react-konva";
import type Konva from "konva";
import type { BezierPoint } from "../types";
 
interface ProxyNodesProps {
  selectedPoints: Set<number>;
  initialPoints: BezierPoint[];
  proxyRefs: React.MutableRefObject<{ [key: number]: Konva.Circle | null }>;
}
 
export const ProxyNodes: React.FC<ProxyNodesProps> = ({ selectedPoints, initialPoints, proxyRefs }) => {
  if (selectedPoints.size <= 1) return null;
 
  return (
    <>
      {Array.from(selectedPoints).map((pointIndex) => {
        const point = initialPoints[pointIndex];
        if (!point) return null;
 
        return (
          <Circle
            key={`proxy-${pointIndex}`}
            ref={(node) => {
              proxyRefs.current[pointIndex] = node;
            }}
            x={point.x}
            y={point.y}
            radius={10}
            fill="transparent"
            stroke="transparent"
            strokeWidth={1}
            listening={true}
            name={`proxy-${pointIndex}`}
          />
        );
      })}
    </>
  );
};