@@ -65,7 +65,7 @@ export function Diagram(props: {
6565 } = useSimulationContext ( )
6666 const svgRef = useRef < SVGSVGElement | null > ( null )
6767 const [ hoveredWire , setHoveredWire ] = useState <
68- { nodeId : string ; inputId : string ; bits : number } | undefined
68+ { nodeId : string ; inputId : string } | undefined
6969 > ( undefined )
7070
7171 useEffect ( ( ) => {
@@ -94,10 +94,8 @@ export function Diagram(props: {
9494 current . appendChild ( clone )
9595 clones . push ( clone )
9696
97- const bits = Number ( e . dataset . bits ?? "32" )
98-
9997 clone . addEventListener ( "mouseover" , ( ) => {
100- setHoveredWire ( { nodeId, inputId, bits } )
98+ setHoveredWire ( { nodeId, inputId } )
10199 } )
102100 clone . addEventListener ( "mouseleave" , ( ) => {
103101 setHoveredWire ( undefined )
@@ -139,18 +137,19 @@ export function Diagram(props: {
139137 ] as number | undefined
140138
141139 if ( hoveredWireValue != undefined ) {
142- tooltipContent = int2hex (
143- hoveredWireValue ,
144- Math . ceil ( hoveredWire . bits / 4 ) ,
145- )
140+ const bits =
141+ simulation . nodes [ hoveredWire . nodeId ] . inputBitWidths ?. [
142+ hoveredWire . inputId
143+ ] ?? 32
144+ tooltipContent = int2hex ( hoveredWireValue , Math . ceil ( bits / 4 ) )
146145 const iid = makeIID ( hoveredWire . nodeId , hoveredWire . inputId )
147146 if ( placedNodes . has ( iid ) ) {
148147 tooltipContent = (
149148 < div className = "grid grid-cols-[auto_auto] grid-rows-2 gap-x-2 items-baseline" >
150149 < span className = "text-sm text-muted-foreground" > Before: </ span >
151150 { int2hex (
152151 simulation . inputValues [ placedNodeId ( iid ) ] . in ,
153- Math . ceil ( hoveredWire . bits / 4 ) ,
152+ Math . ceil ( bits / 4 ) ,
154153 ) }
155154 < span className = "text-sm text-muted-foreground" > After: </ span >
156155 { tooltipContent }
0 commit comments