From 442283a9cdef6b1cb1472ca9b7193ff6c1db761a Mon Sep 17 00:00:00 2001 From: Alexandr Kazachenko Date: Tue, 24 Sep 2024 13:07:21 +0500 Subject: [PATCH] fix(hooks-store): use recipient override only in hooks page --- .../hooksStore/hooks/useSetRecipientOverride.ts | 10 ++++++---- .../src/modules/trade/hooks/useResetRecipient.ts | 8 ++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/cowswap-frontend/src/modules/hooksStore/hooks/useSetRecipientOverride.ts b/apps/cowswap-frontend/src/modules/hooksStore/hooks/useSetRecipientOverride.ts index 016e54ab56..ee779e7cd1 100644 --- a/apps/cowswap-frontend/src/modules/hooksStore/hooks/useSetRecipientOverride.ts +++ b/apps/cowswap-frontend/src/modules/hooksStore/hooks/useSetRecipientOverride.ts @@ -1,16 +1,18 @@ -import { useEffect } from 'react' +import { useLayoutEffect } from 'react' import { useSwapActionHandlers } from 'modules/swap/hooks/useSwapState' +import { useIsHooksTradeType } from 'modules/trade' import { usePostHooksRecipientOverride } from './usePostHooksRecipientOverride' export function useSetRecipientOverride() { const { onChangeRecipient } = useSwapActionHandlers() const hookRecipientOverride = usePostHooksRecipientOverride() + const isHooksTradeType = useIsHooksTradeType() - useEffect(() => { - if (!hookRecipientOverride) return + useLayoutEffect(() => { + if (!hookRecipientOverride || !isHooksTradeType) return onChangeRecipient(hookRecipientOverride) - }, [hookRecipientOverride]) + }, [hookRecipientOverride, isHooksTradeType]) } diff --git a/apps/cowswap-frontend/src/modules/trade/hooks/useResetRecipient.ts b/apps/cowswap-frontend/src/modules/trade/hooks/useResetRecipient.ts index 79ccb97c1c..cefa96f98e 100644 --- a/apps/cowswap-frontend/src/modules/trade/hooks/useResetRecipient.ts +++ b/apps/cowswap-frontend/src/modules/trade/hooks/useResetRecipient.ts @@ -9,12 +9,14 @@ import { useTradeStateFromUrl } from './setupTradeState/useTradeStateFromUrl' import { useDerivedTradeState } from './useDerivedTradeState' import { useIsAlternativeOrderModalVisible } from '../state/alternativeOrder' +import { useIsHooksTradeType } from './useIsHooksTradeType' export function useResetRecipient(onChangeRecipient: (recipient: string | null) => void): null { const isAlternativeOrderModalVisible = useIsAlternativeOrderModalVisible() const tradeState = useDerivedTradeState() const tradeStateFromUrl = useTradeStateFromUrl() const postHooksRecipientOverride = usePostHooksRecipientOverride() + const isHooksTradeType = useIsHooksTradeType() const hasTradeState = !!tradeStateFromUrl const { chainId } = useWalletInfo() @@ -45,10 +47,12 @@ export function useResetRecipient(onChangeRecipient: (recipient: string | null) * Remove recipient override when its source hook was deleted */ useEffect(() => { - if (!postHooksRecipientOverride && recipient === prevPostHooksRecipientOverride) { + const recipientOverrideWasRemoved = !postHooksRecipientOverride && recipient === prevPostHooksRecipientOverride + + if (recipientOverrideWasRemoved || !isHooksTradeType) { onChangeRecipient(null) } - }, [recipient, postHooksRecipientOverride, prevPostHooksRecipientOverride, onChangeRecipient]) + }, [recipient, isHooksTradeType, postHooksRecipientOverride, prevPostHooksRecipientOverride, onChangeRecipient]) return null }