From aae95b6b4a91e9cf4336d45f7926d40a494b414f Mon Sep 17 00:00:00 2001 From: tjs Date: Mon, 19 Dec 2022 13:48:59 -0500 Subject: [PATCH] fix call to swap history api --- components/account/AccountTabs.tsx | 11 +---------- components/swap/SwapHistoryTable.tsx | 13 +++++++++++-- components/swap/SwapReviewRouteInfo.tsx | 6 ++++-- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/components/account/AccountTabs.tsx b/components/account/AccountTabs.tsx index 078411e0..42dc0040 100644 --- a/components/account/AccountTabs.tsx +++ b/components/account/AccountTabs.tsx @@ -1,4 +1,4 @@ -import { useEffect, useMemo, useState } from 'react' +import { useMemo, useState } from 'react' import mangoStore from '@store/mangoStore' import TabButtons from '../shared/TabButtons' import TokenList from '../TokenList' @@ -6,7 +6,6 @@ import SwapHistoryTable from '../swap/SwapHistoryTable' import ActivityFeed from './ActivityFeed' import UnsettledTrades from '@components/trade/UnsettledTrades' import { useUnsettledSpotBalances } from 'hooks/useUnsettledSpotBalances' -import useMangoAccount from 'hooks/useMangoAccount' import { useViewport } from 'hooks/useViewport' import { breakpoints } from 'utils/theme' import useUnsettledPerpPositions from 'hooks/useUnsettledPerpPositions' @@ -20,8 +19,6 @@ const TABS = [ const AccountTabs = () => { const [activeTab, setActiveTab] = useState('balances') - const actions = mangoStore((s) => s.actions) - const { mangoAccount } = useMangoAccount() const { width } = useViewport() const isMobile = width ? width < breakpoints.md : false @@ -29,12 +26,6 @@ const AccountTabs = () => { return TABS.map((t) => [t, 0]) }, []) - useEffect(() => { - if (mangoAccount) { - actions.fetchSwapHistory(mangoAccount.publicKey.toString()) - } - }, [actions, mangoAccount]) - return ( <> s.actions) + const { mangoAccount } = useMangoAccount() const { width } = useViewport() const showTableView = width ? width > breakpoints.md : false const [preferredExplorer] = useLocalStorageState( @@ -46,6 +49,12 @@ const SwapHistoryTable = ({ EXPLORERS[0] ) + useEffect(() => { + if (mangoAccount) { + actions.fetchSwapHistory(mangoAccount.publicKey.toString()) + } + }, [actions, mangoAccount]) + const handleShowSwapDetails = (signature: string) => { showSwapDetails ? setSwapDetails('') : setSwapDetails(signature) } diff --git a/components/swap/SwapReviewRouteInfo.tsx b/components/swap/SwapReviewRouteInfo.tsx index 20862d46..7c012b30 100644 --- a/components/swap/SwapReviewRouteInfo.tsx +++ b/components/swap/SwapReviewRouteInfo.tsx @@ -1,6 +1,7 @@ import React, { Dispatch, SetStateAction, + useCallback, useEffect, useMemo, useState, @@ -198,7 +199,7 @@ const SwapReviewRouteInfo = ({ } }, [inputTokenInfo, outputTokenInfo]) - const onSwap = async () => { + const onSwap = useCallback(async () => { if (!selectedRoute) return try { const client = mangoStore.getState().client @@ -246,6 +247,7 @@ const SwapReviewRouteInfo = ({ noSound: true, }) actions.fetchGroup() + actions.fetchSwapHistory(mangoAccount.publicKey.toString()) await actions.reloadMangoAccount() } catch (e: any) { console.error('onSwap error: ', e) @@ -263,7 +265,7 @@ const SwapReviewRouteInfo = ({ } finally { onClose() } - } + }, [amountIn, onClose, selectedRoute, soundSettings]) const [balance, borrowAmount] = useMemo(() => { const mangoAccount = mangoStore.getState().mangoAccount.current