Commit 1f78c236 authored by cartcrom's avatar cartcrom Committed by GitHub

fix: phaseflagging token import modals (#4317)

added phase flag check to conditionally render old vs new token import modal
parent 09035643
import { Currency, Token } from '@uniswap/sdk-core' import { Currency, Token } from '@uniswap/sdk-core'
import { TokenList } from '@uniswap/token-lists' import { TokenList } from '@uniswap/token-lists'
import TokenSafety from 'components/TokenSafety' import TokenSafety from 'components/TokenSafety'
import { Phase0Variant, usePhase0Flag } from 'featureFlags/flags/phase0'
import usePrevious from 'hooks/usePrevious' import usePrevious from 'hooks/usePrevious'
import { useCallback, useEffect, useState } from 'react' import { useCallback, useEffect, useState } from 'react'
import { WrappedTokenInfo } from 'state/lists/wrappedTokenInfo'
import useLast from '../../hooks/useLast' import useLast from '../../hooks/useLast'
import Modal from '../Modal' import Modal from '../Modal'
import { CurrencySearch } from './CurrencySearch' import { CurrencySearch } from './CurrencySearch'
import { ImportList } from './ImportList' import { ImportList } from './ImportList'
import { ImportToken } from './ImportToken'
import Manage from './Manage' import Manage from './Manage'
interface CurrencySearchModalProps { interface CurrencySearchModalProps {
...@@ -72,6 +75,8 @@ export default function CurrencySearchModal({ ...@@ -72,6 +75,8 @@ export default function CurrencySearchModal({
[setModalView, prevView] [setModalView, prevView]
) )
const phase0Flag = usePhase0Flag()
// change min height if not searching // change min height if not searching
let minHeight: number | undefined = 80 let minHeight: number | undefined = 80
let content = null let content = null
...@@ -96,12 +101,21 @@ export default function CurrencySearchModal({ ...@@ -96,12 +101,21 @@ export default function CurrencySearchModal({
case CurrencyModalView.importToken: case CurrencyModalView.importToken:
if (importToken) { if (importToken) {
minHeight = undefined minHeight = undefined
content = ( content =
phase0Flag === Phase0Variant.Enabled ? (
<TokenSafety <TokenSafety
tokenAddress={importToken.address} tokenAddress={importToken.address}
onContinue={() => handleCurrencySelect(importToken)} onContinue={() => handleCurrencySelect(importToken)}
onCancel={handleBackImport} onCancel={handleBackImport}
/> />
) : (
<ImportToken
tokens={[importToken]}
onDismiss={onDismiss}
list={importToken instanceof WrappedTokenInfo ? importToken.list : undefined}
onBack={handleBackImport}
handleCurrencySelect={handleCurrencySelect}
/>
) )
} }
break break
......
...@@ -22,6 +22,7 @@ import UnsupportedCurrencyFooter from 'components/swap/UnsupportedCurrencyFooter ...@@ -22,6 +22,7 @@ import UnsupportedCurrencyFooter from 'components/swap/UnsupportedCurrencyFooter
import TokenSafetyModal from 'components/TokenSafety/TokenSafetyModal' import TokenSafetyModal from 'components/TokenSafety/TokenSafetyModal'
import { MouseoverTooltip } from 'components/Tooltip' import { MouseoverTooltip } from 'components/Tooltip'
import { isSupportedChain } from 'constants/chains' import { isSupportedChain } from 'constants/chains'
import { Phase0Variant, usePhase0Flag } from 'featureFlags/flags/phase0'
import { useSwapCallback } from 'hooks/useSwapCallback' import { useSwapCallback } from 'hooks/useSwapCallback'
import useTransactionDeadline from 'hooks/useTransactionDeadline' import useTransactionDeadline from 'hooks/useTransactionDeadline'
import JSBI from 'jsbi' import JSBI from 'jsbi'
...@@ -48,6 +49,7 @@ import ConfirmSwapModal from '../../components/swap/ConfirmSwapModal' ...@@ -48,6 +49,7 @@ import ConfirmSwapModal from '../../components/swap/ConfirmSwapModal'
import { ArrowWrapper, SwapCallbackError, Wrapper } from '../../components/swap/styleds' import { ArrowWrapper, SwapCallbackError, Wrapper } from '../../components/swap/styleds'
import SwapHeader from '../../components/swap/SwapHeader' import SwapHeader from '../../components/swap/SwapHeader'
import { SwitchLocaleLink } from '../../components/SwitchLocaleLink' import { SwitchLocaleLink } from '../../components/SwitchLocaleLink'
import TokenWarningModal from '../../components/TokenWarningModal'
import { TOKEN_SHORTHANDS } from '../../constants/tokens' import { TOKEN_SHORTHANDS } from '../../constants/tokens'
import { useAllTokens, useCurrency } from '../../hooks/Tokens' import { useAllTokens, useCurrency } from '../../hooks/Tokens'
import { ApprovalState, useApprovalOptimizedTrade, useApproveCallbackFromTrade } from '../../hooks/useApproveCallback' import { ApprovalState, useApprovalOptimizedTrade, useApproveCallbackFromTrade } from '../../hooks/useApproveCallback'
...@@ -125,6 +127,7 @@ export default function Swap() { ...@@ -125,6 +127,7 @@ export default function Swap() {
const loadedUrlParams = useDefaultsFromURLSearch() const loadedUrlParams = useDefaultsFromURLSearch()
const [newSwapQuoteNeedsLogging, setNewSwapQuoteNeedsLogging] = useState(true) const [newSwapQuoteNeedsLogging, setNewSwapQuoteNeedsLogging] = useState(true)
const [fetchingSwapQuoteStartTime, setFetchingSwapQuoteStartTime] = useState<Date | undefined>() const [fetchingSwapQuoteStartTime, setFetchingSwapQuoteStartTime] = useState<Date | undefined>()
const phase0Flag = usePhase0Flag()
// token warning stuff // token warning stuff
const [loadedInputCurrency, loadedOutputCurrency] = [ const [loadedInputCurrency, loadedOutputCurrency] = [
...@@ -491,6 +494,7 @@ export default function Swap() { ...@@ -491,6 +494,7 @@ export default function Swap() {
return ( return (
<Trace page={PageName.SWAP_PAGE} shouldLogImpression> <Trace page={PageName.SWAP_PAGE} shouldLogImpression>
<> <>
{phase0Flag === Phase0Variant.Enabled ? (
<TokenSafetyModal <TokenSafetyModal
isOpen={importTokensNotInDefault.length > 0 && !dismissTokenWarning} isOpen={importTokensNotInDefault.length > 0 && !dismissTokenWarning}
tokenAddress={importTokensNotInDefault[0]?.address} tokenAddress={importTokensNotInDefault[0]?.address}
...@@ -498,6 +502,14 @@ export default function Swap() { ...@@ -498,6 +502,14 @@ export default function Swap() {
onContinue={handleConfirmTokenWarning} onContinue={handleConfirmTokenWarning}
onCancel={handleDismissTokenWarning} onCancel={handleDismissTokenWarning}
/> />
) : (
<TokenWarningModal
isOpen={importTokensNotInDefault.length > 0 && !dismissTokenWarning}
tokens={importTokensNotInDefault}
onConfirm={handleConfirmTokenWarning}
onDismiss={handleDismissTokenWarning}
/>
)}
<AppBody> <AppBody>
<SwapHeader allowedSlippage={allowedSlippage} /> <SwapHeader allowedSlippage={allowedSlippage} />
<Wrapper id="swap-page"> <Wrapper id="swap-page">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment