()
| 732 | }; |
| 733 | |
| 734 | const onPointerLeave = () => { |
| 735 | if (!draggingRef.current && hoverIdRef.current) { |
| 736 | hoverIdRef.current = null; |
| 737 | draw(); |
| 738 | } |
| 739 | // 离开画布:清 hover,但保留选中的持久高亮 + 其信息卡 |
| 740 | cardFor(selectedIdRef.current); |
| 741 | }; |
| 742 | |
| 743 | canvas.addEventListener("pointermove", onPointerMove); |
| 744 | canvas.addEventListener("pointerdown", onPointerDown); |