From 2ad6ae601b2aca96213ee5a1fd518570fe425c6d Mon Sep 17 00:00:00 2001 From: venuswhispers Date: Thu, 28 Nov 2024 05:53:56 +0800 Subject: [PATCH] completed: paginations --- .../src/components/SwapHistory/index.tsx | 74 ++++++++++--------- app/server/src/lib/swaps.ts | 5 +- app/server/src/routes/swaps.ts | 5 +- 3 files changed, 46 insertions(+), 38 deletions(-) diff --git a/app/bridge/src/components/SwapHistory/index.tsx b/app/bridge/src/components/SwapHistory/index.tsx index ab7ad856..2a52dbf8 100644 --- a/app/bridge/src/components/SwapHistory/index.tsx +++ b/app/bridge/src/components/SwapHistory/index.tsx @@ -78,8 +78,6 @@ function TransactionsHistory() { } }, [paramString]) - - const getSwaps = async (page?: number, status?: string | number) => { try { const { @@ -89,7 +87,7 @@ function TransactionsHistory() { !showAllSwaps ? `page=${page}` : '' }${ status ? `&status=${status}` : '' - }&version=${BridgeApiClient.apiVersion}&teleport=${useTeleporter}` + }&version=${BridgeApiClient.apiVersion}&teleport=${useTeleporter}&pageSize=${PAGE_SIZE}` ) return { data: data, @@ -108,35 +106,43 @@ function TransactionsHistory() { if (Number(data?.length) > 0) setShowToggleButton(true) }, []) + const fetchInitialSwaps = async () => { + const { data, error } = await getSwaps( + 1, + SwapStatusInNumbers.SwapsWithoutCancelledAndExpired + ) + if (error) { + notify(error, 'error') + throw '' + } + setSwaps(data) + setPage(1) + if (Number(data?.length) < PAGE_SIZE) { + setIsLastPage(true) + } else { + setIsLastPage(false) + } + } + + const fetchAllSwaps = async () => { + const { data, error } = await getSwaps() + if (error) { + notify(error, 'error') + throw '' + } + + setSwaps(data) + setPage(1) + setIsLastPage(true) + } + useAsyncEffect(async () => { try { setLoading(true) if (!showAllSwaps) { - const { data, error } = await getSwaps( - 1, - SwapStatusInNumbers.SwapsWithoutCancelledAndExpired - ) - if (error) { - notify(error, 'error') - throw "" - } - setSwaps(data) - setPage(1) - if (Number(data?.length) < PAGE_SIZE) { - setIsLastPage(true) - } else { - setIsLastPage(false) - } + fetchInitialSwaps() } else { - const { data, error } = await getSwaps() - if (error) { - notify(error, 'error') - throw "" - } - - setSwaps(data) - setPage(1) - setIsLastPage(true) + fetchAllSwaps() } } catch (err) { // @@ -145,8 +151,12 @@ function TransactionsHistory() { } }, [showAllSwaps]) - useEffect(() => { - setShowAllSwaps (false) + useAsyncEffect(async () => { + if (showAllSwaps) { + setShowAllSwaps(false) + } else { + fetchInitialSwaps() + } }, [useTeleporter]) const handleLoadMore = async () => { @@ -161,7 +171,7 @@ function TransactionsHistory() { if (error) { notify(error, 'error') - throw "" + throw '' } setSwaps((old) => [...(old ? old : []), ...(data ? data : [])]) @@ -169,10 +179,6 @@ function TransactionsHistory() { if (Number(data?.length) < PAGE_SIZE) { setIsLastPage(true) } - // setSwaps(data) - // setPage(1) - // setIsLastPage(true) - // setLoading(false) } catch (err) { // } finally { diff --git a/app/server/src/lib/swaps.ts b/app/server/src/lib/swaps.ts index 2b1af44c..2cb2d43a 100644 --- a/app/server/src/lib/swaps.ts +++ b/app/server/src/lib/swaps.ts @@ -785,11 +785,10 @@ export async function handlerUpdateMpcSignAction(id: string, txHash: string, amo * @param isMainnet * @returns */ -export async function handlerGetSwaps(isDeleted?: boolean, isMainnet? : boolean, isTeleport?: boolean, page?: number) { - console.log({ isTeleport, page, isMainnet }) +export async function handlerGetSwaps(isDeleted?: boolean, isMainnet? : boolean, isTeleport?: boolean, page?: number, pageSize: number = 20) { + console.log(pageSize) try { if (page) { - const pageSize = 20 const swaps = await prisma.swap.findMany({ skip: (page - 1) * pageSize, take: pageSize, diff --git a/app/server/src/routes/swaps.ts b/app/server/src/routes/swaps.ts index d34cf646..089795db 100644 --- a/app/server/src/routes/swaps.ts +++ b/app/server/src/routes/swaps.ts @@ -23,8 +23,11 @@ router.get("/", async (req: Request, res: Response) => { // page const _page = req.query?.page const page = _page ? (isNaN(Number(_page)) ? 0 : Number(Number(_page))) : undefined + // pageSize + const _pageSize = req.query?.pageSize + const pageSize = _pageSize ? (isNaN(Number(_pageSize)) ? 0 : Number(Number(_pageSize))) : undefined - const result = await handlerGetSwaps(isDeleted, isMainnet, isTeleport, page) + const result = await handlerGetSwaps(isDeleted, isMainnet, isTeleport, page, pageSize) res.status(200).json({ data: result }) } catch (error: any) { res.status(500).json({ error: error?.message })