Commit 4a8dbda0 authored by Zach Pomerantz's avatar Zach Pomerantz Committed by GitHub

fix: memoize nested components (#3483)

parent 0cbb24c6
......@@ -2,6 +2,7 @@ import { Trans } from '@lingui/macro'
import Row from 'lib/components/Row'
import { Logo } from 'lib/icons'
import styled, { brand, ThemedText } from 'lib/theme'
import { memo } from 'react'
import ExternalLink from './ExternalLink'
......@@ -24,7 +25,7 @@ const UniswapA = styled(ExternalLink)`
}
`
export default function BrandedFooter() {
export default memo(function BrandedFooter() {
return (
<Row justify="center">
<UniswapA href={`https://uniswap.org/`}>
......@@ -37,4 +38,4 @@ export default function BrandedFooter() {
</UniswapA>
</Row>
)
}
})
......@@ -18,7 +18,7 @@ import { Spinner } from 'lib/icons'
import { displayTxHashAtom, Field } from 'lib/state/swap'
import { TransactionType } from 'lib/state/transactions'
import { useTheme } from 'lib/theme'
import { useCallback, useEffect, useMemo, useState } from 'react'
import { memo, useCallback, useEffect, useMemo, useState } from 'react'
import invariant from 'tiny-invariant'
import { ExplorerDataType } from 'utils/getExplorerLink'
......@@ -35,7 +35,7 @@ function useIsPendingApproval(token?: Token, spender?: string): boolean {
return Boolean(usePendingApproval(token, spender))
}
export default function SwapButton({ disabled }: SwapButtonProps) {
export default memo(function SwapButton({ disabled }: SwapButtonProps) {
const { account, chainId } = useActiveWeb3React()
const { tokenColorExtraction } = useTheme()
......@@ -234,4 +234,4 @@ export default function SwapButton({ disabled }: SwapButtonProps) {
)}
</>
)
}
})
......@@ -5,7 +5,7 @@ import useActiveWeb3React from 'lib/hooks/useActiveWeb3React'
import { largeIconCss } from 'lib/icons'
import { Field } from 'lib/state/swap'
import styled, { ThemedText } from 'lib/theme'
import { useMemo } from 'react'
import { memo, useMemo } from 'react'
import { TradeState } from 'state/routing/types'
import Row from '../../Row'
......@@ -17,7 +17,7 @@ const ToolbarRow = styled(Row)`
${largeIconCss}
`
export default function Toolbar({ disabled }: { disabled?: boolean }) {
export default memo(function Toolbar({ disabled }: { disabled?: boolean }) {
const { chainId } = useActiveWeb3React()
const {
trade: { trade, state },
......@@ -78,4 +78,4 @@ export default function Toolbar({ disabled }: { disabled?: boolean }) {
</ThemedText.Caption>
</>
)
}
})
......@@ -5,7 +5,7 @@ import { useCurrencyBalances } from 'lib/hooks/useCurrencyBalance'
import useNativeCurrency from 'lib/hooks/useNativeCurrency'
import useTokenList, { useIsTokenListLoaded, useQueryCurrencies } from 'lib/hooks/useTokenList'
import styled, { ThemedText } from 'lib/theme'
import { ElementRef, useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { ElementRef, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { currencyId } from 'utils/currencyId'
import Column from '../Column'
......@@ -123,7 +123,7 @@ interface TokenSelectProps {
onSelect: (value: Currency) => void
}
export default function TokenSelect({ value, collapsed, disabled, onSelect }: TokenSelectProps) {
export default memo(function TokenSelect({ value, collapsed, disabled, onSelect }: TokenSelectProps) {
usePrefetchBalances()
const [open, setOpen] = useState(false)
......@@ -145,4 +145,4 @@ export default function TokenSelect({ value, collapsed, disabled, onSelect }: To
)}
</>
)
}
})
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