1+ import type { DrawShape } from 'chessground/draw'
12interface Props {
23 recommendations : {
34 maia ?: { move : string ; prob : number } [ ]
@@ -9,12 +10,26 @@ interface Props {
910 color : string
1011 }
1112 }
13+
14+ setHoverArrow : React . Dispatch < React . SetStateAction < DrawShape | null > >
1215}
1316
1417export const MoveRecommendations : React . FC < Props > = ( {
1518 recommendations,
1619 colorSanMapping,
20+ setHoverArrow,
1721} : Props ) => {
22+ const onMouseEnter = ( move : string ) => {
23+ setHoverArrow ( {
24+ orig : move . slice ( 0 , 2 ) as any ,
25+ dest : move . slice ( 2 , 4 ) as any ,
26+ brush : 'green' ,
27+ modifiers : {
28+ lineWidth : 10 ,
29+ } ,
30+ } )
31+ }
32+
1833 return (
1934 < div className = "col-span-2 grid h-full max-h-full grid-cols-2 flex-col overflow-hidden rounded" >
2035 < div className = "flex flex-col gap-2 bg-background-1 p-5" >
@@ -36,7 +51,13 @@ export const MoveRecommendations: React.FC<Props> = ({
3651 color : colorSanMapping [ move ] . color ,
3752 } }
3853 >
39- < p className = "font-mono" > { colorSanMapping [ move ] . san } </ p >
54+ < p
55+ className = "cursor-default font-mono hover:underline"
56+ onMouseEnter = { ( ) => onMouseEnter ( move ) }
57+ onMouseOutCapture = { ( ) => setHoverArrow ( null ) }
58+ >
59+ { colorSanMapping [ move ] . san }
60+ </ p >
4061 < p className = "font-mono text-sm" >
4162 { Math . round ( prob * 1000 ) / 10 } %
4263 </ p >
@@ -63,7 +84,13 @@ export const MoveRecommendations: React.FC<Props> = ({
6384 color : colorSanMapping [ move ] . color ,
6485 } }
6586 >
66- < p className = "font-mono" > { colorSanMapping [ move ] . san } </ p >
87+ < p
88+ className = "cursor-default font-mono hover:underline"
89+ onMouseEnter = { ( ) => onMouseEnter ( move ) }
90+ onMouseOutCapture = { ( ) => setHoverArrow ( null ) }
91+ >
92+ { colorSanMapping [ move ] . san }
93+ </ p >
6794 < p className = "font-mono text-sm" > { cp / 100 } </ p >
6895 </ div >
6996 ) ) }
0 commit comments