@@ -3,6 +3,7 @@ import Transfer from '@/dex/components/PagePool/index'
33import { ROUTE } from '@/dex/constants'
44import { useNetworkByChain } from '@/dex/entities/networks'
55import { useChainId } from '@/dex/hooks/useChainId'
6+ import { usePoolIdByAddressOrId } from '@/dex/hooks/usePoolIdByAddressOrId'
67import useStore from '@/dex/store/useStore'
78import type { PoolUrlParams } from '@/dex/types/main.types'
89import { getPath } from '@/dex/utils/utilsRouter'
@@ -15,36 +16,37 @@ export const PagePool = () => {
1516 const push = useNavigate ( )
1617 const { curveApi = null } = useConnection ( )
1718 const props = useParams < PoolUrlParams > ( )
18- const { pool : rPoolId , formType : rFormType , network : networkId } = props
19+ const { poolIdOrAddress : rPoolIdOrAddress , formType : rFormType , network : networkId } = props
1920 const rChainId = useChainId ( networkId )
21+ const poolId = usePoolIdByAddressOrId ( { chainId : rChainId , poolIdOrAddress : rPoolIdOrAddress } )
2022
2123 const hasDepositAndStake = useStore ( ( state ) => state . getNetworkConfigFromApi ( rChainId ) . hasDepositAndStake )
2224 const haveAllPools = useStore ( ( state ) => state . pools . haveAllPools [ rChainId ] )
2325 const fetchNewPool = useStore ( ( state ) => state . pools . fetchNewPool )
24- const poolDataCache = useStore ( ( state ) => state . storeCache . poolsMapper [ rChainId ] ?. [ rPoolId ] )
25- const poolData = useStore ( ( state ) => state . pools . poolsMapper [ rChainId ] ?. [ rPoolId ] )
26+ const poolDataCache = useStore ( ( state ) => state . storeCache . poolsMapper [ rChainId ] ?. [ poolId ?? '' ] )
27+ const poolData = useStore ( ( state ) => state . pools . poolsMapper [ rChainId ] ?. [ poolId ?? '' ] )
2628 const { data : network } = useNetworkByChain ( { chainId : rChainId } )
2729 const [ poolNotFound , setPoolNotFound ] = useState ( false )
2830
2931 const poolDataCacheOrApi = useMemo ( ( ) => poolData || poolDataCache , [ poolData , poolDataCache ] )
3032
3133 useEffect ( ( ) => {
32- if ( ! rChainId || curveApi ?. chainId !== rChainId || ! haveAllPools || poolData ) return
33- fetchNewPool ( curveApi , props . pool )
34+ if ( ! rChainId || ! poolId || curveApi ?. chainId !== rChainId || ! haveAllPools || poolData ) return
35+ fetchNewPool ( curveApi , poolId )
3436 . then ( ( found ) => setPoolNotFound ( ! found ) )
3537 . catch ( ( ) => setPoolNotFound ( true ) )
36- } , [ curveApi , fetchNewPool , haveAllPools , network , props , poolData , push , rChainId ] )
38+ } , [ curveApi , fetchNewPool , haveAllPools , network , poolId , poolData , push , rChainId ] )
3739
38- return ! rFormType || network . excludePoolsMapper [ rPoolId ] || poolNotFound ? (
40+ return ! rFormType || network . excludePoolsMapper [ poolId ?? '' ] || poolNotFound ? (
3941 < ErrorPage title = "404" subtitle = { t `Pool Not Found` } continueUrl = { getPath ( props , ROUTE . PAGE_POOLS ) } />
4042 ) : (
41- rFormType && poolDataCacheOrApi ?. pool ?. id === rPoolId && hasDepositAndStake != null && (
43+ rFormType && poolDataCacheOrApi ?. pool ?. id === poolId && hasDepositAndStake != null && (
4244 < Transfer
4345 curve = { curveApi }
4446 params = { props }
4547 poolData = { poolData }
4648 poolDataCacheOrApi = { poolDataCacheOrApi }
47- routerParams = { { rChainId, rPoolId , rFormType } }
49+ routerParams = { { rChainId, rPoolIdOrAddress , rFormType } }
4850 hasDepositAndStake = { hasDepositAndStake }
4951 />
5052 )
0 commit comments