@@ -11,6 +11,11 @@ import { useZapState } from '@/hooks/useZapState';
1111import { usePoolStore } from '@/stores/usePoolStore' ;
1212import { useWidgetStore } from '@/stores/useWidgetStore' ;
1313
14+ const parseChartPrice = ( value : string | null ) => {
15+ if ( ! value ) return NaN ;
16+ return parseFloat ( value . toString ( ) . replace ( / , / g, '' ) ) ;
17+ } ;
18+
1419export default function LiquidityChart ( ) {
1520 const { positionId } = useWidgetStore ( [ 'positionId' ] ) ;
1621 const { pool : rawPool , poolPrice, revertPrice } = usePoolStore ( [ 'pool' , 'poolPrice' , 'revertPrice' ] ) ;
@@ -49,10 +54,10 @@ export default function LiquidityChart() {
4954 const tickLower = nearestUsableTick ( Number ( tickLowerFromPrice ) , tickSpacing ) ;
5055 const tickUpper = nearestUsableTick ( Number ( tickUpperFromPrice ) , tickSpacing ) ;
5156
52- if ( tickUpper ) {
57+ if ( tickUpper !== undefined ) {
5358 revertPrice ? setTickLower ( tickUpper ) : setTickUpper ( tickUpper ) ;
5459 }
55- if ( tickLower ) {
60+ if ( tickLower !== undefined ) {
5661 revertPrice ? setTickUpper ( tickLower ) : setTickLower ( tickLower ) ;
5762 }
5863 } ,
@@ -66,7 +71,7 @@ export default function LiquidityChart() {
6671
6772 if ( tickFromPrice === undefined ) return ;
6873 const tick = nearestUsableTick ( Number ( tickFromPrice ) , tickSpacing ) ;
69- if ( tick ) revertPrice ? setTickUpper ( tick ) : setTickLower ( tick ) ;
74+ if ( tick !== undefined ) revertPrice ? setTickUpper ( tick ) : setTickLower ( tick ) ;
7075 } ,
7176 [ positionId , revertPrice , setTickLower , setTickUpper , tickSpacing , token0 , token1 ] ,
7277 ) ;
@@ -78,16 +83,16 @@ export default function LiquidityChart() {
7883
7984 if ( tickFromPrice === undefined ) return ;
8085 const tick = nearestUsableTick ( Number ( tickFromPrice ) , tickSpacing ) ;
81- if ( tick ) revertPrice ? setTickLower ( tick ) : setTickUpper ( tick ) ;
86+ if ( tick !== undefined ) revertPrice ? setTickLower ( tick ) : setTickUpper ( tick ) ;
8287 } ,
8388 [ positionId , revertPrice , setTickLower , setTickUpper , tickSpacing , token0 , token1 ] ,
8489 ) ;
8590
8691 const onBrushDomainChange = useCallback (
8792 ( domain : [ number , number ] , mode : string | undefined ) => {
8893 if ( ! minPrice || ! maxPrice ) return ;
89- const leftPrice = parseFloat ( ! revertPrice ? minPrice : maxPrice . toString ( ) . replace ( / , / g , '' ) ) ;
90- const rightPrice = parseFloat ( ! revertPrice ? maxPrice : minPrice . toString ( ) . replace ( / , / g , '' ) ) ;
94+ const leftPrice = parseChartPrice ( ! revertPrice ? minPrice : maxPrice ) ;
95+ const rightPrice = parseChartPrice ( ! revertPrice ? maxPrice : minPrice ) ;
9196
9297 let leftRangeValue = Number ( domain [ 0 ] ) ;
9398 let rightRangeValue = Number ( domain [ 1 ] ) ;
@@ -100,7 +105,7 @@ export default function LiquidityChart() {
100105 }
101106
102107 const updateLeft =
103- ( ! ticksAtLimit [ ! revertPrice ? Bound . LOWER : Bound . UPPER ] || mode === 'handle' || mode === ' reset') &&
108+ ( ! ticksAtLimit [ ! revertPrice ? Bound . LOWER : Bound . UPPER ] || mode === 'reset' ) &&
104109 leftRangeValue > 0 &&
105110 leftRangeValue !== leftPrice ;
106111
0 commit comments