@@ -24,13 +24,10 @@ const PositionSummary: React.FC<{
2424
2525 const denomination = 12n ; // USD denomination
2626 const maxBorrow = useMemo (
27- ( ) =>
28- ! globalPosition
29- ? new Quantity ( 0n , 12n )
30- : new Quantity (
31- globalPosition . borrowCapacityUSD || 0 ,
32- denomination ,
33- ) . fromNumber ( 4 ) ,
27+ ( ) => new Quantity (
28+ globalPosition ?. borrowCapacityUSD || 0 ,
29+ denomination ,
30+ ) ,
3431 [ globalPosition ] ,
3532 ) ;
3633
@@ -54,6 +51,25 @@ const PositionSummary: React.FC<{
5451 return `${ Number ( formatPercent ) . toFixed ( 3 ) } %` ;
5552 } , [ maxBorrow , globalPosition ] ) ;
5653
54+ const handleMouseMoveCollateral = ( ticker : string , e : React . MouseEvent ) => {
55+ const pos = globalPosition ?. tokenPositions ?. [ ticker ] ;
56+ if ( ! pos ) return ;
57+
58+ if ( Quantity . le ( new Quantity ( 0 , pos . collateralization . denomination ) . fromNumber ( 0.0001 ) , pos . collateralization ) ) {
59+ let maximumFractionDigits = Quantity . le ( Quantity . __one ( ) , pos . collateralization ) ? 2 : 4 ;
60+ setTooltipContent (
61+ // @ts -expect-error
62+ pos . collateralization . toLocaleString ( undefined , { maximumFractionDigits } )
63+ + " " + ticker
64+ ) ;
65+ } else {
66+ setTooltipContent ( ">0.0001 " + ticker ) ;
67+ }
68+
69+ setTooltipPosition ( { x : e . clientX , y : e . clientY } ) ;
70+ setShowTooltip ( true ) ;
71+ } ;
72+
5773 const handleMouseMove = ( e : React . MouseEvent ) => {
5874 const rect = e . currentTarget . getBoundingClientRect ( ) ;
5975 const x = e . clientX - rect . left ;
@@ -169,15 +185,17 @@ const PositionSummary: React.FC<{
169185 < div className = { styles . tokens } >
170186 { ! isLoadingPosition &&
171187 globalPosition &&
172- globalPosition . collateralLogos . map ( ( logo , i ) => (
188+ globalPosition . collateralLogos . map ( ( collateral , i ) => (
173189 < img
174190 key = { i }
175- src = { `https://arweave.net/${ logo } ` }
191+ src = { `https://arweave.net/${ collateral . logo } ` }
176192 alt = "collateral logo"
177193 className = { styles . token }
178194 style = { {
179195 zIndex : globalPosition . collateralLogos . length - i ,
180196 } }
197+ onMouseMove = { ( e ) => handleMouseMoveCollateral ( collateral . ticker , e ) }
198+ onMouseLeave = { handleMouseLeave }
181199 />
182200 ) ) }
183201 { isLoadingPosition && (
0 commit comments