From 4fee833e6edd8d373ed5d541a52505d69ec4d36e Mon Sep 17 00:00:00 2001 From: zielvna Date: Fri, 26 Jan 2024 12:19:00 +0100 Subject: [PATCH 1/4] fix position list pagination bugs --- src/components/PositionsList/PositionsList.tsx | 4 ++++ .../WrappedPositionsList/WrappedPositionsList.tsx | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/components/PositionsList/PositionsList.tsx b/src/components/PositionsList/PositionsList.tsx index eece6ede..97243115 100644 --- a/src/components/PositionsList/PositionsList.tsx +++ b/src/components/PositionsList/PositionsList.tsx @@ -70,6 +70,10 @@ export const PositionsList: React.FC = ({ setPage(initialPage) }, []) + useEffect(() => { + handleChangePagination(initialPage) + }, [initialPage]) + return ( { dispatch(actions.setLastPage(page)) } + useEffect(() => { + if (lastPage > Math.ceil(list.length / 5)) { + setLastPage(Math.ceil(list.length / 5)) + } + }, [list]) + return ( Date: Mon, 29 Jan 2024 11:26:34 +0100 Subject: [PATCH 2/4] make pagination reset to page 1 when position list is empty --- src/containers/WrappedPositionsList/WrappedPositionsList.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/containers/WrappedPositionsList/WrappedPositionsList.tsx b/src/containers/WrappedPositionsList/WrappedPositionsList.tsx index e00bf189..9f3843be 100644 --- a/src/containers/WrappedPositionsList/WrappedPositionsList.tsx +++ b/src/containers/WrappedPositionsList/WrappedPositionsList.tsx @@ -35,8 +35,8 @@ export const WrappedPositionsList: React.FC = () => { } useEffect(() => { - if (lastPage > Math.ceil(list.length / 5)) { - setLastPage(Math.ceil(list.length / 5)) + if (list.length === 0) { + setLastPage(1) } }, [list]) From 6a71b536ebe2bb8af1b5b05a9cfd7dbb77e45894 Mon Sep 17 00:00:00 2001 From: zielvna Date: Tue, 30 Jan 2024 18:38:36 +0100 Subject: [PATCH 3/4] fix pagination when removing position --- src/containers/WrappedPositionsList/WrappedPositionsList.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/containers/WrappedPositionsList/WrappedPositionsList.tsx b/src/containers/WrappedPositionsList/WrappedPositionsList.tsx index 9f3843be..99027f8f 100644 --- a/src/containers/WrappedPositionsList/WrappedPositionsList.tsx +++ b/src/containers/WrappedPositionsList/WrappedPositionsList.tsx @@ -38,6 +38,10 @@ export const WrappedPositionsList: React.FC = () => { if (list.length === 0) { setLastPage(1) } + + if (lastPage > Math.ceil(list.length / 5)) { + setLastPage(lastPage - 1) + } }, [list]) return ( From ed312af83d2617ef81757f06a8e08946d410202f Mon Sep 17 00:00:00 2001 From: zielvna Date: Wed, 31 Jan 2024 14:58:55 +0100 Subject: [PATCH 4/4] remove magic number from positions list --- .../WrappedPositionsList.tsx | 5 ++-- src/store/consts/static.ts | 27 +++++++------------ 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/containers/WrappedPositionsList/WrappedPositionsList.tsx b/src/containers/WrappedPositionsList/WrappedPositionsList.tsx index 99027f8f..eb70fd57 100644 --- a/src/containers/WrappedPositionsList/WrappedPositionsList.tsx +++ b/src/containers/WrappedPositionsList/WrappedPositionsList.tsx @@ -1,4 +1,5 @@ import { PositionsList } from '@components/PositionsList/PositionsList' +import { POSITIONS_PER_PAGE } from '@consts/static' import { calcYPerXPrice, printBN } from '@consts/utils' import { calculatePriceSqrt } from '@invariant-labs/sdk-eclipse' import { getX, getY } from '@invariant-labs/sdk-eclipse/lib/math' @@ -39,7 +40,7 @@ export const WrappedPositionsList: React.FC = () => { setLastPage(1) } - if (lastPage > Math.ceil(list.length / 5)) { + if (lastPage > Math.ceil(list.length / POSITIONS_PER_PAGE)) { setLastPage(lastPage - 1) } }, [list]) @@ -133,7 +134,7 @@ export const WrappedPositionsList: React.FC = () => { })} loading={isLoading} showNoConnected={walletStatus !== Status.Initialized} - itemsPerPage={5} + itemsPerPage={POSITIONS_PER_PAGE} noConnectedBlockerProps={{ onConnect: openWalletSelectorModal, descCustomText: 'You have no positions.' diff --git a/src/store/consts/static.ts b/src/store/consts/static.ts index 465343f6..dede4859 100644 --- a/src/store/consts/static.ts +++ b/src/store/consts/static.ts @@ -1,6 +1,6 @@ -import { PublicKey } from '@solana/web3.js' -import { BN } from '@project-serum/anchor' import { FEE_TIERS } from '@invariant-labs/sdk-eclipse/lib/utils' +import { BN } from '@project-serum/anchor' +import { PublicKey } from '@solana/web3.js' declare global { interface Window { @@ -157,32 +157,21 @@ export const bestTiers: Record = { } export const commonTokensForNetworks: Record = { - Devnet: [ - USDC_DEV.address, - BTC_DEV.address, - WETH_DEV.address - ], - Mainnet: [ - ], + Devnet: [USDC_DEV.address, BTC_DEV.address, WETH_DEV.address], + Mainnet: [], Testnet: [], Localnet: [] } export const airdropTokens: Record = { - Devnet: [ - USDC_DEV.address, - BTC_DEV.address - ], + Devnet: [USDC_DEV.address, BTC_DEV.address], Mainnet: [], Testnet: [], Localnet: [] } export const airdropQuantities: Record = { - Devnet: [ - 100 * 10 ** USDC_DEV.decimals, - 0.0025 * 10 ** BTC_DEV.decimals - ], + Devnet: [100 * 10 ** USDC_DEV.decimals, 0.0025 * 10 ** BTC_DEV.decimals], Mainnet: [], Testnet: [], Localnet: [] @@ -201,4 +190,6 @@ export const ALL_FEE_TIERS_DATA = FEE_TIERS.map((tier, index) => ({ primaryIndex: index })) -export { EclipseNetworks, DEFAULT_PUBLICKEY, MAX_U64, NetworkType } +export { DEFAULT_PUBLICKEY, EclipseNetworks, MAX_U64, NetworkType } + +export const POSITIONS_PER_PAGE = 5