ci(release): publish latest release

parent 009ca13d
* @uniswap/web-admins
IPFS hash of the deployment: We are back with some small updates! Here’s the latest:
- CIDv0: `QmfX5PhEdtW5GsS87h9TYNv2391xFgcvskiRhLevHBv4UB`
- CIDv1: `bafybeih7ijsp2ffbfy5ujtegykklef5m5qeabsgzpk22ttclhojwhcy7hq` Expanded Fiat Onramp Providers: We’ve continued to add more options for onramp providers to make it easier to change your fiat into crypto, without leaving the app.
The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org). Other Changes:
You can also access the Uniswap Interface from an IPFS gateway. - Disconnect from all apps in one click, in the Manage Connections page.
**BEWARE**: The Uniswap interface uses [`localStorage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) to remember your settings, such as which tokens you have imported. - More detailed error messages for WalletConnect-related issues.
**You should always use an IPFS gateway that enforces origin separation**, or our hosted deployment of the latest release at [app.uniswap.org](https://app.uniswap.org). - Various bug fixes and performance improvements
Your Uniswap settings are never remembered across different URLs.
IPFS gateways:
- https://bafybeih7ijsp2ffbfy5ujtegykklef5m5qeabsgzpk22ttclhojwhcy7hq.ipfs.dweb.link/
- https://bafybeih7ijsp2ffbfy5ujtegykklef5m5qeabsgzpk22ttclhojwhcy7hq.ipfs.cf-ipfs.com/
- [ipfs://QmfX5PhEdtW5GsS87h9TYNv2391xFgcvskiRhLevHBv4UB/](ipfs://QmfX5PhEdtW5GsS87h9TYNv2391xFgcvskiRhLevHBv4UB/)
### 5.61.3 (2024-12-09)
### Bug Fixes
* **web:** fix broken link for providing lps (#14372) (#14413) 295fd19
web/5.61.3 mobile/1.40.1
\ No newline at end of file \ No newline at end of file
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
"browserslist": "last 2 chrome versions", "browserslist": "last 2 chrome versions",
"dependencies": { "dependencies": {
"@apollo/client": "3.10.4", "@apollo/client": "3.10.4",
"@datadog/browser-logs": "5.20.0",
"@datadog/browser-rum": "5.23.3", "@datadog/browser-rum": "5.23.3",
"@ethersproject/providers": "5.7.2", "@ethersproject/providers": "5.7.2",
"@metamask/rpc-errors": "6.2.1", "@metamask/rpc-errors": "6.2.1",
...@@ -13,7 +12,7 @@ ...@@ -13,7 +12,7 @@
"@sentry/react": "7.80.0", "@sentry/react": "7.80.0",
"@sentry/webpack-plugin": "2.10.3", "@sentry/webpack-plugin": "2.10.3",
"@svgr/webpack": "8.0.1", "@svgr/webpack": "8.0.1",
"@tamagui/core": "1.114.4", "@tamagui/core": "1.108.4",
"@types/uuid": "9.0.1", "@types/uuid": "9.0.1",
"@uniswap/analytics-events": "2.39.0", "@uniswap/analytics-events": "2.39.0",
"@uniswap/uniswapx-sdk": "2.1.0-beta.18", "@uniswap/uniswapx-sdk": "2.1.0-beta.18",
...@@ -32,7 +31,7 @@ ...@@ -32,7 +31,7 @@
"react-native-gesture-handler": "2.19.0", "react-native-gesture-handler": "2.19.0",
"react-native-reanimated": "3.15.0", "react-native-reanimated": "3.15.0",
"react-native-svg": "15.1.0", "react-native-svg": "15.1.0",
"react-native-web": "0.19.13", "react-native-web": "0.19.10",
"react-qr-code": "2.0.12", "react-qr-code": "2.0.12",
"react-redux": "8.0.5", "react-redux": "8.0.5",
"react-router-dom": "6.10.0", "react-router-dom": "6.10.0",
...@@ -78,7 +77,7 @@ ...@@ -78,7 +77,7 @@
"serve": "14.2.4", "serve": "14.2.4",
"statsig-js": "4.41.0", "statsig-js": "4.41.0",
"swc-loader": "0.2.6", "swc-loader": "0.2.6",
"tamagui-loader": "1.114.4", "tamagui-loader": "1.108.4",
"typescript": "5.3.3", "typescript": "5.3.3",
"webpack": "5.90.0", "webpack": "5.90.0",
"webpack-cli": "5.1.4", "webpack-cli": "5.1.4",
......
import { useEffect } from 'react' import { useEffect } from 'react'
import { useColorScheme } from 'react-native' import { useColorScheme } from 'react-native'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useAppFiatCurrencyInfo } from 'uniswap/src/features/fiatCurrency/hooks' import { useAppFiatCurrencyInfo } from 'uniswap/src/features/fiatCurrency/hooks'
import { useCurrentLanguage } from 'uniswap/src/features/language/hooks' import { useCurrentLanguage } from 'uniswap/src/features/language/hooks'
import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from 'uniswap/src/features/settings/hooks' import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from 'uniswap/src/features/settings/hooks'
......
import { datadogLogs } from '@datadog/browser-logs'
import { datadogRum } from '@datadog/browser-rum' import { datadogRum } from '@datadog/browser-rum'
import { getDatadogEnvironment } from 'src/app/version' import { getDatadogEnvironment } from 'src/app/version'
import { config } from 'uniswap/src/config' import { config } from 'uniswap/src/config'
...@@ -16,16 +15,12 @@ export async function initializeDatadog(appName: string): Promise<void> { ...@@ -16,16 +15,12 @@ export async function initializeDatadog(appName: string): Promise<void> {
return return
} }
const sharedDatadogConfig = { datadogRum.init({
applicationId: config.datadogProjectId,
clientToken: config.datadogClientToken, clientToken: config.datadogClientToken,
service: `extension-${getDatadogEnvironment()}`, service: `extension-${getDatadogEnvironment()}`,
env: getDatadogEnvironment(), env: getDatadogEnvironment(),
version: process.env.VERSION, version: process.env.VERSION,
}
datadogRum.init({
...sharedDatadogConfig,
applicationId: config.datadogProjectId,
sessionSampleRate: 100, sessionSampleRate: 100,
sessionReplaySampleRate: 0, sessionReplaySampleRate: 0,
trackResources: true, trackResources: true,
...@@ -49,12 +44,6 @@ export async function initializeDatadog(appName: string): Promise<void> { ...@@ -49,12 +44,6 @@ export async function initializeDatadog(appName: string): Promise<void> {
}, },
}) })
datadogLogs.init({
...sharedDatadogConfig,
site: 'datadoghq.com',
forwardErrorsToLogs: false,
})
try { try {
const userId = await getUniqueId() const userId = await getUniqueId()
datadogRum.setUser({ datadogRum.setUser({
......
...@@ -6,7 +6,7 @@ import { DappRequestStoreItem } from 'src/app/features/dappRequests/slice' ...@@ -6,7 +6,7 @@ import { DappRequestStoreItem } from 'src/app/features/dappRequests/slice'
import { DappRequestType } from 'src/app/features/dappRequests/types/DappRequestTypes' import { DappRequestType } from 'src/app/features/dappRequests/types/DappRequestTypes'
import { Anchor, AnimatePresence, Button, Flex, Text, UniversalImage, UniversalImageResizeMode, styled } from 'ui/src' import { Anchor, AnimatePresence, Button, Flex, Text, UniversalImage, UniversalImageResizeMode, styled } from 'ui/src'
import { borderRadii, iconSizes } from 'ui/src/theme' import { borderRadii, iconSizes } from 'ui/src/theme'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { GasFeeResult } from 'uniswap/src/features/gas/types' import { GasFeeResult } from 'uniswap/src/features/gas/types'
import { hasSufficientFundsIncludingGas } from 'uniswap/src/features/gas/utils' import { hasSufficientFundsIncludingGas } from 'uniswap/src/features/gas/utils'
......
...@@ -5,7 +5,7 @@ import { ETH_ADDRESS } from 'src/app/features/dappRequests/requestContent/EthSen ...@@ -5,7 +5,7 @@ import { ETH_ADDRESS } from 'src/app/features/dappRequests/requestContent/EthSen
import { formatUnits, useSwapDetails } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/utils' import { formatUnits, useSwapDetails } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/utils'
import { SignTypedDataRequest, SwapSendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes' import { SignTypedDataRequest, SwapSendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
import { DEFAULT_NATIVE_ADDRESS } from 'uniswap/src/features/chains/chainInfo' import { DEFAULT_NATIVE_ADDRESS } from 'uniswap/src/features/chains/chainInfo'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { toSupportedChainId } from 'uniswap/src/features/chains/utils' import { toSupportedChainId } from 'uniswap/src/features/chains/utils'
import { CurrencyInfo } from 'uniswap/src/features/dataApi/types' import { CurrencyInfo } from 'uniswap/src/features/dataApi/types'
import { GasFeeResult } from 'uniswap/src/features/gas/types' import { GasFeeResult } from 'uniswap/src/features/gas/types'
......
...@@ -4,7 +4,7 @@ import { useDappLastChainId } from 'src/app/features/dapp/hooks' ...@@ -4,7 +4,7 @@ import { useDappLastChainId } from 'src/app/features/dapp/hooks'
import { DappRequestStoreItem } from 'src/app/features/dappRequests/slice' import { DappRequestStoreItem } from 'src/app/features/dappRequests/slice'
import { SendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes' import { SendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes'
import { Flex, Text } from 'ui/src' import { Flex, Text } from 'ui/src'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useGasFeeFormattedAmounts, useTransactionGasFee } from 'uniswap/src/features/gas/hooks' import { useGasFeeFormattedAmounts, useTransactionGasFee } from 'uniswap/src/features/gas/hooks'
import { useActiveAccountAddressWithThrow, useDisplayName } from 'wallet/src/features/wallet/hooks' import { useActiveAccountAddressWithThrow, useDisplayName } from 'wallet/src/features/wallet/hooks'
......
...@@ -6,7 +6,7 @@ import { AppRoutes } from 'src/app/navigation/constants' ...@@ -6,7 +6,7 @@ import { AppRoutes } from 'src/app/navigation/constants'
import { navigate } from 'src/app/navigation/state' import { navigate } from 'src/app/navigation/state'
import { Flex, Text, getTokenValue, useMedia } from 'ui/src' import { Flex, Text, getTokenValue, useMedia } from 'ui/src'
import { ArrowDownCircle, Buy, CoinConvert, SendAction } from 'ui/src/components/icons' import { ArrowDownCircle, Buy, CoinConvert, SendAction } from 'ui/src/components/icons'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { ElementName } from 'uniswap/src/features/telemetry/constants' import { ElementName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
import { TestnetModeModal } from 'uniswap/src/features/testnets/TestnetModeModal' import { TestnetModeModal } from 'uniswap/src/features/testnets/TestnetModeModal'
......
...@@ -9,7 +9,7 @@ import { Check, Power } from 'ui/src/components/icons' ...@@ -9,7 +9,7 @@ import { Check, Power } from 'ui/src/components/icons'
import { usePreventOverflowBelowFold } from 'ui/src/hooks/usePreventOverflowBelowFold' import { usePreventOverflowBelowFold } from 'ui/src/hooks/usePreventOverflowBelowFold'
import { iconSizes } from 'ui/src/theme' import { iconSizes } from 'ui/src/theme'
import { NetworkLogo } from 'uniswap/src/components/CurrencyLogo/NetworkLogo' import { NetworkLogo } from 'uniswap/src/components/CurrencyLogo/NetworkLogo'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { getChainLabel } from 'uniswap/src/features/chains/utils' import { getChainLabel } from 'uniswap/src/features/chains/utils'
import { pushNotification } from 'uniswap/src/features/notifications/slice' import { pushNotification } from 'uniswap/src/features/notifications/slice'
......
...@@ -10,7 +10,7 @@ import { BaseCard } from 'uniswap/src/components/BaseCard/BaseCard' ...@@ -10,7 +10,7 @@ import { BaseCard } from 'uniswap/src/components/BaseCard/BaseCard'
import { InfoLinkModal } from 'uniswap/src/components/modals/InfoLinkModal' import { InfoLinkModal } from 'uniswap/src/components/modals/InfoLinkModal'
import { uniswapUrls } from 'uniswap/src/constants/urls' import { uniswapUrls } from 'uniswap/src/constants/urls'
import { SafetyLevel } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks' import { SafetyLevel } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { PortfolioBalance } from 'uniswap/src/features/dataApi/types' import { PortfolioBalance } from 'uniswap/src/features/dataApi/types'
import { ElementName, ModalName, SectionName, WalletEventName } from 'uniswap/src/features/telemetry/constants' import { ElementName, ModalName, SectionName, WalletEventName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
......
...@@ -13,10 +13,10 @@ exports[`KeyboardKey Component renders correctly with state Highlighted 1`] = ` ...@@ -13,10 +13,10 @@ exports[`KeyboardKey Component renders correctly with state Highlighted 1`] = `
class=" t_light _dsp_contents is_Theme" class=" t_light _dsp_contents is_Theme"
> >
<div <div
class="_display-flex _flexBasis-auto _boxSizing-border-box _position-relative _minHeight-0px _minWidth-0px _flexShrink-0 _flexDirection-column _alignItems-center _backgroundColor-surface1 _borderTopColor-accent2Hove112785 _borderRightColor-accent2Hove112785 _borderBottomColor-accent2Hove112785 _borderLeftColor-accent2Hove112785 _borderTopLeftRadius-t-radius-ro291586424 _borderTopRightRadius-t-radius-ro291586424 _borderBottomRightRadius-t-radius-ro291586424 _borderBottomLeftRadius-t-radius-ro291586424 _borderTopWidth-t-space-spa94665587 _borderRightWidth-t-space-spa94665587 _borderBottomWidth-t-space-spa94665587 _borderLeftWidth-t-space-spa94665587 _height-70px _justifyContent-center _pr-t-space-spa1360334043 _pl-t-space-spa1360334043 _borderBottomStyle-solid _borderTopStyle-solid _borderLeftStyle-solid _borderRightStyle-solid _boxShadow-0px7px0pxva651413887" class="_display-flex _flexBasis-auto _boxSizing-border-box _position-relative _minHeight-0px _minWidth-0px _flexShrink-0 _flexDirection-column _alignItems-center _backgroundColor-568007324 _borderTopColor-170210283 _borderRightColor-170210283 _borderBottomColor-170210283 _borderLeftColor-170210283 _borderTopLeftRadius-1307610060 _borderTopRightRadius-1307610060 _borderBottomRightRadius-1307610060 _borderBottomLeftRadius-1307610060 _borderTopWidth-1481558338 _borderRightWidth-1481558338 _borderBottomWidth-1481558338 _borderLeftWidth-1481558338 _height-70px _justifyContent-center _pr-1316330176 _pl-1316330176 _borderBottomStyle-solid _borderTopStyle-solid _borderLeftStyle-solid _borderRightStyle-solid _boxShadow-1750371555"
> >
<span <span
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-accent1 _fontFamily-f-family _wordWrap-break-word _fontSize-28px _lineHeight-f-lineHeigh507465454 _fontWeight-f-weight-bo3548" class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-1380577629 _fontFamily-299667014 _wordWrap-break-word _fontSize-28px _lineHeight-222976542 _fontWeight-233016202"
data-disable-theme="true" data-disable-theme="true"
> >
Shift Shift
...@@ -41,10 +41,10 @@ exports[`KeyboardKey Component renders correctly with state KeyDown 1`] = ` ...@@ -41,10 +41,10 @@ exports[`KeyboardKey Component renders correctly with state KeyDown 1`] = `
class=" t_light _dsp_contents is_Theme" class=" t_light _dsp_contents is_Theme"
> >
<div <div
class="_display-flex _flexBasis-auto _boxSizing-border-box _position-relative _minHeight-0px _minWidth-0px _flexShrink-0 _flexDirection-column _alignItems-center _backgroundColor-surface1 _borderTopColor-accent2Hove112785 _borderRightColor-accent2Hove112785 _borderBottomColor-accent2Hove112785 _borderLeftColor-accent2Hove112785 _borderTopLeftRadius-t-radius-ro291586424 _borderTopRightRadius-t-radius-ro291586424 _borderBottomRightRadius-t-radius-ro291586424 _borderBottomLeftRadius-t-radius-ro291586424 _borderTopWidth-t-space-spa94665587 _borderRightWidth-t-space-spa94665587 _borderBottomWidth-t-space-spa94665587 _borderLeftWidth-t-space-spa94665587 _height-70px _justifyContent-center _pr-t-space-spa1360334043 _pl-t-space-spa1360334043 _top-7px _borderBottomStyle-solid _borderTopStyle-solid _borderLeftStyle-solid _borderRightStyle-solid _boxShadow-0px0pxvar--100262595" class="_display-flex _flexBasis-auto _boxSizing-border-box _position-relative _minHeight-0px _minWidth-0px _flexShrink-0 _flexDirection-column _alignItems-center _backgroundColor-568007324 _borderTopColor-170210283 _borderRightColor-170210283 _borderBottomColor-170210283 _borderLeftColor-170210283 _borderTopLeftRadius-1307610060 _borderTopRightRadius-1307610060 _borderBottomRightRadius-1307610060 _borderBottomLeftRadius-1307610060 _borderTopWidth-1481558338 _borderRightWidth-1481558338 _borderBottomWidth-1481558338 _borderLeftWidth-1481558338 _height-70px _justifyContent-center _pr-1316330176 _pl-1316330176 _top-7px _borderBottomStyle-solid _borderTopStyle-solid _borderLeftStyle-solid _borderRightStyle-solid _boxShadow-1083284829"
> >
<span <span
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-accent1 _fontFamily-f-family _wordWrap-break-word _fontSize-28px _lineHeight-f-lineHeigh507465454 _fontWeight-f-weight-bo3548" class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-1380577629 _fontFamily-299667014 _wordWrap-break-word _fontSize-28px _lineHeight-222976542 _fontWeight-233016202"
data-disable-theme="true" data-disable-theme="true"
> >
Shift Shift
...@@ -69,10 +69,10 @@ exports[`KeyboardKey Component renders correctly with state KeyUp 1`] = ` ...@@ -69,10 +69,10 @@ exports[`KeyboardKey Component renders correctly with state KeyUp 1`] = `
class=" t_light _dsp_contents is_Theme" class=" t_light _dsp_contents is_Theme"
> >
<div <div
class="_display-flex _flexBasis-auto _boxSizing-border-box _position-relative _minHeight-0px _minWidth-0px _flexShrink-0 _flexDirection-column _alignItems-center _backgroundColor-surface1 _borderTopColor-surface3 _borderRightColor-surface3 _borderBottomColor-surface3 _borderLeftColor-surface3 _borderTopLeftRadius-t-radius-ro291586424 _borderTopRightRadius-t-radius-ro291586424 _borderBottomRightRadius-t-radius-ro291586424 _borderBottomLeftRadius-t-radius-ro291586424 _borderTopWidth-t-space-spa94665587 _borderRightWidth-t-space-spa94665587 _borderBottomWidth-t-space-spa94665587 _borderLeftWidth-t-space-spa94665587 _height-70px _justifyContent-center _pr-t-space-spa1360334043 _pl-t-space-spa1360334043 _borderBottomStyle-solid _borderTopStyle-solid _borderLeftStyle-solid _borderRightStyle-solid _boxShadow-0px7px0pxva612953881" class="_display-flex _flexBasis-auto _boxSizing-border-box _position-relative _minHeight-0px _minWidth-0px _flexShrink-0 _flexDirection-column _alignItems-center _backgroundColor-568007324 _borderTopColor-568007262 _borderRightColor-568007262 _borderBottomColor-568007262 _borderLeftColor-568007262 _borderTopLeftRadius-1307610060 _borderTopRightRadius-1307610060 _borderBottomRightRadius-1307610060 _borderBottomLeftRadius-1307610060 _borderTopWidth-1481558338 _borderRightWidth-1481558338 _borderBottomWidth-1481558338 _borderLeftWidth-1481558338 _height-70px _justifyContent-center _pr-1316330176 _pl-1316330176 _borderBottomStyle-solid _borderTopStyle-solid _borderLeftStyle-solid _borderRightStyle-solid _boxShadow-1880567627"
> >
<span <span
class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-neutral2 _fontFamily-f-family _wordWrap-break-word _fontSize-28px _lineHeight-f-lineHeigh507465454 _fontWeight-f-weight-bo3548" class="font_body _display-inline _boxSizing-border-box _whiteSpace-pre-wrap _mt-0px _mr-0px _mb-0px _ml-0px _color-843135005 _fontFamily-299667014 _wordWrap-break-word _fontSize-28px _lineHeight-222976542 _fontWeight-233016202"
data-disable-theme="true" data-disable-theme="true"
> >
Shift Shift
......
...@@ -37,7 +37,7 @@ import { ...@@ -37,7 +37,7 @@ import {
import { iconSizes } from 'ui/src/theme' import { iconSizes } from 'ui/src/theme'
import { uniswapUrls } from 'uniswap/src/constants/urls' import { uniswapUrls } from 'uniswap/src/constants/urls'
import { resetUniswapBehaviorHistory } from 'uniswap/src/features/behaviorHistory/slice' import { resetUniswapBehaviorHistory } from 'uniswap/src/features/behaviorHistory/slice'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { FiatCurrency, ORDERED_CURRENCIES } from 'uniswap/src/features/fiatCurrency/constants' import { FiatCurrency, ORDERED_CURRENCIES } from 'uniswap/src/features/fiatCurrency/constants'
import { getFiatCurrencyName, useAppFiatCurrencyInfo } from 'uniswap/src/features/fiatCurrency/hooks' import { getFiatCurrencyName, useAppFiatCurrencyInfo } from 'uniswap/src/features/fiatCurrency/hooks'
import { useCurrentLanguageInfo } from 'uniswap/src/features/language/hooks' import { useCurrentLanguageInfo } from 'uniswap/src/features/language/hooks'
......
import { useState } from 'react' import { useState } from 'react'
import { useExtensionNavigation } from 'src/app/navigation/utils' import { useExtensionNavigation } from 'src/app/navigation/utils'
import { Flex } from 'ui/src' import { Flex } from 'ui/src'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useHighestBalanceNativeCurrencyId } from 'uniswap/src/features/dataApi/balances' import { useHighestBalanceNativeCurrencyId } from 'uniswap/src/features/dataApi/balances'
import { useSwapPrefilledState } from 'uniswap/src/features/transactions/swap/hooks/useSwapPrefilledState' import { useSwapPrefilledState } from 'uniswap/src/features/transactions/swap/hooks/useSwapPrefilledState'
import { prepareSwapFormState } from 'uniswap/src/features/transactions/types/transactionState' import { prepareSwapFormState } from 'uniswap/src/features/transactions/types/transactionState'
......
...@@ -5,7 +5,7 @@ import { useCopyToClipboard } from 'src/app/hooks/useOnCopyToClipboard' ...@@ -5,7 +5,7 @@ import { useCopyToClipboard } from 'src/app/hooks/useOnCopyToClipboard'
import { AppRoutes, HomeQueryParams, HomeTabs } from 'src/app/navigation/constants' import { AppRoutes, HomeQueryParams, HomeTabs } from 'src/app/navigation/constants'
import { navigate } from 'src/app/navigation/state' import { navigate } from 'src/app/navigation/state'
import { SidebarLocationState, focusOrCreateTokensExploreTab } from 'src/app/navigation/utils' import { SidebarLocationState, focusOrCreateTokensExploreTab } from 'src/app/navigation/utils'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { CopyNotificationType } from 'uniswap/src/features/notifications/types' import { CopyNotificationType } from 'uniswap/src/features/notifications/types'
import { WalletEventName } from 'uniswap/src/features/telemetry/constants' import { WalletEventName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
"manifest_version": 3, "manifest_version": 3,
"name": "Uniswap Extension", "name": "Uniswap Extension",
"description": "The Uniswap Extension is a self-custody crypto wallet that's built for swapping.", "description": "The Uniswap Extension is a self-custody crypto wallet that's built for swapping.",
"version": "1.11.0", "version": "1.10.0",
"minimum_chrome_version": "116", "minimum_chrome_version": "116",
"icons": { "icons": {
"16": "assets/icon16.png", "16": "assets/icon16.png",
......
{ {
"$schema": "https://json.schemastore.org/tsconfig", "$schema": "https://json.schemastore.org/tsconfig",
"display": "Web App", "display": "Web App",
"extends": "../../config/tsconfig/nextjs.json", "extends": "tsconfig/nextjs.json",
"include": [ "include": [
"**/*.ts", "**/*.ts",
"**/*.tsx", "**/*.tsx",
......
...@@ -89,9 +89,9 @@ if (isCI && datadogPropertiesAvailable && !isDetox) { ...@@ -89,9 +89,9 @@ if (isCI && datadogPropertiesAvailable && !isDetox) {
apply from: "../../../../node_modules/@datadog/mobile-react-native/datadog-sourcemaps.gradle" apply from: "../../../../node_modules/@datadog/mobile-react-native/datadog-sourcemaps.gradle"
} }
def devVersionName = "1.41" def devVersionName = "1.40.1"
def betaVersionName = "1.41" def betaVersionName = "1.40.1"
def prodVersionName = "1.41" def prodVersionName = "1.40.1"
android { android {
ndkVersion rootProject.ext.ndkVersion ndkVersion rootProject.ext.ndkVersion
......
...@@ -2205,7 +2205,7 @@ ...@@ -2205,7 +2205,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@loader_path/Frameworks", "@loader_path/Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
...@@ -2258,7 +2258,7 @@ ...@@ -2258,7 +2258,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@loader_path/Frameworks", "@loader_path/Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore; PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore;
...@@ -2311,7 +2311,7 @@ ...@@ -2311,7 +2311,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@loader_path/Frameworks", "@loader_path/Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore; PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore;
...@@ -2364,7 +2364,7 @@ ...@@ -2364,7 +2364,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@loader_path/Frameworks", "@loader_path/Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore; PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCore;
...@@ -2402,7 +2402,7 @@ ...@@ -2402,7 +2402,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
...@@ -2438,7 +2438,7 @@ ...@@ -2438,7 +2438,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests; PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests;
...@@ -2473,7 +2473,7 @@ ...@@ -2473,7 +2473,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests; PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests;
...@@ -2508,7 +2508,7 @@ ...@@ -2508,7 +2508,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests; PRODUCT_BUNDLE_IDENTIFIER = schemes.WidgetsCoreTests;
...@@ -2555,7 +2555,7 @@ ...@@ -2555,7 +2555,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
...@@ -2601,7 +2601,7 @@ ...@@ -2601,7 +2601,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.widgets; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.widgets;
...@@ -2647,7 +2647,7 @@ ...@@ -2647,7 +2647,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.widgets; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.widgets;
...@@ -2693,7 +2693,7 @@ ...@@ -2693,7 +2693,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.widgets; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.widgets;
...@@ -2735,7 +2735,7 @@ ...@@ -2735,7 +2735,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
...@@ -2778,7 +2778,7 @@ ...@@ -2778,7 +2778,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.WidgetIntentExtension; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.WidgetIntentExtension;
...@@ -2821,7 +2821,7 @@ ...@@ -2821,7 +2821,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.WidgetIntentExtension; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.WidgetIntentExtension;
...@@ -2864,7 +2864,7 @@ ...@@ -2864,7 +2864,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.WidgetIntentExtension; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.WidgetIntentExtension;
...@@ -2900,7 +2900,7 @@ ...@@ -2900,7 +2900,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
...@@ -2938,7 +2938,7 @@ ...@@ -2938,7 +2938,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
...@@ -3138,7 +3138,7 @@ ...@@ -3138,7 +3138,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
...@@ -3182,7 +3182,7 @@ ...@@ -3182,7 +3182,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.OneSignalNotificationServiceExtension; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.OneSignalNotificationServiceExtension;
...@@ -3293,7 +3293,7 @@ ...@@ -3293,7 +3293,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
...@@ -3364,7 +3364,7 @@ ...@@ -3364,7 +3364,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.OneSignalNotificationServiceExtension; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.beta.OneSignalNotificationServiceExtension;
...@@ -3475,7 +3475,7 @@ ...@@ -3475,7 +3475,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
...@@ -3546,7 +3546,7 @@ ...@@ -3546,7 +3546,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.41; MARKETING_VERSION = 1.40.1;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.OneSignalNotificationServiceExtension; PRODUCT_BUNDLE_IDENTIFIER = com.uniswap.mobile.dev.OneSignalNotificationServiceExtension;
......
const preset = require('../../config/jest-presets/jest/jest-preset') const preset = require('../../config/jest-presets/jest/jest-preset')
/** @type {import('jest').Config} */
module.exports = { module.exports = {
...preset, ...preset,
testTimeout: 15000,
preset: 'jest-expo', preset: 'jest-expo',
displayName: 'Mobile Wallet', displayName: 'Mobile Wallet',
collectCoverageFrom: [ collectCoverageFrom: [
...@@ -21,4 +21,10 @@ module.exports = { ...@@ -21,4 +21,10 @@ module.exports = {
'./jest-setup.js', './jest-setup.js',
'../../node_modules/react-native-gesture-handler/jestSetup.js', '../../node_modules/react-native-gesture-handler/jestSetup.js',
], ],
// we map core/web to tamagui's test bundle, this just makes setup simpler for jest
moduleNameMapper: {
...preset.moduleNameMapper,
'@tamagui/core': '@tamagui/core/native-test',
'@tamagui/web': '@tamagui/core/native-test',
},
} }
...@@ -163,7 +163,7 @@ ...@@ -163,7 +163,7 @@
"@datadog/datadog-ci": "2.39.0", "@datadog/datadog-ci": "2.39.0",
"@faker-js/faker": "7.6.0", "@faker-js/faker": "7.6.0",
"@storybook/react": "7.0.2", "@storybook/react": "7.0.2",
"@tamagui/babel-plugin": "1.114.4", "@tamagui/babel-plugin": "1.108.4",
"@testing-library/react-native": "11.5.0", "@testing-library/react-native": "11.5.0",
"@types/redux-mock-store": "1.0.6", "@types/redux-mock-store": "1.0.6",
"@uniswap/eslint-config": "workspace:^", "@uniswap/eslint-config": "workspace:^",
......
...@@ -5,7 +5,7 @@ import { exploreNavigationRef } from 'src/app/navigation/navigation' ...@@ -5,7 +5,7 @@ import { exploreNavigationRef } from 'src/app/navigation/navigation'
import { useAppStackNavigation } from 'src/app/navigation/types' import { useAppStackNavigation } from 'src/app/navigation/types'
import { closeModal, openModal } from 'src/features/modals/modalSlice' import { closeModal, openModal } from 'src/features/modals/modalSlice'
import { HomeScreenTabIndex } from 'src/screens/HomeScreenTabIndex' import { HomeScreenTabIndex } from 'src/screens/HomeScreenTabIndex'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { FeatureFlags } from 'uniswap/src/features/gating/flags' import { FeatureFlags } from 'uniswap/src/features/gating/flags'
import { useFeatureFlag } from 'uniswap/src/features/gating/hooks' import { useFeatureFlag } from 'uniswap/src/features/gating/hooks'
import { ModalName, WalletEventName } from 'uniswap/src/features/telemetry/constants' import { ModalName, WalletEventName } from 'uniswap/src/features/telemetry/constants'
......
...@@ -3,7 +3,7 @@ import { useDispatch, useSelector } from 'react-redux' ...@@ -3,7 +3,7 @@ import { useDispatch, useSelector } from 'react-redux'
import { closeModal } from 'src/features/modals/modalSlice' import { closeModal } from 'src/features/modals/modalSlice'
import { selectModalState } from 'src/features/modals/selectModalState' import { selectModalState } from 'src/features/modals/selectModalState'
import { SafetyLevel } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks' import { SafetyLevel } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { TokenList } from 'uniswap/src/features/dataApi/types' import { TokenList } from 'uniswap/src/features/dataApi/types'
import { ModalName } from 'uniswap/src/features/telemetry/constants' import { ModalName } from 'uniswap/src/features/telemetry/constants'
import TokenWarningModal from 'uniswap/src/features/tokens/TokenWarningModal' import TokenWarningModal from 'uniswap/src/features/tokens/TokenWarningModal'
......
...@@ -34,42 +34,17 @@ exports[`AccountSwitcher renders correctly 1`] = ` ...@@ -34,42 +34,17 @@ exports[`AccountSwitcher renders correctly 1`] = `
<View <View
style={ style={
{ {
"backgroundColor": { "backgroundColor": "transparent",
"dynamic": { "borderBottomColor": "transparent",
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomLeftRadius": 999999, "borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999, "borderBottomRightRadius": 999999,
"borderBottomWidth": 0, "borderBottomWidth": 0,
"borderLeftColor": { "borderLeftColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftWidth": 0, "borderLeftWidth": 0,
"borderRightColor": { "borderRightColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightWidth": 0, "borderRightWidth": 0,
"borderStyle": "solid", "borderStyle": "solid",
"borderTopColor": { "borderTopColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopLeftRadius": 999999, "borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999, "borderTopRightRadius": 999999,
"borderTopWidth": 0, "borderTopWidth": 0,
...@@ -180,12 +155,7 @@ exports[`AccountSwitcher renders correctly 1`] = ` ...@@ -180,12 +155,7 @@ exports[`AccountSwitcher renders correctly 1`] = `
numberOfLines={1} numberOfLines={1}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"flexShrink": 1, "flexShrink": 1,
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
...@@ -202,7 +172,18 @@ exports[`AccountSwitcher renders correctly 1`] = ` ...@@ -202,7 +172,18 @@ exports[`AccountSwitcher renders correctly 1`] = `
</View> </View>
</View> </View>
<View <View
hitSlop={16} cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
...@@ -220,12 +201,7 @@ exports[`AccountSwitcher renders correctly 1`] = ` ...@@ -220,12 +201,7 @@ exports[`AccountSwitcher renders correctly 1`] = `
style={ style={
{ {
"alignItems": "center", "alignItems": "center",
"backgroundColor": { "backgroundColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomLeftRadius": 999999, "borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999, "borderBottomRightRadius": 999999,
"borderTopLeftRadius": 999999, "borderTopLeftRadius": 999999,
...@@ -246,12 +222,7 @@ exports[`AccountSwitcher renders correctly 1`] = ` ...@@ -246,12 +222,7 @@ exports[`AccountSwitcher renders correctly 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
...@@ -333,45 +304,31 @@ exports[`AccountSwitcher renders correctly 1`] = ` ...@@ -333,45 +304,31 @@ exports[`AccountSwitcher renders correctly 1`] = `
} }
> >
<View <View
cancelable={true}
disabled={false}
focusable={true}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"alignItems": "center", "alignItems": "center",
"backgroundColor": { "backgroundColor": "rgba(34,34,34,0.05)",
"dynamic": { "borderBottomColor": "transparent",
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomLeftRadius": 12, "borderBottomLeftRadius": 12,
"borderBottomRightRadius": 12, "borderBottomRightRadius": 12,
"borderBottomWidth": 1, "borderBottomWidth": 1,
"borderLeftColor": { "borderLeftColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftWidth": 1, "borderLeftWidth": 1,
"borderRightColor": { "borderRightColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightWidth": 1, "borderRightWidth": 1,
"borderStyle": "solid", "borderStyle": "solid",
"borderTopColor": { "borderTopColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopLeftRadius": 12, "borderTopLeftRadius": 12,
"borderTopRightRadius": 12, "borderTopRightRadius": 12,
"borderTopWidth": 1, "borderTopWidth": 1,
...@@ -392,12 +349,7 @@ exports[`AccountSwitcher renders correctly 1`] = ` ...@@ -392,12 +349,7 @@ exports[`AccountSwitcher renders correctly 1`] = `
maxFontSizeMultiplier={1.2} maxFontSizeMultiplier={1.2}
style={ style={
{ {
"color": { "color": "#000000",
"dynamic": {
"dark": "#FFFFFF",
"light": "#000000",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "500", "fontWeight": "500",
...@@ -468,14 +420,18 @@ exports[`AccountSwitcher renders correctly 1`] = ` ...@@ -468,14 +420,18 @@ exports[`AccountSwitcher renders correctly 1`] = `
</View> </View>
</View> </View>
<View <View
hitSlop={ cancelable={true}
{ disabled={false}
"bottom": 5, focusable={true}
"left": 5, hitSlop={[Function]}
"right": 5, minPressDuration={0}
"top": 5, onBlur={[Function]}
} onFocus={[Function]}
} onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
...@@ -503,42 +459,17 @@ exports[`AccountSwitcher renders correctly 1`] = ` ...@@ -503,42 +459,17 @@ exports[`AccountSwitcher renders correctly 1`] = `
style={ style={
{ {
"alignItems": "center", "alignItems": "center",
"backgroundColor": { "backgroundColor": "#FFFFFF",
"dynamic": { "borderBottomColor": "rgba(34,34,34,0.05)",
"dark": "#131313",
"light": "#FFFFFF",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderBottomLeftRadius": 999999, "borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999, "borderBottomRightRadius": 999999,
"borderBottomWidth": 1, "borderBottomWidth": 1,
"borderLeftColor": { "borderLeftColor": "rgba(34,34,34,0.05)",
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderLeftWidth": 1, "borderLeftWidth": 1,
"borderRightColor": { "borderRightColor": "rgba(34,34,34,0.05)",
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderRightWidth": 1, "borderRightWidth": 1,
"borderStyle": "solid", "borderStyle": "solid",
"borderTopColor": { "borderTopColor": "rgba(34,34,34,0.05)",
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderTopLeftRadius": 999999, "borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999, "borderTopRightRadius": 999999,
"borderTopWidth": 1, "borderTopWidth": 1,
...@@ -623,12 +554,7 @@ exports[`AccountSwitcher renders correctly 1`] = ` ...@@ -623,12 +554,7 @@ exports[`AccountSwitcher renders correctly 1`] = `
maxFontSizeMultiplier={1.2} maxFontSizeMultiplier={1.2}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "500", "fontWeight": "500",
......
...@@ -20,7 +20,7 @@ import { Flex, FlexProps, LinearGradient, Text, TouchableArea, useIsDarkMode, us ...@@ -20,7 +20,7 @@ import { Flex, FlexProps, LinearGradient, Text, TouchableArea, useIsDarkMode, us
import { Search } from 'ui/src/components/icons' import { Search } from 'ui/src/components/icons'
import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex' import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex'
import { borderRadii, fonts, opacify } from 'ui/src/theme' import { borderRadii, fonts, opacify } from 'ui/src/theme'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useHighestBalanceNativeCurrencyId } from 'uniswap/src/features/dataApi/balances' import { useHighestBalanceNativeCurrencyId } from 'uniswap/src/features/dataApi/balances'
import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants' import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
......
...@@ -5,7 +5,7 @@ import { navigate as rootNavigate } from 'src/app/navigation/rootNavigation' ...@@ -5,7 +5,7 @@ import { navigate as rootNavigate } from 'src/app/navigation/rootNavigation'
import { useAppStackNavigation, useExploreStackNavigation } from 'src/app/navigation/types' import { useAppStackNavigation, useExploreStackNavigation } from 'src/app/navigation/types'
import { HomeScreenTabIndex } from 'src/screens/HomeScreenTabIndex' import { HomeScreenTabIndex } from 'src/screens/HomeScreenTabIndex'
import { useTransactionListLazyQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks' import { useTransactionListLazyQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { MobileScreens } from 'uniswap/src/types/screens/mobile' import { MobileScreens } from 'uniswap/src/types/screens/mobile'
/** /**
......
...@@ -17,7 +17,7 @@ import { Flex, SegmentedControl, Text } from 'ui/src' ...@@ -17,7 +17,7 @@ import { Flex, SegmentedControl, Text } from 'ui/src'
import GraphCurve from 'ui/src/assets/backgrounds/graph-curve.svg' import GraphCurve from 'ui/src/assets/backgrounds/graph-curve.svg'
import { spacing } from 'ui/src/theme' import { spacing } from 'ui/src/theme'
import { HistoryDuration } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks' import { HistoryDuration } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useAppFiatCurrencyInfo } from 'uniswap/src/features/fiatCurrency/hooks' import { useAppFiatCurrencyInfo } from 'uniswap/src/features/fiatCurrency/hooks'
import { useLocalizationContext } from 'uniswap/src/features/language/LocalizationContext' import { useLocalizationContext } from 'uniswap/src/features/language/LocalizationContext'
import Trace from 'uniswap/src/features/telemetry/Trace' import Trace from 'uniswap/src/features/telemetry/Trace'
......
...@@ -25,12 +25,7 @@ exports[`DatetimeText renders without error 1`] = ` ...@@ -25,12 +25,7 @@ exports[`DatetimeText renders without error 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -257,12 +252,7 @@ exports[`RelativeChangeText renders loading state 1`] = ` ...@@ -257,12 +252,7 @@ exports[`RelativeChangeText renders loading state 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -278,12 +268,7 @@ exports[`RelativeChangeText renders loading state 1`] = ` ...@@ -278,12 +268,7 @@ exports[`RelativeChangeText renders loading state 1`] = `
<View <View
style={ style={
{ {
"backgroundColor": { "backgroundColor": "#F9F9F9",
"dynamic": {
"dark": "#1B1B1B",
"light": "#F9F9F9",
},
},
"borderBottomLeftRadius": 999999, "borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999, "borderBottomRightRadius": 999999,
"borderTopLeftRadius": 999999, "borderTopLeftRadius": 999999,
......
...@@ -6,7 +6,7 @@ import { LinkButton } from 'src/components/buttons/LinkButton' ...@@ -6,7 +6,7 @@ import { LinkButton } from 'src/components/buttons/LinkButton'
import { SignRequest, WalletConnectRequest, isTransactionRequest } from 'src/features/walletConnect/walletConnectSlice' import { SignRequest, WalletConnectRequest, isTransactionRequest } from 'src/features/walletConnect/walletConnectSlice'
import { Flex, Text, useSporeColors } from 'ui/src' import { Flex, Text, useSporeColors } from 'ui/src'
import { TextVariantTokens, iconSizes } from 'ui/src/theme' import { TextVariantTokens, iconSizes } from 'ui/src/theme'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { toSupportedChainId } from 'uniswap/src/features/chains/utils' import { toSupportedChainId } from 'uniswap/src/features/chains/utils'
import { useENS } from 'uniswap/src/features/ens/useENS' import { useENS } from 'uniswap/src/features/ens/useENS'
......
import { useMemo } from 'react' import { useMemo } from 'react'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { GasFeeResult } from 'uniswap/src/features/gas/types' import { GasFeeResult } from 'uniswap/src/features/gas/types'
import { hasSufficientFundsIncludingGas } from 'uniswap/src/features/gas/utils' import { hasSufficientFundsIncludingGas } from 'uniswap/src/features/gas/utils'
......
...@@ -5,7 +5,7 @@ import Check from 'ui/src/assets/icons/check.svg' ...@@ -5,7 +5,7 @@ import Check from 'ui/src/assets/icons/check.svg'
import { iconSizes } from 'ui/src/theme' import { iconSizes } from 'ui/src/theme'
import { NetworkLogo } from 'uniswap/src/components/CurrencyLogo/NetworkLogo' import { NetworkLogo } from 'uniswap/src/components/CurrencyLogo/NetworkLogo'
import { ActionSheetModal } from 'uniswap/src/components/modals/ActionSheetModal' import { ActionSheetModal } from 'uniswap/src/components/modals/ActionSheetModal'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { getChainLabel } from 'uniswap/src/features/chains/utils' import { getChainLabel } from 'uniswap/src/features/chains/utils'
import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants' import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants'
......
...@@ -7,7 +7,7 @@ import { iconSizes } from 'ui/src/theme' ...@@ -7,7 +7,7 @@ import { iconSizes } from 'ui/src/theme'
import { TokenLogo } from 'uniswap/src/components/CurrencyLogo/TokenLogo' import { TokenLogo } from 'uniswap/src/components/CurrencyLogo/TokenLogo'
import { InlineNetworkPill } from 'uniswap/src/components/network/NetworkPill' import { InlineNetworkPill } from 'uniswap/src/components/network/NetworkPill'
import { AccountType } from 'uniswap/src/features/accounts/types' import { AccountType } from 'uniswap/src/features/accounts/types'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { PortfolioBalance } from 'uniswap/src/features/dataApi/types' import { PortfolioBalance } from 'uniswap/src/features/dataApi/types'
import { useLocalizationContext } from 'uniswap/src/features/language/LocalizationContext' import { useLocalizationContext } from 'uniswap/src/features/language/LocalizationContext'
import Trace from 'uniswap/src/features/telemetry/Trace' import Trace from 'uniswap/src/features/telemetry/Trace'
......
...@@ -2,7 +2,7 @@ import { NativeStackNavigationProp } from '@react-navigation/native-stack' ...@@ -2,7 +2,7 @@ import { NativeStackNavigationProp } from '@react-navigation/native-stack'
import { createContext, PropsWithChildren, useCallback, useContext, useMemo, useState } from 'react' import { createContext, PropsWithChildren, useCallback, useContext, useMemo, useState } from 'react'
import { AppStackParamList } from 'src/app/navigation/types' import { AppStackParamList } from 'src/app/navigation/types'
import { useTokenDetailsColors } from 'src/components/TokenDetails/useTokenDetailsColors' import { useTokenDetailsColors } from 'src/components/TokenDetails/useTokenDetailsColors'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { CurrencyInfo } from 'uniswap/src/features/dataApi/types' import { CurrencyInfo } from 'uniswap/src/features/dataApi/types'
import { useCurrencyInfo } from 'uniswap/src/features/tokens/useCurrencyInfo' import { useCurrencyInfo } from 'uniswap/src/features/tokens/useCurrencyInfo'
......
...@@ -5,7 +5,7 @@ import { useBiometricAppSettings, useDeviceSupportsBiometricAuth } from 'src/fea ...@@ -5,7 +5,7 @@ import { useBiometricAppSettings, useDeviceSupportsBiometricAuth } from 'src/fea
import { getAuthMethod } from 'src/features/telemetry/utils' import { getAuthMethod } from 'src/features/telemetry/utils'
import { getFullAppVersion } from 'src/utils/version' import { getFullAppVersion } from 'src/utils/version'
import { useIsDarkMode } from 'ui/src' import { useIsDarkMode } from 'ui/src'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useAppFiatCurrency } from 'uniswap/src/features/fiatCurrency/hooks' import { useAppFiatCurrency } from 'uniswap/src/features/fiatCurrency/hooks'
import { useCurrentLanguageInfo } from 'uniswap/src/features/language/hooks' import { useCurrentLanguageInfo } from 'uniswap/src/features/language/hooks'
import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from 'uniswap/src/features/settings/hooks' import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from 'uniswap/src/features/settings/hooks'
......
...@@ -22,14 +22,19 @@ exports[`AccountCardItem renders correctly 1`] = ` ...@@ -22,14 +22,19 @@ exports[`AccountCardItem renders correctly 1`] = `
onPress={[Function]} onPress={[Function]}
> >
<View <View
hitSlop={ cancelable={true}
{ disabled={false}
"bottom": 5, focusable={true}
"left": 5, hitSlop={[Function]}
"right": 5, minPressDuration={0}
"top": 5, onBlur={[Function]}
} onFocus={[Function]}
} onLongPress={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
...@@ -86,42 +91,17 @@ exports[`AccountCardItem renders correctly 1`] = ` ...@@ -86,42 +91,17 @@ exports[`AccountCardItem renders correctly 1`] = `
<View <View
style={ style={
{ {
"backgroundColor": { "backgroundColor": "transparent",
"dynamic": { "borderBottomColor": "transparent",
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomLeftRadius": 999999, "borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999, "borderBottomRightRadius": 999999,
"borderBottomWidth": 0, "borderBottomWidth": 0,
"borderLeftColor": { "borderLeftColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftWidth": 0, "borderLeftWidth": 0,
"borderRightColor": { "borderRightColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightWidth": 0, "borderRightWidth": 0,
"borderStyle": "solid", "borderStyle": "solid",
"borderTopColor": { "borderTopColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopLeftRadius": 999999, "borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999, "borderTopRightRadius": 999999,
"borderTopWidth": 0, "borderTopWidth": 0,
...@@ -233,12 +213,7 @@ exports[`AccountCardItem renders correctly 1`] = ` ...@@ -233,12 +213,7 @@ exports[`AccountCardItem renders correctly 1`] = `
numberOfLines={1} numberOfLines={1}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"flexShrink": 1, "flexShrink": 1,
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
...@@ -262,12 +237,7 @@ exports[`AccountCardItem renders correctly 1`] = ` ...@@ -262,12 +237,7 @@ exports[`AccountCardItem renders correctly 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
......
...@@ -35,7 +35,19 @@ exports[`AccountHeader renders correctly 1`] = ` ...@@ -35,7 +35,19 @@ exports[`AccountHeader renders correctly 1`] = `
} }
> >
<View <View
hitSlop={20} cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onLongPress={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"alignItems": "center", "alignItems": "center",
...@@ -53,42 +65,17 @@ exports[`AccountHeader renders correctly 1`] = ` ...@@ -53,42 +65,17 @@ exports[`AccountHeader renders correctly 1`] = `
<View <View
style={ style={
{ {
"backgroundColor": { "backgroundColor": "#FFFFFF",
"dynamic": { "borderBottomColor": "transparent",
"dark": "#131313",
"light": "#FFFFFF",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomLeftRadius": 999999, "borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999, "borderBottomRightRadius": 999999,
"borderBottomWidth": 0, "borderBottomWidth": 0,
"borderLeftColor": { "borderLeftColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftWidth": 0, "borderLeftWidth": 0,
"borderRightColor": { "borderRightColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightWidth": 0, "borderRightWidth": 0,
"borderStyle": "solid", "borderStyle": "solid",
"borderTopColor": { "borderTopColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopLeftRadius": 999999, "borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999, "borderTopRightRadius": 999999,
"borderTopWidth": 0, "borderTopWidth": 0,
...@@ -270,7 +257,18 @@ exports[`AccountHeader renders correctly 1`] = ` ...@@ -270,7 +257,18 @@ exports[`AccountHeader renders correctly 1`] = `
testID="account-header/display-name" testID="account-header/display-name"
> >
<View <View
hitSlop={20} cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
...@@ -298,12 +296,7 @@ exports[`AccountHeader renders correctly 1`] = ` ...@@ -298,12 +296,7 @@ exports[`AccountHeader renders correctly 1`] = `
numberOfLines={1} numberOfLines={1}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -381,7 +374,18 @@ exports[`AccountHeader renders correctly 1`] = ` ...@@ -381,7 +374,18 @@ exports[`AccountHeader renders correctly 1`] = `
</Text> </Text>
</View> </View>
<View <View
hitSlop={20} cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
...@@ -411,12 +415,7 @@ exports[`AccountHeader renders correctly 1`] = ` ...@@ -411,12 +415,7 @@ exports[`AccountHeader renders correctly 1`] = `
numberOfLines={1} numberOfLines={1}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
......
...@@ -91,12 +91,7 @@ exports[`AccountList renders without error 1`] = ` ...@@ -91,12 +91,7 @@ exports[`AccountList renders without error 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
...@@ -135,14 +130,19 @@ exports[`AccountList renders without error 1`] = ` ...@@ -135,14 +130,19 @@ exports[`AccountList renders without error 1`] = `
onPress={[Function]} onPress={[Function]}
> >
<View <View
hitSlop={ cancelable={true}
{ disabled={false}
"bottom": 5, focusable={true}
"left": 5, hitSlop={[Function]}
"right": 5, minPressDuration={0}
"top": 5, onBlur={[Function]}
} onFocus={[Function]}
} onLongPress={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
...@@ -199,42 +199,17 @@ exports[`AccountList renders without error 1`] = ` ...@@ -199,42 +199,17 @@ exports[`AccountList renders without error 1`] = `
<View <View
style={ style={
{ {
"backgroundColor": { "backgroundColor": "transparent",
"dynamic": { "borderBottomColor": "transparent",
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomLeftRadius": 999999, "borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999, "borderBottomRightRadius": 999999,
"borderBottomWidth": 0, "borderBottomWidth": 0,
"borderLeftColor": { "borderLeftColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftWidth": 0, "borderLeftWidth": 0,
"borderRightColor": { "borderRightColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightWidth": 0, "borderRightWidth": 0,
"borderStyle": "solid", "borderStyle": "solid",
"borderTopColor": { "borderTopColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopLeftRadius": 999999, "borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999, "borderTopRightRadius": 999999,
"borderTopWidth": 0, "borderTopWidth": 0,
...@@ -346,12 +321,7 @@ exports[`AccountList renders without error 1`] = ` ...@@ -346,12 +321,7 @@ exports[`AccountList renders without error 1`] = `
numberOfLines={1} numberOfLines={1}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"flexShrink": 1, "flexShrink": 1,
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
...@@ -375,12 +345,7 @@ exports[`AccountList renders without error 1`] = ` ...@@ -375,12 +345,7 @@ exports[`AccountList renders without error 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
......
...@@ -2,7 +2,18 @@ ...@@ -2,7 +2,18 @@
exports[`BackButton renders without error 1`] = ` exports[`BackButton renders without error 1`] = `
<View <View
hitSlop={24} cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"alignItems": "center", "alignItems": "center",
...@@ -110,12 +121,7 @@ exports[`BackButton renders without error 1`] = ` ...@@ -110,12 +121,7 @@ exports[`BackButton renders without error 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
......
...@@ -2,14 +2,18 @@ ...@@ -2,14 +2,18 @@
exports[`CloseButton renders without error 1`] = ` exports[`CloseButton renders without error 1`] = `
<View <View
hitSlop={ cancelable={true}
{ disabled={false}
"bottom": 5, focusable={true}
"left": 5, hitSlop={[Function]}
"right": 5, minPressDuration={0}
"top": 5, onBlur={[Function]}
} onFocus={[Function]}
} onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
......
...@@ -2,45 +2,31 @@ ...@@ -2,45 +2,31 @@
exports[`CopyTextButton renders without error 1`] = ` exports[`CopyTextButton renders without error 1`] = `
<View <View
cancelable={true}
disabled={false}
focusable={true}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"alignItems": "center", "alignItems": "center",
"backgroundColor": { "backgroundColor": "rgba(34,34,34,0.05)",
"dynamic": { "borderBottomColor": "transparent",
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomLeftRadius": 16, "borderBottomLeftRadius": 16,
"borderBottomRightRadius": 16, "borderBottomRightRadius": 16,
"borderBottomWidth": 1, "borderBottomWidth": 1,
"borderLeftColor": { "borderLeftColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftWidth": 1, "borderLeftWidth": 1,
"borderRightColor": { "borderRightColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightWidth": 1, "borderRightWidth": 1,
"borderStyle": "solid", "borderStyle": "solid",
"borderTopColor": { "borderTopColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopLeftRadius": 16, "borderTopLeftRadius": 16,
"borderTopRightRadius": 16, "borderTopRightRadius": 16,
"borderTopWidth": 1, "borderTopWidth": 1,
...@@ -57,14 +43,7 @@ exports[`CopyTextButton renders without error 1`] = ` ...@@ -57,14 +43,7 @@ exports[`CopyTextButton renders without error 1`] = `
} }
> >
<svg <svg
color={ color="#222222"
{
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
}
}
data-file-name="SvgCopySheets" data-file-name="SvgCopySheets"
height={20} height={20}
size={20} size={20}
...@@ -74,12 +53,7 @@ exports[`CopyTextButton renders without error 1`] = ` ...@@ -74,12 +53,7 @@ exports[`CopyTextButton renders without error 1`] = `
maxFontSizeMultiplier={1.2} maxFontSizeMultiplier={1.2}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "500", "fontWeight": "500",
......
...@@ -2,14 +2,18 @@ ...@@ -2,14 +2,18 @@
exports[`LinkButton renders without error 1`] = ` exports[`LinkButton renders without error 1`] = `
<View <View
hitSlop={ cancelable={true}
{ disabled={false}
"bottom": 5, focusable={true}
"left": 5, hitSlop={[Function]}
"right": 5, minPressDuration={0}
"top": 5, onBlur={[Function]}
} onFocus={[Function]}
} onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
...@@ -36,12 +40,7 @@ exports[`LinkButton renders without error 1`] = ` ...@@ -36,12 +40,7 @@ exports[`LinkButton renders without error 1`] = `
allowFontScaling={true} allowFontScaling={true}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"flexShrink": 1, "flexShrink": 1,
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
} }
...@@ -51,14 +50,7 @@ exports[`LinkButton renders without error 1`] = ` ...@@ -51,14 +50,7 @@ exports[`LinkButton renders without error 1`] = `
link text link text
</Text> </Text>
<svg <svg
color={ color="#FC72FF"
{
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
}
}
data-file-name="SvgExternalLink" data-file-name="SvgExternalLink"
height={20} height={20}
strokeWidth={1.5} strokeWidth={1.5}
......
...@@ -20,7 +20,7 @@ import { NetworkLogo } from 'uniswap/src/components/CurrencyLogo/NetworkLogo' ...@@ -20,7 +20,7 @@ import { NetworkLogo } from 'uniswap/src/components/CurrencyLogo/NetworkLogo'
import { NetworkPill } from 'uniswap/src/components/network/NetworkPill' import { NetworkPill } from 'uniswap/src/components/network/NetworkPill'
import { ALL_NETWORKS_ARG } from 'uniswap/src/data/rest/base' import { ALL_NETWORKS_ARG } from 'uniswap/src/data/rest/base'
import { useTokenRankingsQuery } from 'uniswap/src/data/rest/tokenRankings' import { useTokenRankingsQuery } from 'uniswap/src/data/rest/tokenRankings'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { fromGraphQLChain } from 'uniswap/src/features/chains/utils' import { fromGraphQLChain } from 'uniswap/src/features/chains/utils'
import { selectHasFavoriteTokens, selectHasWatchedWallets } from 'uniswap/src/features/favorites/selectors' import { selectHasFavoriteTokens, selectHasWatchedWallets } from 'uniswap/src/features/favorites/selectors'
......
...@@ -15,7 +15,7 @@ import { borderRadii, imageSizes, opacify } from 'ui/src/theme' ...@@ -15,7 +15,7 @@ import { borderRadii, imageSizes, opacify } from 'ui/src/theme'
import { TokenLogo } from 'uniswap/src/components/CurrencyLogo/TokenLogo' import { TokenLogo } from 'uniswap/src/components/CurrencyLogo/TokenLogo'
import { PollingInterval } from 'uniswap/src/constants/misc' import { PollingInterval } from 'uniswap/src/constants/misc'
import { useFavoriteTokenCardQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks' import { useFavoriteTokenCardQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { fromGraphQLChain } from 'uniswap/src/features/chains/utils' import { fromGraphQLChain } from 'uniswap/src/features/chains/utils'
import { currencyIdToContractInput } from 'uniswap/src/features/dataApi/utils' import { currencyIdToContractInput } from 'uniswap/src/features/dataApi/utils'
import { removeFavoriteToken } from 'uniswap/src/features/favorites/slice' import { removeFavoriteToken } from 'uniswap/src/features/favorites/slice'
......
...@@ -17,10 +17,10 @@ describe('SortButton', () => { ...@@ -17,10 +17,10 @@ describe('SortButton', () => {
jest.useRealTimers() jest.useRealTimers()
}) })
it('renders without error', async () => { it('renders without error', () => {
const tree = render(<SortButton orderBy={RankingType.Volume} />) const tree = render(<SortButton orderBy={RankingType.Volume} />)
await act(async () => { act(async () => {
jest.runAllTimers() jest.runAllTimers()
}) })
...@@ -44,9 +44,9 @@ describe('SortButton', () => { ...@@ -44,9 +44,9 @@ describe('SortButton', () => {
] ]
describe.each(cases)('when ordering by $test', ({ orderBy, label }) => { describe.each(cases)('when ordering by $test', ({ orderBy, label }) => {
it(`renders ${label} as the selected option`, async () => { it(`renders ${label} as the selected option`, () => {
const { queryByText } = render(<SortButton orderBy={orderBy} />) const { queryByText } = render(<SortButton orderBy={orderBy} />)
await act(async () => { act(async () => {
jest.runAllTimers() jest.runAllTimers()
}) })
const selectedOption = queryByText(label) const selectedOption = queryByText(label)
......
...@@ -19,12 +19,7 @@ exports[`FavoriteHeaderRow when editing renders without error 1`] = ` ...@@ -19,12 +19,7 @@ exports[`FavoriteHeaderRow when editing renders without error 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
...@@ -36,7 +31,18 @@ exports[`FavoriteHeaderRow when editing renders without error 1`] = ` ...@@ -36,7 +31,18 @@ exports[`FavoriteHeaderRow when editing renders without error 1`] = `
Editing Title Editing Title
</Text> </Text>
<View <View
hitSlop={16} cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
...@@ -54,12 +60,7 @@ exports[`FavoriteHeaderRow when editing renders without error 1`] = ` ...@@ -54,12 +60,7 @@ exports[`FavoriteHeaderRow when editing renders without error 1`] = `
maxFontSizeMultiplier={1.2} maxFontSizeMultiplier={1.2}
style={ style={
{ {
"color": { "color": "#FC72FF",
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "500", "fontWeight": "500",
...@@ -94,12 +95,7 @@ exports[`FavoriteHeaderRow when not editing renders without error 1`] = ` ...@@ -94,12 +95,7 @@ exports[`FavoriteHeaderRow when not editing renders without error 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
...@@ -111,7 +107,18 @@ exports[`FavoriteHeaderRow when not editing renders without error 1`] = ` ...@@ -111,7 +107,18 @@ exports[`FavoriteHeaderRow when not editing renders without error 1`] = `
Title Title
</Text> </Text>
<View <View
hitSlop={16} cancelable={true}
disabled={false}
focusable={true}
hitSlop={[Function]}
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
......
...@@ -22,12 +22,7 @@ exports[`FavoriteTokenCard renders without error 1`] = ` ...@@ -22,12 +22,7 @@ exports[`FavoriteTokenCard renders without error 1`] = `
<View <View
style={ style={
{ {
"backgroundColor": { "backgroundColor": "rgba(34,34,34,0.05)",
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderBottomLeftRadius": 16, "borderBottomLeftRadius": 16,
"borderBottomRightRadius": 16, "borderBottomRightRadius": 16,
"borderTopLeftRadius": 16, "borderTopLeftRadius": 16,
......
...@@ -39,23 +39,22 @@ exports[`FavoriteWalletCard renders without error 1`] = ` ...@@ -39,23 +39,22 @@ exports[`FavoriteWalletCard renders without error 1`] = `
} }
> >
<View <View
cancelable={true}
disabled={false} disabled={false}
hitSlop={ focusable={true}
{ hitSlop={[Function]}
"bottom": 5, minPressDuration={0}
"left": 5, onBlur={[Function]}
"right": 5, onFocus={[Function]}
"top": 5, onLongPress={[Function]}
} onMouseEnter={[Function]}
} onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"backgroundColor": { "backgroundColor": "#FFFFFF",
"dynamic": {
"dark": "#131313",
"light": "#FFFFFF",
},
},
"borderBottomColor": "rgba(34,34,34,0.05)", "borderBottomColor": "rgba(34,34,34,0.05)",
"borderBottomLeftRadius": 16, "borderBottomLeftRadius": 16,
"borderBottomRightRadius": 16, "borderBottomRightRadius": 16,
...@@ -117,42 +116,17 @@ exports[`FavoriteWalletCard renders without error 1`] = ` ...@@ -117,42 +116,17 @@ exports[`FavoriteWalletCard renders without error 1`] = `
<View <View
style={ style={
{ {
"backgroundColor": { "backgroundColor": "transparent",
"dynamic": { "borderBottomColor": "transparent",
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomLeftRadius": 999999, "borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999, "borderBottomRightRadius": 999999,
"borderBottomWidth": 0, "borderBottomWidth": 0,
"borderLeftColor": { "borderLeftColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftWidth": 0, "borderLeftWidth": 0,
"borderRightColor": { "borderRightColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightWidth": 0, "borderRightWidth": 0,
"borderStyle": "solid", "borderStyle": "solid",
"borderTopColor": { "borderTopColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopLeftRadius": 999999, "borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999, "borderTopRightRadius": 999999,
"borderTopWidth": 0, "borderTopWidth": 0,
...@@ -242,12 +216,7 @@ exports[`FavoriteWalletCard renders without error 1`] = ` ...@@ -242,12 +216,7 @@ exports[`FavoriteWalletCard renders without error 1`] = `
numberOfLines={1} numberOfLines={1}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"flexShrink": 1, "flexShrink": 1,
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
...@@ -283,12 +252,7 @@ exports[`FavoriteWalletCard renders without error 1`] = ` ...@@ -283,12 +252,7 @@ exports[`FavoriteWalletCard renders without error 1`] = `
style={ style={
{ {
"alignItems": "center", "alignItems": "center",
"backgroundColor": { "backgroundColor": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"borderBottomLeftRadius": 999999, "borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999, "borderBottomRightRadius": 999999,
"borderTopLeftRadius": 999999, "borderTopLeftRadius": 999999,
...@@ -311,12 +275,7 @@ exports[`FavoriteWalletCard renders without error 1`] = ` ...@@ -311,12 +275,7 @@ exports[`FavoriteWalletCard renders without error 1`] = `
<View <View
style={ style={
{ {
"backgroundColor": { "backgroundColor": "#FFFFFF",
"dynamic": {
"dark": "#131313",
"light": "#FFFFFF",
},
},
"borderBottomLeftRadius": 12, "borderBottomLeftRadius": 12,
"borderBottomRightRadius": 12, "borderBottomRightRadius": 12,
"borderTopLeftRadius": 12, "borderTopLeftRadius": 12,
......
...@@ -2,16 +2,11 @@ ...@@ -2,16 +2,11 @@
exports[`RemoveButton renders without error 1`] = ` exports[`RemoveButton renders without error 1`] = `
<View <View
cancelable={true}
collapsable={false} collapsable={false}
disabled={false} disabled={false}
hitSlop={ focusable={true}
{ hitSlop={[Function]}
"bottom": 5,
"left": 5,
"right": 5,
"top": 5,
}
}
jestAnimatedStyle={ jestAnimatedStyle={
{ {
"value": { "value": {
...@@ -19,15 +14,18 @@ exports[`RemoveButton renders without error 1`] = ` ...@@ -19,15 +14,18 @@ exports[`RemoveButton renders without error 1`] = `
}, },
} }
} }
minPressDuration={0}
onBlur={[Function]}
onFocus={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"alignItems": "center", "alignItems": "center",
"backgroundColor": { "backgroundColor": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"borderBottomLeftRadius": 999999, "borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999, "borderBottomRightRadius": 999999,
"borderTopLeftRadius": 999999, "borderTopLeftRadius": 999999,
...@@ -50,12 +48,7 @@ exports[`RemoveButton renders without error 1`] = ` ...@@ -50,12 +48,7 @@ exports[`RemoveButton renders without error 1`] = `
<View <View
style={ style={
{ {
"backgroundColor": { "backgroundColor": "#FFFFFF",
"dynamic": {
"dark": "#131313",
"light": "#FFFFFF",
},
},
"borderBottomLeftRadius": 12, "borderBottomLeftRadius": 12,
"borderBottomRightRadius": 12, "borderBottomRightRadius": 12,
"borderTopLeftRadius": 12, "borderTopLeftRadius": 12,
......
...@@ -3,14 +3,18 @@ ...@@ -3,14 +3,18 @@
exports[`SortButton renders without error 1`] = ` exports[`SortButton renders without error 1`] = `
[ [
<View <View
hitSlop={ cancelable={true}
{ disabled={false}
"bottom": 5, focusable={true}
"left": 5, hitSlop={[Function]}
"right": 5, minPressDuration={0}
"top": 5, onBlur={[Function]}
} onFocus={[Function]}
} onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
...@@ -41,12 +45,7 @@ exports[`SortButton renders without error 1`] = ` ...@@ -41,12 +45,7 @@ exports[`SortButton renders without error 1`] = `
style={ style={
{ {
"alignItems": "center", "alignItems": "center",
"backgroundColor": { "backgroundColor": "rgba(34,34,34,0.05)",
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderBottomLeftRadius": 20, "borderBottomLeftRadius": 20,
"borderBottomRightRadius": 20, "borderBottomRightRadius": 20,
"borderTopLeftRadius": 20, "borderTopLeftRadius": 20,
...@@ -68,12 +67,7 @@ exports[`SortButton renders without error 1`] = ` ...@@ -68,12 +67,7 @@ exports[`SortButton renders without error 1`] = `
numberOfLines={1} numberOfLines={1}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"flexShrink": 1, "flexShrink": 1,
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 15, "fontSize": 15,
......
...@@ -6,14 +6,19 @@ exports[`TokenItem renders without error 1`] = ` ...@@ -6,14 +6,19 @@ exports[`TokenItem renders without error 1`] = `
onPress={[MockFunction]} onPress={[MockFunction]}
> >
<View <View
hitSlop={ cancelable={true}
{ disabled={false}
"bottom": 5, focusable={true}
"left": 5, hitSlop={[Function]}
"right": 5, minPressDuration={0}
"top": 5, onBlur={[Function]}
} onFocus={[Function]}
} onLongPress={[Function]}
onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
...@@ -71,12 +76,7 @@ exports[`TokenItem renders without error 1`] = ` ...@@ -71,12 +76,7 @@ exports[`TokenItem renders without error 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 15, "fontSize": 15,
"fontWeight": "400", "fontWeight": "400",
...@@ -157,12 +157,7 @@ exports[`TokenItem renders without error 1`] = ` ...@@ -157,12 +157,7 @@ exports[`TokenItem renders without error 1`] = `
numberOfLines={1} numberOfLines={1}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -179,12 +174,7 @@ exports[`TokenItem renders without error 1`] = ` ...@@ -179,12 +174,7 @@ exports[`TokenItem renders without error 1`] = `
numberOfLines={1} numberOfLines={1}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
...@@ -227,12 +217,7 @@ exports[`TokenItem renders without error 1`] = ` ...@@ -227,12 +217,7 @@ exports[`TokenItem renders without error 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -267,12 +252,7 @@ exports[`TokenItem renders without error 1`] = ` ...@@ -267,12 +252,7 @@ exports[`TokenItem renders without error 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
......
...@@ -29,7 +29,7 @@ import { AnimatedBottomSheetFlashList } from 'ui/src/components/AnimatedFlashLis ...@@ -29,7 +29,7 @@ import { AnimatedBottomSheetFlashList } from 'ui/src/components/AnimatedFlashLis
import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex' import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex'
import { BaseCard } from 'uniswap/src/components/BaseCard/BaseCard' import { BaseCard } from 'uniswap/src/components/BaseCard/BaseCard'
import { useExploreSearchQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks' import { useExploreSearchQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { SearchContext } from 'uniswap/src/features/search/SearchContext' import { SearchContext } from 'uniswap/src/features/search/SearchContext'
import { import {
......
import { useMemo } from 'react' import { useMemo } from 'react'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { ENS_SUFFIX } from 'uniswap/src/features/ens/constants' import { ENS_SUFFIX } from 'uniswap/src/features/ens/constants'
import { useENS } from 'uniswap/src/features/ens/useENS' import { useENS } from 'uniswap/src/features/ens/useENS'
......
...@@ -4,7 +4,7 @@ import { getBlockExplorerIcon } from 'src/components/icons/BlockExplorerIcon' ...@@ -4,7 +4,7 @@ import { getBlockExplorerIcon } from 'src/components/icons/BlockExplorerIcon'
import { Flex, Text, TouchableArea, useSporeColors } from 'ui/src' import { Flex, Text, TouchableArea, useSporeColors } from 'ui/src'
import { Arrow } from 'ui/src/components/arrow/Arrow' import { Arrow } from 'ui/src/components/arrow/Arrow'
import { iconSizes } from 'ui/src/theme' import { iconSizes } from 'ui/src/theme'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { EtherscanSearchResult } from 'uniswap/src/features/search/SearchResult' import { EtherscanSearchResult } from 'uniswap/src/features/search/SearchResult'
import { addToSearchHistory } from 'uniswap/src/features/search/searchHistorySlice' import { addToSearchHistory } from 'uniswap/src/features/search/searchHistorySlice'
import { TestID } from 'uniswap/src/test/fixtures/testIDs' import { TestID } from 'uniswap/src/test/fixtures/testIDs'
......
...@@ -29,7 +29,6 @@ export function FiatOnRampCtaButton({ ...@@ -29,7 +29,6 @@ export function FiatOnRampCtaButton({
icon={ icon={
isLoading ? <SpinningLoader color="$white" /> : !eligible ? <InfoCircleFilled color="$neutral3" /> : undefined isLoading ? <SpinningLoader color="$white" /> : !eligible ? <InfoCircleFilled color="$neutral3" /> : undefined
} }
height={isShortMobileDevice ? 38 : 55}
size={isShortMobileDevice ? 'small' : 'large'} size={isShortMobileDevice ? 'small' : 'large'}
theme={buttonAvailable ? 'primary' : 'tertiary'} theme={buttonAvailable ? 'primary' : 'tertiary'}
onPress={onPress} onPress={onPress}
......
...@@ -5,36 +5,16 @@ exports[`renders selection circle 1`] = ` ...@@ -5,36 +5,16 @@ exports[`renders selection circle 1`] = `
style={ style={
{ {
"alignItems": "center", "alignItems": "center",
"borderBottomColor": { "borderBottomColor": "#FC72FF",
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"borderBottomLeftRadius": 999999, "borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999, "borderBottomRightRadius": 999999,
"borderBottomWidth": 1, "borderBottomWidth": 1,
"borderLeftColor": { "borderLeftColor": "#FC72FF",
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"borderLeftWidth": 1, "borderLeftWidth": 1,
"borderRightColor": { "borderRightColor": "#FC72FF",
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"borderRightWidth": 1, "borderRightWidth": 1,
"borderStyle": "solid", "borderStyle": "solid",
"borderTopColor": { "borderTopColor": "#FC72FF",
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"borderTopLeftRadius": 999999, "borderTopLeftRadius": 999999,
"borderTopRightRadius": 999999, "borderTopRightRadius": 999999,
"borderTopWidth": 1, "borderTopWidth": 1,
...@@ -48,12 +28,7 @@ exports[`renders selection circle 1`] = ` ...@@ -48,12 +28,7 @@ exports[`renders selection circle 1`] = `
<View <View
style={ style={
{ {
"backgroundColor": { "backgroundColor": "#FC72FF",
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"borderBottomLeftRadius": 999999, "borderBottomLeftRadius": 999999,
"borderBottomRightRadius": 999999, "borderBottomRightRadius": 999999,
"borderTopLeftRadius": 999999, "borderTopLeftRadius": 999999,
......
...@@ -6,12 +6,7 @@ exports[`renders a DecimalNumber 1`] = ` ...@@ -6,12 +6,7 @@ exports[`renders a DecimalNumber 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -26,12 +21,7 @@ exports[`renders a DecimalNumber 1`] = ` ...@@ -26,12 +21,7 @@ exports[`renders a DecimalNumber 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -52,12 +42,7 @@ exports[`renders a DecimalNumber without a comma separator 1`] = ` ...@@ -52,12 +42,7 @@ exports[`renders a DecimalNumber without a comma separator 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -72,12 +57,7 @@ exports[`renders a DecimalNumber without a comma separator 1`] = ` ...@@ -72,12 +57,7 @@ exports[`renders a DecimalNumber without a comma separator 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -98,12 +78,7 @@ exports[`renders a DecimalNumber without a decimal part 1`] = ` ...@@ -98,12 +78,7 @@ exports[`renders a DecimalNumber without a decimal part 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
......
...@@ -14,12 +14,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -14,12 +14,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -35,12 +30,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -35,12 +30,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -56,12 +46,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -56,12 +46,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -77,12 +62,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -77,12 +62,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -98,12 +78,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -98,12 +78,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -119,12 +94,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -119,12 +94,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -140,12 +110,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -140,12 +110,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -161,12 +126,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -161,12 +126,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -182,12 +142,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -182,12 +142,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -203,12 +158,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -203,12 +158,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -224,12 +174,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -224,12 +174,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -245,12 +190,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -245,12 +190,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -266,12 +206,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -266,12 +206,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -287,12 +222,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -287,12 +222,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -308,12 +238,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -308,12 +238,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -329,12 +254,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -329,12 +254,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -350,12 +270,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -350,12 +270,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -371,12 +286,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -371,12 +286,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -392,12 +302,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -392,12 +302,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -413,12 +318,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -413,12 +318,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -434,12 +334,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -434,12 +334,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -455,12 +350,7 @@ exports[`renders text with few matches 1`] = ` ...@@ -455,12 +350,7 @@ exports[`renders text with few matches 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#BFBFBF",
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -481,12 +371,7 @@ exports[`renders text without matches 1`] = ` ...@@ -481,12 +371,7 @@ exports[`renders text without matches 1`] = `
numberOfLines={1} numberOfLines={1}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
......
import { Alert } from 'react-native' import { Alert, Platform } from 'react-native'
import { MobileState } from 'src/app/mobileReducer' import { MobileState } from 'src/app/mobileReducer'
import { APP_FEEDBACK_LINK } from 'src/constants/urls' import { APP_FEEDBACK_LINK } from 'src/constants/urls'
import { hasConsecutiveRecentSwapsSelector } from 'src/features/appRating/selectors' import { hasConsecutiveRecentSwapsSelector } from 'src/features/appRating/selectors'
...@@ -11,6 +11,12 @@ import i18n from 'uniswap/src/i18n/i18n' ...@@ -11,6 +11,12 @@ import i18n from 'uniswap/src/i18n/i18n'
import { openUri } from 'uniswap/src/utils/linking' import { openUri } from 'uniswap/src/utils/linking'
import { isJestRun } from 'utilities/src/environment/constants' import { isJestRun } from 'utilities/src/environment/constants'
import { logger } from 'utilities/src/logger/logger' import { logger } from 'utilities/src/logger/logger'
import { isAndroid } from 'utilities/src/platform'
function isAndroid14(): boolean {
return isAndroid && Platform.Version === 34
}
import { ONE_DAY_MS, ONE_SECOND_MS } from 'utilities/src/time/time' import { ONE_DAY_MS, ONE_SECOND_MS } from 'utilities/src/time/time'
import { selectActiveAccountAddress } from 'wallet/src/features/wallet/selectors' import { selectActiveAccountAddress } from 'wallet/src/features/wallet/selectors'
import { setAppRating } from 'wallet/src/features/wallet/slice' import { setAppRating } from 'wallet/src/features/wallet/slice'
...@@ -23,7 +29,7 @@ const MIN_FEEDBACK_REMINDER_MS = 180 * ONE_DAY_MS ...@@ -23,7 +29,7 @@ const MIN_FEEDBACK_REMINDER_MS = 180 * ONE_DAY_MS
const SWAP_FINALIZED_PROMPT_DELAY_MS = 3 * ONE_SECOND_MS const SWAP_FINALIZED_PROMPT_DELAY_MS = 3 * ONE_SECOND_MS
try { try {
if (!isJestRun) { if (!isJestRun && !isAndroid14()) {
import('expo-store-review') import('expo-store-review')
} }
} catch (error) { } catch (error) {
......
...@@ -10,7 +10,7 @@ import { Flex, TouchableArea } from 'ui/src' ...@@ -10,7 +10,7 @@ import { Flex, TouchableArea } from 'ui/src'
import { iconSizes } from 'ui/src/theme' import { iconSizes } from 'ui/src/theme'
import { uniswapUrls } from 'uniswap/src/constants/urls' import { uniswapUrls } from 'uniswap/src/constants/urls'
import { getChainInfo } from 'uniswap/src/features/chains/chainInfo' import { getChainInfo } from 'uniswap/src/features/chains/chainInfo'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { pushNotification } from 'uniswap/src/features/notifications/slice' import { pushNotification } from 'uniswap/src/features/notifications/slice'
import { AppNotificationType, CopyNotificationType } from 'uniswap/src/features/notifications/types' import { AppNotificationType, CopyNotificationType } from 'uniswap/src/features/notifications/types'
import { ElementName, WalletEventName } from 'uniswap/src/features/telemetry/constants' import { ElementName, WalletEventName } from 'uniswap/src/features/telemetry/constants'
......
...@@ -4,10 +4,8 @@ import { useTranslation } from 'react-i18next' ...@@ -4,10 +4,8 @@ import { useTranslation } from 'react-i18next'
import { NativeSyntheticEvent, TextInput, TextInputSelectionChangeEventData } from 'react-native' import { NativeSyntheticEvent, TextInput, TextInputSelectionChangeEventData } from 'react-native'
import { TouchableOpacity } from 'react-native-gesture-handler' import { TouchableOpacity } from 'react-native-gesture-handler'
import { useAnimatedStyle, useSharedValue } from 'react-native-reanimated' import { useAnimatedStyle, useSharedValue } from 'react-native-reanimated'
import { useFiatOnRampContext } from 'src/features/fiatOnRamp/FiatOnRampContext'
import { ColorTokens, Flex, Text, TouchableArea, useIsShortMobileDevice, useSporeColors } from 'ui/src' import { ColorTokens, Flex, Text, TouchableArea, useIsShortMobileDevice, useSporeColors } from 'ui/src'
import { errorShakeAnimation } from 'ui/src/animations/errorShakeAnimation' import { errorShakeAnimation } from 'ui/src/animations/errorShakeAnimation'
import { ArrowUpDown } from 'ui/src/components/icons/ArrowUpDown'
import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex' import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex'
import { useDeviceDimensions } from 'ui/src/hooks/useDeviceDimensions' import { useDeviceDimensions } from 'ui/src/hooks/useDeviceDimensions'
import { useDynamicFontSizing } from 'ui/src/hooks/useDynamicFontSizing' import { useDynamicFontSizing } from 'ui/src/hooks/useDynamicFontSizing'
...@@ -30,7 +28,7 @@ const MAX_CHAR_PIXEL_WIDTH = 40 ...@@ -30,7 +28,7 @@ const MAX_CHAR_PIXEL_WIDTH = 40
const PREDEFINED_AMOUNTS = [100, 300, 1000] const PREDEFINED_AMOUNTS = [100, 300, 1000]
type OnChangeAmount = (amount: string, newIsTokenInputMode?: boolean) => void type OnChangeAmount = (amount: string) => void
function OnRampError({ errorText, color }: { errorText?: string; color: ColorTokens }): JSX.Element { function OnRampError({ errorText, color }: { errorText?: string; color: ColorTokens }): JSX.Element {
return ( return (
...@@ -47,9 +45,7 @@ interface FiatOnRampAmountSectionProps { ...@@ -47,9 +45,7 @@ interface FiatOnRampAmountSectionProps {
currency: FiatOnRampCurrency currency: FiatOnRampCurrency
onEnterAmount: OnChangeAmount onEnterAmount: OnChangeAmount
onChoosePredifendAmount: OnChangeAmount onChoosePredifendAmount: OnChangeAmount
onToggleIsTokenInputMode: () => void
quoteAmount: number quoteAmount: number
sourceAmount: number
quoteCurrencyAmountReady: boolean quoteCurrencyAmountReady: boolean
selectTokenLoading: boolean selectTokenLoading: boolean
onTokenSelectorPress: () => void onTokenSelectorPress: () => void
...@@ -74,13 +70,11 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi ...@@ -74,13 +70,11 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
errorText, errorText,
onEnterAmount, onEnterAmount,
onChoosePredifendAmount, onChoosePredifendAmount,
onToggleIsTokenInputMode,
predefinedAmountsSupported, predefinedAmountsSupported,
appFiatCurrencySupported, appFiatCurrencySupported,
notAvailableInThisRegion, notAvailableInThisRegion,
fiatCurrencyInfo, fiatCurrencyInfo,
quoteAmount, quoteAmount,
sourceAmount,
currency, currency,
selectTokenLoading, selectTokenLoading,
}, },
...@@ -96,8 +90,6 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi ...@@ -96,8 +90,6 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
const prevErrorText = usePrevious(errorText) const prevErrorText = usePrevious(errorText)
const { fullHeight } = useDeviceDimensions() const { fullHeight } = useDeviceDimensions()
const { isTokenInputMode, isOffRamp } = useFiatOnRampContext()
const inputRef = useRef<TextInput>(null) const inputRef = useRef<TextInput>(null)
useImperativeHandle(forwardedRef, () => ({ useImperativeHandle(forwardedRef, () => ({
...@@ -155,17 +147,14 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi ...@@ -155,17 +147,14 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
}, [inputRef, isTextInputRefActuallyFocused]), }, [inputRef, isTextInputRefActuallyFocused]),
) )
const derivedFiatAmount = isOffRamp ? quoteAmount : sourceAmount // TODO: handle this fiat mode switcher
const derivedTokenAmount = useFormatExactCurrencyAmount( function onToggleIsFiatMode(): void {}
isOffRamp ? sourceAmount.toString() : quoteAmount.toString(),
const formattedCurrencyAmount = useFormatExactCurrencyAmount(
quoteAmount.toString(),
currency.currencyInfo?.currency, currency.currencyInfo?.currency,
) )
const derivedAmount = isTokenInputMode ? derivedFiatAmount.toString() : derivedTokenAmount
const formattedDerivedAmount = isTokenInputMode
? `${fiatCurrencyInfo.symbol}${derivedAmount}`
: `${derivedAmount}${currency.currencyInfo?.currency.symbol}`
// Workaround to avoid incorrect input width calculations by react-native // Workaround to avoid incorrect input width calculations by react-native
// Decimal numbers were manually calculated for Basel Grotesk fonts and will // Decimal numbers were manually calculated for Basel Grotesk fonts and will
// require an adjustment when the font is changed // require an adjustment when the font is changed
...@@ -182,17 +171,13 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi ...@@ -182,17 +171,13 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
return acc + fontSize * 0.595 return acc + fontSize * 0.595
case '4': case '4':
case '0': case '0':
default:
return acc + fontSize * 0.62 return acc + fontSize * 0.62
case '5': case '5':
case '7': case '7':
return acc + fontSize * 0.602 return acc + fontSize * 0.602
case '9': case '9':
return acc + fontSize * 0.607 return acc + fontSize * 0.607
case '.':
case ',':
return acc + fontSize * 0.25
default:
return acc + fontSize * 0.62
} }
}, },
// ensures a proper width for a "0" placeholder or adds 3 points for the input caret // ensures a proper width for a "0" placeholder or adds 3 points for the input caret
...@@ -217,7 +202,7 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi ...@@ -217,7 +202,7 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
) : null} ) : null}
</Flex> </Flex>
<AnimatedFlex style={inputAnimatedStyle} width="100%"> <AnimatedFlex style={inputAnimatedStyle} width="100%">
<Flex alignItems="center" justifyContent="center" flexDirection={isTokenInputMode ? 'row-reverse' : 'row'}> <Flex row alignItems="center" justifyContent="center">
<Text <Text
allowFontScaling allowFontScaling
color={!value ? '$neutral3' : '$neutral1'} color={!value ? '$neutral3' : '$neutral1'}
...@@ -225,7 +210,7 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi ...@@ -225,7 +210,7 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
height={fontSize} height={fontSize}
lineHeight={fontSize} lineHeight={fontSize}
> >
{isTokenInputMode ? currency.currencyInfo?.currency.symbol : fiatCurrencyInfo.symbol} {fiatCurrencyInfo.symbol}
</Text> </Text>
<AmountInput <AmountInput
ref={inputRef} ref={inputRef}
...@@ -271,7 +256,7 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi ...@@ -271,7 +256,7 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
))} ))}
</Flex> </Flex>
) : ( ) : (
<TouchableArea onPress={onToggleIsTokenInputMode}> <TouchableArea onPress={onToggleIsFiatMode}>
<Flex <Flex
centered centered
row row
...@@ -281,15 +266,12 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi ...@@ -281,15 +266,12 @@ export const FiatOnRampAmountSection = forwardRef<FiatOnRampAmountSectionRef, Fi
pb="$spacing4" pb="$spacing4"
pt="$spacing4" pt="$spacing4"
> >
<Text <Text color="$neutral2" loading={selectTokenLoading} variant="subheading1">
color="$neutral2" {formattedCurrencyAmount}
maxHeight={fonts.subheading1.lineHeight} {currency.currencyInfo?.currency.symbol}
loading={selectTokenLoading}
variant="subheading1"
>
{formattedDerivedAmount}
</Text> </Text>
<ArrowUpDown color="$neutral2" maxWidth={16} size="$icon.16" /> {/* TODO: support switching from fiat to token amounts */}
{/* <ArrowUpDown color="$neutral2" maxWidth={16} size="$icon.16" /> */}
</Flex> </Flex>
</TouchableArea> </TouchableArea>
)} )}
......
...@@ -27,14 +27,10 @@ interface FiatOnRampContextType { ...@@ -27,14 +27,10 @@ interface FiatOnRampContextType {
quoteCurrency: FiatOnRampCurrency quoteCurrency: FiatOnRampCurrency
defaultCurrency: FiatOnRampCurrency defaultCurrency: FiatOnRampCurrency
setQuoteCurrency: (quoteCurrency: FiatOnRampCurrency) => void setQuoteCurrency: (quoteCurrency: FiatOnRampCurrency) => void
fiatAmount: number | undefined amount?: number
tokenAmount: number | undefined setAmount: (amount: number | undefined) => void
setFiatAmount: (fiatAmount: number | undefined) => void
setTokenAmount: (tokenAmount: number | undefined) => void
isOffRamp: boolean isOffRamp: boolean
setIsOffRamp: (isOffRamp: boolean) => void setIsOffRamp: (isOffRamp: boolean) => void
isTokenInputMode: boolean
setIsTokenInputMode: React.Dispatch<React.SetStateAction<boolean>>
} }
const initialState: FiatOnRampContextType = { const initialState: FiatOnRampContextType = {
...@@ -44,18 +40,13 @@ const initialState: FiatOnRampContextType = { ...@@ -44,18 +40,13 @@ const initialState: FiatOnRampContextType = {
setCountryState: () => undefined, setCountryState: () => undefined,
setBaseCurrencyInfo: () => undefined, setBaseCurrencyInfo: () => undefined,
setQuoteCurrency: () => undefined, setQuoteCurrency: () => undefined,
setFiatAmount: () => undefined, setAmount: () => undefined,
setTokenAmount: () => undefined,
fiatAmount: undefined,
tokenAmount: undefined,
countryCode: '', countryCode: '',
countryState: undefined, countryState: undefined,
quoteCurrency: { currencyInfo: undefined }, quoteCurrency: { currencyInfo: undefined },
defaultCurrency: { currencyInfo: undefined }, defaultCurrency: { currencyInfo: undefined },
isOffRamp: false, isOffRamp: false,
setIsOffRamp: () => undefined, setIsOffRamp: () => undefined,
isTokenInputMode: false,
setIsTokenInputMode: () => undefined,
} }
const FiatOnRampContext = createContext<FiatOnRampContextType>(initialState) const FiatOnRampContext = createContext<FiatOnRampContextType>(initialState)
...@@ -70,10 +61,8 @@ export function FiatOnRampProvider({ children }: { children: React.ReactNode }): ...@@ -70,10 +61,8 @@ export function FiatOnRampProvider({ children }: { children: React.ReactNode }):
const [countryCode, setCountryCode] = useState<string>(getCountry()) const [countryCode, setCountryCode] = useState<string>(getCountry())
const [countryState, setCountryState] = useState<string | undefined>() const [countryState, setCountryState] = useState<string | undefined>()
const [baseCurrencyInfo, setBaseCurrencyInfo] = useState<FiatCurrencyInfo>() const [baseCurrencyInfo, setBaseCurrencyInfo] = useState<FiatCurrencyInfo>()
const [amount, setAmount] = useState<number>()
const [isOffRamp, setIsOffRamp] = useState<boolean>(false) const [isOffRamp, setIsOffRamp] = useState<boolean>(false)
const [isTokenInputMode, setIsTokenInputMode] = useState<boolean>(false)
const [fiatAmount, setFiatAmount] = useState<number | undefined>()
const [tokenAmount, setTokenAmount] = useState<number | undefined>()
const { initialState: initialModalState } = useSelector(selectModalState(ModalName.FiatOnRampAggregator)) const { initialState: initialModalState } = useSelector(selectModalState(ModalName.FiatOnRampAggregator))
const prefilledCurrency = initialModalState?.prefilledCurrency const prefilledCurrency = initialModalState?.prefilledCurrency
...@@ -104,14 +93,10 @@ export function FiatOnRampProvider({ children }: { children: React.ReactNode }): ...@@ -104,14 +93,10 @@ export function FiatOnRampProvider({ children }: { children: React.ReactNode }):
quoteCurrency, quoteCurrency,
defaultCurrency, defaultCurrency,
setQuoteCurrency, setQuoteCurrency,
fiatAmount, amount,
setFiatAmount, setAmount,
tokenAmount,
setTokenAmount,
isOffRamp, isOffRamp,
setIsOffRamp, setIsOffRamp,
isTokenInputMode,
setIsTokenInputMode,
}} }}
> >
{children} {children}
......
...@@ -14,42 +14,17 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = ` ...@@ -14,42 +14,17 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = `
<View <View
style={ style={
{ {
"backgroundColor": { "backgroundColor": "#FFFFFF",
"dynamic": { "borderBottomColor": "rgba(34,34,34,0.05)",
"dark": "#131313",
"light": "#FFFFFF",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderBottomLeftRadius": 20, "borderBottomLeftRadius": 20,
"borderBottomRightRadius": 20, "borderBottomRightRadius": 20,
"borderBottomWidth": 1, "borderBottomWidth": 1,
"borderLeftColor": { "borderLeftColor": "rgba(34,34,34,0.05)",
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderLeftWidth": 1, "borderLeftWidth": 1,
"borderRightColor": { "borderRightColor": "rgba(34,34,34,0.05)",
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderRightWidth": 1, "borderRightWidth": 1,
"borderStyle": "solid", "borderStyle": "solid",
"borderTopColor": { "borderTopColor": "rgba(34,34,34,0.05)",
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderTopLeftRadius": 20, "borderTopLeftRadius": 20,
"borderTopRightRadius": 20, "borderTopRightRadius": 20,
"borderTopWidth": 1, "borderTopWidth": 1,
...@@ -83,67 +58,32 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = ` ...@@ -83,67 +58,32 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = `
focusable={true} focusable={true}
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
multiline={true} multiline={true}
onBlur={[Function]}
onChangeText={[Function]} onChangeText={[Function]}
onFocus={[Function]}
onSubmitEditing={[Function]} onSubmitEditing={[Function]}
placeholderTextColor={ placeholderTextColor="#BFBFBF"
{
"dynamic": {
"dark": "#5E5E5E",
"light": "#BFBFBF",
},
}
}
returnKeyType="done" returnKeyType="done"
scrollEnabled={false} scrollEnabled={false}
selectionColor="#BFBFBF" selectionColor="#BFBFBF"
spellCheck={false} spellCheck={false}
style={ style={
{ {
"backgroundColor": { "backgroundColor": "transparent",
"dynamic": { "borderBottomColor": "transparent",
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomColor": {
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderBottomLeftRadius": 12, "borderBottomLeftRadius": 12,
"borderBottomRightRadius": 12, "borderBottomRightRadius": 12,
"borderBottomWidth": 1, "borderBottomWidth": 1,
"borderLeftColor": { "borderLeftColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderLeftWidth": 1, "borderLeftWidth": 1,
"borderRightColor": { "borderRightColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderRightWidth": 1, "borderRightWidth": 1,
"borderStyle": "solid", "borderStyle": "solid",
"borderTopColor": { "borderTopColor": "transparent",
"dynamic": {
"dark": "transparent",
"light": "transparent",
},
},
"borderTopLeftRadius": 12, "borderTopLeftRadius": 12,
"borderTopRightRadius": 12, "borderTopRightRadius": 12,
"borderTopWidth": 1, "borderTopWidth": 1,
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"flexShrink": 1, "flexShrink": 1,
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
...@@ -181,12 +121,7 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = ` ...@@ -181,12 +121,7 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = `
pointerEvents="none" pointerEvents="none"
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
...@@ -221,22 +156,21 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = ` ...@@ -221,22 +156,21 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = `
} }
> >
<View <View
hitSlop={ cancelable={true}
{ disabled={false}
"bottom": 5, focusable={true}
"left": 5, hitSlop={[Function]}
"right": 5, minPressDuration={0}
"top": 5, onBlur={[Function]}
} onFocus={[Function]}
} onMouseEnter={[Function]}
onMouseLeave={[Function]}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"backgroundColor": { "backgroundColor": "#FEF4FF",
"dynamic": {
"dark": "#361A37",
"light": "#FEF4FF",
},
},
"borderBottomLeftRadius": 12, "borderBottomLeftRadius": 12,
"borderBottomRightRadius": 12, "borderBottomRightRadius": 12,
"borderTopLeftRadius": 12, "borderTopLeftRadius": 12,
...@@ -270,12 +204,7 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = ` ...@@ -270,12 +204,7 @@ exports[`GenericImportForm renders a placeholder when there is no value 1`] = `
maxFontSizeMultiplier={1.2} maxFontSizeMultiplier={1.2}
style={ style={
{ {
"color": { "color": "#FC72FF",
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 15, "fontSize": 15,
"fontWeight": "500", "fontWeight": "500",
......
...@@ -2,15 +2,18 @@ ...@@ -2,15 +2,18 @@
exports[`renders collection preview card 1`] = ` exports[`renders collection preview card 1`] = `
<View <View
cancelable={true}
disabled={false} disabled={false}
hitSlop={ focusable={true}
{ hitSlop={[Function]}
"bottom": 5, minPressDuration={0}
"left": 5, onBlur={[Function]}
"right": 5, onFocus={[Function]}
"top": 5, onMouseEnter={[Function]}
} onMouseLeave={[Function]}
} onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={ style={
{ {
"flexDirection": "column", "flexDirection": "column",
...@@ -27,12 +30,7 @@ exports[`renders collection preview card 1`] = ` ...@@ -27,12 +30,7 @@ exports[`renders collection preview card 1`] = `
style={ style={
{ {
"alignItems": "center", "alignItems": "center",
"backgroundColor": { "backgroundColor": "rgba(34,34,34,0.05)",
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderBottomLeftRadius": 16, "borderBottomLeftRadius": 16,
"borderBottomRightRadius": 16, "borderBottomRightRadius": 16,
"borderTopLeftRadius": 16, "borderTopLeftRadius": 16,
...@@ -77,12 +75,7 @@ exports[`renders collection preview card 1`] = ` ...@@ -77,12 +75,7 @@ exports[`renders collection preview card 1`] = `
{ {
"alignItems": "center", "alignItems": "center",
"aspectRatio": 1, "aspectRatio": 1,
"backgroundColor": { "backgroundColor": "#F9F9F9",
"dynamic": {
"dark": "#1B1B1B",
"light": "#F9F9F9",
},
},
"flex": 1, "flex": 1,
"flexDirection": "column", "flexDirection": "column",
"justifyContent": "center", "justifyContent": "center",
...@@ -99,12 +92,7 @@ exports[`renders collection preview card 1`] = ` ...@@ -99,12 +92,7 @@ exports[`renders collection preview card 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
...@@ -150,12 +138,7 @@ exports[`renders collection preview card 1`] = ` ...@@ -150,12 +138,7 @@ exports[`renders collection preview card 1`] = `
numberOfLines={1} numberOfLines={1}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -168,14 +151,7 @@ exports[`renders collection preview card 1`] = ` ...@@ -168,14 +151,7 @@ exports[`renders collection preview card 1`] = `
</Text> </Text>
</View> </View>
<svg <svg
color={ color="#FC72FF"
{
"dynamic": {
"dark": "#FC72FF",
"light": "#FC72FF",
},
}
}
data-file-name="SvgVerified" data-file-name="SvgVerified"
height={16} height={16}
width={16} width={16}
......
...@@ -4,12 +4,7 @@ exports[`renders trait card 1`] = ` ...@@ -4,12 +4,7 @@ exports[`renders trait card 1`] = `
<View <View
style={ style={
{ {
"backgroundColor": { "backgroundColor": "rgba(34,34,34,0.05)",
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderBottomLeftRadius": 16, "borderBottomLeftRadius": 16,
"borderBottomRightRadius": 16, "borderBottomRightRadius": 16,
"borderTopLeftRadius": 16, "borderTopLeftRadius": 16,
...@@ -28,12 +23,7 @@ exports[`renders trait card 1`] = ` ...@@ -28,12 +23,7 @@ exports[`renders trait card 1`] = `
maxFontSizeMultiplier={1.2} maxFontSizeMultiplier={1.2}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "500", "fontWeight": "500",
...@@ -49,12 +39,7 @@ exports[`renders trait card 1`] = ` ...@@ -49,12 +39,7 @@ exports[`renders trait card 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
......
...@@ -16,7 +16,7 @@ import { ...@@ -16,7 +16,7 @@ import {
} from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks' } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { AssetType, CurrencyAsset } from 'uniswap/src/entities/assets' import { AssetType, CurrencyAsset } from 'uniswap/src/entities/assets'
import { DEFAULT_NATIVE_ADDRESS } from 'uniswap/src/features/chains/chainInfo' import { DEFAULT_NATIVE_ADDRESS } from 'uniswap/src/features/chains/chainInfo'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { getChainLabel, toSupportedChainId } from 'uniswap/src/features/chains/utils' import { getChainLabel, toSupportedChainId } from 'uniswap/src/features/chains/utils'
import { usePortfolioBalances, useTokenBalancesGroupedByVisibility } from 'uniswap/src/features/dataApi/balances' import { usePortfolioBalances, useTokenBalancesGroupedByVisibility } from 'uniswap/src/features/dataApi/balances'
......
...@@ -159,25 +159,11 @@ export const parseTransactionRequest = ( ...@@ -159,25 +159,11 @@ export const parseTransactionRequest = (
} }
} }
function isUtf8(str: string): boolean {
try {
const decoded = new TextDecoder('utf-8').decode(new TextEncoder().encode(str))
// if the encoded -> decoded string matches the original string (ie no chars swapped),
// then it's valid utf-8
return decoded === str
} catch {
return false
}
}
export function decodeMessage(value: string): string { export function decodeMessage(value: string): string {
if (utils.isHexString(value) && isUtf8(value)) { if (utils.isHexString(value)) {
const decoded = utils.toUtf8String(value) return utils.toUtf8String(value)
if (decoded?.trim()) {
return decoded
}
} }
return value return value
} }
......
...@@ -15,7 +15,7 @@ import { Flex, flexStyles } from 'ui/src' ...@@ -15,7 +15,7 @@ import { Flex, flexStyles } from 'ui/src'
import { useBottomSheetContext } from 'uniswap/src/components/modals/BottomSheetContext' import { useBottomSheetContext } from 'uniswap/src/components/modals/BottomSheetContext'
import { HandleBar } from 'uniswap/src/components/modals/HandleBar' import { HandleBar } from 'uniswap/src/components/modals/HandleBar'
import { NetworkFilter } from 'uniswap/src/components/network/NetworkFilter' import { NetworkFilter } from 'uniswap/src/components/network/NetworkFilter'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { CancelBehaviorType, SearchTextInput } from 'uniswap/src/features/search/SearchTextInput' import { CancelBehaviorType, SearchTextInput } from 'uniswap/src/features/search/SearchTextInput'
import { MobileEventName, ModalName, SectionName } from 'uniswap/src/features/telemetry/constants' import { MobileEventName, ModalName, SectionName } from 'uniswap/src/features/telemetry/constants'
......
...@@ -49,8 +49,7 @@ export function FiatOnRampConnectingScreen({ navigation }: Props): JSX.Element | ...@@ -49,8 +49,7 @@ export function FiatOnRampConnectingScreen({ navigation }: Props): JSX.Element |
countryState, countryState,
baseCurrencyInfo, baseCurrencyInfo,
quoteCurrency, quoteCurrency,
fiatAmount, amount,
tokenAmount,
} = useFiatOnRampContext() } = useFiatOnRampContext()
const serviceProvider = selectedQuote?.serviceProviderDetails const serviceProvider = selectedQuote?.serviceProviderDetails
...@@ -76,12 +75,12 @@ export function FiatOnRampConnectingScreen({ navigation }: Props): JSX.Element | ...@@ -76,12 +75,12 @@ export function FiatOnRampConnectingScreen({ navigation }: Props): JSX.Element |
isLoading: widgetLoading, isLoading: widgetLoading,
error: widgetError, error: widgetError,
} = useFiatOnRampAggregatorWidgetQuery( } = useFiatOnRampAggregatorWidgetQuery(
!isOffRamp && serviceProvider && quoteCurrency.meldCurrencyCode && baseCurrencyInfo && fiatAmount !isOffRamp && serviceProvider && quoteCurrency.meldCurrencyCode && baseCurrencyInfo && amount
? { ? {
serviceProvider: serviceProvider.serviceProvider, serviceProvider: serviceProvider.serviceProvider,
countryCode, countryCode,
destinationCurrencyCode: quoteCurrency.meldCurrencyCode, destinationCurrencyCode: quoteCurrency.meldCurrencyCode,
sourceAmount: fiatAmount, sourceAmount: amount,
sourceCurrencyCode: baseCurrencyInfo.code, sourceCurrencyCode: baseCurrencyInfo.code,
walletAddress: activeAccountAddress, walletAddress: activeAccountAddress,
externalSessionId: externalTransactionId, externalSessionId: externalTransactionId,
...@@ -96,12 +95,12 @@ export function FiatOnRampConnectingScreen({ navigation }: Props): JSX.Element | ...@@ -96,12 +95,12 @@ export function FiatOnRampConnectingScreen({ navigation }: Props): JSX.Element |
isLoading: offRampWidgetLoading, isLoading: offRampWidgetLoading,
error: offRampWidgetError, error: offRampWidgetError,
} = useFiatOnRampAggregatorOffRampWidgetQuery( } = useFiatOnRampAggregatorOffRampWidgetQuery(
isOffRamp && serviceProvider && quoteCurrency.meldCurrencyCode && baseCurrencyInfo && tokenAmount isOffRamp && serviceProvider && quoteCurrency.meldCurrencyCode && baseCurrencyInfo && amount
? { ? {
serviceProvider: serviceProvider.serviceProvider, serviceProvider: serviceProvider.serviceProvider,
countryCode, countryCode,
baseCurrencyCode: quoteCurrency.meldCurrencyCode, baseCurrencyCode: quoteCurrency.meldCurrencyCode,
sourceAmount: tokenAmount, sourceAmount: amount,
quoteCurrencyCode: baseCurrencyInfo.code, quoteCurrencyCode: baseCurrencyInfo.code,
refundWalletAddress: activeAccountAddress, refundWalletAddress: activeAccountAddress,
externalCustomerId: activeAccountAddress, externalCustomerId: activeAccountAddress,
...@@ -178,7 +177,7 @@ export function FiatOnRampConnectingScreen({ navigation }: Props): JSX.Element | ...@@ -178,7 +177,7 @@ export function FiatOnRampConnectingScreen({ navigation }: Props): JSX.Element |
<> <>
<FiatOnRampConnectingView <FiatOnRampConnectingView
amount={addFiatSymbolToNumber({ amount={addFiatSymbolToNumber({
value: fiatAmount, value: amount,
currencyCode: baseCurrencyInfo?.code, currencyCode: baseCurrencyInfo?.code,
currencySymbol: baseCurrencyInfo?.symbol, currencySymbol: baseCurrencyInfo?.symbol,
})} })}
......
...@@ -58,9 +58,8 @@ import SendIcon from 'ui/src/assets/icons/send-action.svg' ...@@ -58,9 +58,8 @@ import SendIcon from 'ui/src/assets/icons/send-action.svg'
import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex' import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex'
import { useDeviceDimensions } from 'ui/src/hooks/useDeviceDimensions' import { useDeviceDimensions } from 'ui/src/hooks/useDeviceDimensions'
import { iconSizes, spacing } from 'ui/src/theme' import { iconSizes, spacing } from 'ui/src/theme'
import { useNftsTabQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { AccountType } from 'uniswap/src/features/accounts/types' import { AccountType } from 'uniswap/src/features/accounts/types'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { usePortfolioBalances } from 'uniswap/src/features/dataApi/balances' import { usePortfolioBalances } from 'uniswap/src/features/dataApi/balances'
import { useCexTransferProviders } from 'uniswap/src/features/fiatOnRamp/useCexTransferProviders' import { useCexTransferProviders } from 'uniswap/src/features/fiatOnRamp/useCexTransferProviders'
import { FeatureFlags } from 'uniswap/src/features/gating/flags' import { FeatureFlags } from 'uniswap/src/features/gating/flags'
...@@ -82,7 +81,6 @@ import { TestID } from 'uniswap/src/test/fixtures/testIDs' ...@@ -82,7 +81,6 @@ import { TestID } from 'uniswap/src/test/fixtures/testIDs'
import { MobileScreens } from 'uniswap/src/types/screens/mobile' import { MobileScreens } from 'uniswap/src/types/screens/mobile'
import { useTimeout } from 'utilities/src/time/timing' import { useTimeout } from 'utilities/src/time/timing'
import { ScannerModalState } from 'wallet/src/components/QRCodeScanner/constants' import { ScannerModalState } from 'wallet/src/components/QRCodeScanner/constants'
import { useFormattedTransactionDataForActivity } from 'wallet/src/features/activity/hooks'
import { PortfolioBalance } from 'wallet/src/features/portfolio/PortfolioBalance' import { PortfolioBalance } from 'wallet/src/features/portfolio/PortfolioBalance'
import { TokenBalanceListRow } from 'wallet/src/features/portfolio/TokenBalanceListContext' import { TokenBalanceListRow } from 'wallet/src/features/portfolio/TokenBalanceListContext'
import { useHeartbeatReporter, useLastBalancesReporter } from 'wallet/src/features/telemetry/hooks' import { useHeartbeatReporter, useLastBalancesReporter } from 'wallet/src/features/telemetry/hooks'
...@@ -117,28 +115,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX. ...@@ -117,28 +115,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
const { data: balancesById, loading: areBalancesLoading } = usePortfolioBalances({ const { data: balancesById, loading: areBalancesLoading } = usePortfolioBalances({
address: activeAccount.address, address: activeAccount.address,
}) })
const showEmptyTokenState = balancesById && !Object.entries(balancesById).length
const { gqlChains } = useEnabledChains()
const { data: nftData } = useNftsTabQuery({
variables: {
ownerAddress: activeAccount.address,
first: 1,
filter: { filterSpam: true },
chains: gqlChains,
},
notifyOnNetworkStatusChange: true, // Used to trigger network state / loading on refetch or fetchMore
errorPolicy: 'all', // Suppress non-null image.url fields from backend
})
const isNftBalance = !!nftData?.nftBalances?.edges.length
const { hasData: isActivity } = useFormattedTransactionDataForActivity({
address: activeAccount.address,
hideSpamTokens: true,
pageSize: 1,
})
const isTokenBalances = !!Object.entries(balancesById || {}).length
const showEmptyWalletState = !isTokenBalances && !isNftBalance && !isActivity
// opens the wallet restore modal if recovery phrase is missing after the app is opened // opens the wallet restore modal if recovery phrase is missing after the app is opened
useWalletRestore({ openModalImmediately: true }) useWalletRestore({ openModalImmediately: true })
...@@ -149,7 +126,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX. ...@@ -149,7 +126,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
const [routeTabIndex, setRouteTabIndex] = useState(props?.route?.params?.tab ?? HomeScreenTabIndex.Tokens) const [routeTabIndex, setRouteTabIndex] = useState(props?.route?.params?.tab ?? HomeScreenTabIndex.Tokens)
// Ensures that tabIndex has the proper value between the empty state and non-empty state // Ensures that tabIndex has the proper value between the empty state and non-empty state
const tabIndex = showEmptyWalletState ? HomeScreenTabIndex.Tokens : routeTabIndex const tabIndex = showEmptyTokenState ? HomeScreenTabIndex.Tokens : routeTabIndex
useHomeScreenCustomAndroidBackButton(routeTabIndex, setRouteTabIndex) useHomeScreenCustomAndroidBackButton(routeTabIndex, setRouteTabIndex)
...@@ -161,7 +138,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX. ...@@ -161,7 +138,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
const exploreTitle = t('home.explore.title') const exploreTitle = t('home.explore.title')
const routes = useMemo((): HomeRoute[] => { const routes = useMemo((): HomeRoute[] => {
if (showEmptyWalletState) { if (showEmptyTokenState) {
return [ return [
{ {
key: SectionName.HomeExploreTab, key: SectionName.HomeExploreTab,
...@@ -181,7 +158,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX. ...@@ -181,7 +158,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
} }
return tabs return tabs
}, [showEmptyWalletState, tokensTitle, nftsTitle, activityTitle, showFeedTab, exploreTitle, feedTitle]) }, [showEmptyTokenState, tokensTitle, nftsTitle, activityTitle, showFeedTab, exploreTitle, feedTitle])
useEffect( useEffect(
function syncTabIndex() { function syncTabIndex() {
...@@ -256,7 +233,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX. ...@@ -256,7 +233,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
const exploreTabScrollRef = useAnimatedRef<FlatList<any>>() const exploreTabScrollRef = useAnimatedRef<FlatList<any>>()
const currentScrollValue = useDerivedValue(() => { const currentScrollValue = useDerivedValue(() => {
if (showEmptyWalletState) { if (showEmptyTokenState) {
return exploreTabScrollValue.value return exploreTabScrollValue.value
} else if (tabIndex === HomeScreenTabIndex.Tokens) { } else if (tabIndex === HomeScreenTabIndex.Tokens) {
return tokensTabScrollValue.value return tokensTabScrollValue.value
...@@ -269,7 +246,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX. ...@@ -269,7 +246,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
}, [ }, [
activityTabScrollValue.value, activityTabScrollValue.value,
exploreTabScrollValue.value, exploreTabScrollValue.value,
showEmptyWalletState, showEmptyTokenState,
feedTabScrollValue.value, feedTabScrollValue.value,
nftsTabScrollValue.value, nftsTabScrollValue.value,
tabIndex, tabIndex,
...@@ -318,7 +295,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX. ...@@ -318,7 +295,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
useScrollToTop( useScrollToTop(
useRef({ useRef({
scrollToTop: () => { scrollToTop: () => {
if (showEmptyWalletState) { if (showEmptyTokenState) {
exploreTabScrollRef.current?.scrollToOffset({ offset: 0, animated: true }) exploreTabScrollRef.current?.scrollToOffset({ offset: 0, animated: true })
} else if (currentTabIndex.value === HomeScreenTabIndex.NFTs && isNftTabsAtTop.value) { } else if (currentTabIndex.value === HomeScreenTabIndex.NFTs && isNftTabsAtTop.value) {
setRouteTabIndex(HomeScreenTabIndex.Tokens) setRouteTabIndex(HomeScreenTabIndex.Tokens)
...@@ -471,10 +448,10 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX. ...@@ -471,10 +448,10 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
() => ( () => (
<OnboardingIntroCardStack <OnboardingIntroCardStack
isLoading={areBalancesLoading && balancesById === undefined} isLoading={areBalancesLoading && balancesById === undefined}
hasTokens={!showEmptyWalletState} hasTokens={!showEmptyTokenState}
/> />
), ),
[showEmptyWalletState, areBalancesLoading, balancesById], [showEmptyTokenState, areBalancesLoading, balancesById],
) )
const contentHeader = useMemo(() => { const contentHeader = useMemo(() => {
...@@ -482,7 +459,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX. ...@@ -482,7 +459,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
<Flex <Flex
backgroundColor="$surface1" backgroundColor="$surface1"
gap="$spacing8" gap="$spacing8"
pb={showEmptyWalletState ? '$spacing8' : '$spacing16'} pb={showEmptyTokenState ? '$spacing8' : '$spacing16'}
px="$spacing12" px="$spacing12"
> >
<TestnetModeModal <TestnetModeModal
...@@ -510,7 +487,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX. ...@@ -510,7 +487,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
</Flex> </Flex>
) )
}, [ }, [
showEmptyWalletState, showEmptyTokenState,
isTestnetWarningModalOpen, isTestnetWarningModalOpen,
t, t,
handleTestnetWarningModalClose, handleTestnetWarningModalClose,
...@@ -522,7 +499,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX. ...@@ -522,7 +499,7 @@ export function HomeScreen(props?: AppStackScreenProp<MobileScreens.Home>): JSX.
promoBanner, promoBanner,
]) ])
const paddingTop = headerHeight + TAB_BAR_HEIGHT + (showEmptyWalletState ? 0 : TAB_STYLES.tabListInner.paddingTop) const paddingTop = headerHeight + TAB_BAR_HEIGHT + (showEmptyTokenState ? 0 : TAB_STYLES.tabListInner.paddingTop)
const paddingBottom = insets.bottom + SWAP_BUTTON_HEIGHT + TAB_STYLES.tabListInner.paddingBottom + spacing.spacing12 const paddingBottom = insets.bottom + SWAP_BUTTON_HEIGHT + TAB_STYLES.tabListInner.paddingBottom + spacing.spacing12
const contentContainerStyle = useMemo<StyleProp<ViewStyle>>( const contentContainerStyle = useMemo<StyleProp<ViewStyle>>(
......
...@@ -11,7 +11,7 @@ import { useCompleteOnboardingCallback } from 'src/features/onboarding/hooks' ...@@ -11,7 +11,7 @@ import { useCompleteOnboardingCallback } from 'src/features/onboarding/hooks'
import { useNavigationHeader } from 'src/utils/useNavigationHeader' import { useNavigationHeader } from 'src/utils/useNavigationHeader'
import { Button, Flex, Text } from 'ui/src' import { Button, Flex, Text } from 'ui/src'
import { Eye, GraduationCap } from 'ui/src/components/icons' import { Eye, GraduationCap } from 'ui/src/components/icons'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { UniverseChainId } from 'uniswap/src/features/chains/types' import { UniverseChainId } from 'uniswap/src/features/chains/types'
import { usePortfolioBalances } from 'uniswap/src/features/dataApi/balances' import { usePortfolioBalances } from 'uniswap/src/features/dataApi/balances'
import { ENS_SUFFIX } from 'uniswap/src/features/ens/constants' import { ENS_SUFFIX } from 'uniswap/src/features/ens/constants'
......
...@@ -5,12 +5,7 @@ exports[`RestoreCloudBackupScreen renders correctly 1`] = ` ...@@ -5,12 +5,7 @@ exports[`RestoreCloudBackupScreen renders correctly 1`] = `
sentry-label="Screen" sentry-label="Screen"
style={ style={
{ {
"backgroundColor": { "backgroundColor": "#FFFFFF",
"dynamic": {
"dark": "#131313",
"light": "#FFFFFF",
},
},
"flex": 1, "flex": 1,
"flexDirection": "column", "flexDirection": "column",
"paddingLeft": undefined, "paddingLeft": undefined,
...@@ -86,12 +81,7 @@ exports[`RestoreCloudBackupScreen renders correctly 1`] = ` ...@@ -86,12 +81,7 @@ exports[`RestoreCloudBackupScreen renders correctly 1`] = `
style={ style={
{ {
"alignItems": "center", "alignItems": "center",
"backgroundColor": { "backgroundColor": "rgba(34,34,34,0.05)",
"dynamic": {
"dark": "rgba(255,255,255,0.12)",
"light": "rgba(34,34,34,0.05)",
},
},
"borderBottomLeftRadius": 8, "borderBottomLeftRadius": 8,
"borderBottomRightRadius": 8, "borderBottomRightRadius": 8,
"borderTopLeftRadius": 8, "borderTopLeftRadius": 8,
...@@ -169,12 +159,7 @@ exports[`RestoreCloudBackupScreen renders correctly 1`] = ` ...@@ -169,12 +159,7 @@ exports[`RestoreCloudBackupScreen renders correctly 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#222222",
"dynamic": {
"dark": "#FFFFFF",
"light": "#222222",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 19, "fontSize": 19,
"fontWeight": "400", "fontWeight": "400",
...@@ -192,12 +177,7 @@ exports[`RestoreCloudBackupScreen renders correctly 1`] = ` ...@@ -192,12 +177,7 @@ exports[`RestoreCloudBackupScreen renders correctly 1`] = `
maxFontSizeMultiplier={1.4} maxFontSizeMultiplier={1.4}
style={ style={
{ {
"color": { "color": "#7D7D7D",
"dynamic": {
"dark": "#9B9B9B",
"light": "#7D7D7D",
},
},
"fontFamily": "Basel Grotesk", "fontFamily": "Basel Grotesk",
"fontSize": 17, "fontSize": 17,
"fontWeight": "400", "fontWeight": "400",
......
import { useEffect, useMemo, useState } from 'react' import { useEffect, useMemo, useState } from 'react'
import { useMultiplePortfolioBalancesQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks' import { useMultiplePortfolioBalancesQuery } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
// eslint-disable-next-line no-restricted-imports // eslint-disable-next-line no-restricted-imports
import { usePortfolioValueModifiers } from 'uniswap/src/features/dataApi/balances' import { usePortfolioValueModifiers } from 'uniswap/src/features/dataApi/balances'
import { useUnitagByAddress } from 'uniswap/src/features/unitags/hooks' import { useUnitagByAddress } from 'uniswap/src/features/unitags/hooks'
......
...@@ -11,7 +11,7 @@ import { TermsOfService } from 'src/screens/Onboarding/TermsOfService' ...@@ -11,7 +11,7 @@ import { TermsOfService } from 'src/screens/Onboarding/TermsOfService'
import { hideSplashScreen } from 'src/utils/splashScreen' import { hideSplashScreen } from 'src/utils/splashScreen'
import { Flex, Text, TouchableArea } from 'ui/src' import { Flex, Text, TouchableArea } from 'ui/src'
import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex' import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { setIsTestnetModeEnabled } from 'uniswap/src/features/settings/slice' import { setIsTestnetModeEnabled } from 'uniswap/src/features/settings/slice'
import Trace from 'uniswap/src/features/telemetry/Trace' import Trace from 'uniswap/src/features/telemetry/Trace'
import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants' import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants'
......
...@@ -43,7 +43,7 @@ import { ...@@ -43,7 +43,7 @@ import {
} from 'ui/src/components/icons' } from 'ui/src/components/icons'
import { iconSizes, spacing } from 'ui/src/theme' import { iconSizes, spacing } from 'ui/src/theme'
import { uniswapUrls } from 'uniswap/src/constants/urls' import { uniswapUrls } from 'uniswap/src/constants/urls'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useAppFiatCurrencyInfo } from 'uniswap/src/features/fiatCurrency/hooks' import { useAppFiatCurrencyInfo } from 'uniswap/src/features/fiatCurrency/hooks'
import { useCurrentLanguageInfo } from 'uniswap/src/features/language/hooks' import { useCurrentLanguageInfo } from 'uniswap/src/features/language/hooks'
import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from 'uniswap/src/features/settings/hooks' import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from 'uniswap/src/features/settings/hooks'
......
...@@ -32,7 +32,7 @@ import GlobalIcon from 'ui/src/assets/icons/global.svg' ...@@ -32,7 +32,7 @@ import GlobalIcon from 'ui/src/assets/icons/global.svg'
import TextEditIcon from 'ui/src/assets/icons/textEdit.svg' import TextEditIcon from 'ui/src/assets/icons/textEdit.svg'
import { iconSizes, spacing } from 'ui/src/theme' import { iconSizes, spacing } from 'ui/src/theme'
import { AccountType } from 'uniswap/src/features/accounts/types' import { AccountType } from 'uniswap/src/features/accounts/types'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { useENS } from 'uniswap/src/features/ens/useENS' import { useENS } from 'uniswap/src/features/ens/useENS'
import { MobileEventName, ModalName } from 'uniswap/src/features/telemetry/constants' import { MobileEventName, ModalName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
......
...@@ -36,7 +36,7 @@ import { GQLQueries } from 'uniswap/src/data/graphql/uniswap-data-api/queries' ...@@ -36,7 +36,7 @@ import { GQLQueries } from 'uniswap/src/data/graphql/uniswap-data-api/queries'
import { AssetType } from 'uniswap/src/entities/assets' import { AssetType } from 'uniswap/src/entities/assets'
import { useBridgingTokenWithHighestBalance } from 'uniswap/src/features/bridging/hooks/tokens' import { useBridgingTokenWithHighestBalance } from 'uniswap/src/features/bridging/hooks/tokens'
import { getChainInfo } from 'uniswap/src/features/chains/chainInfo' import { getChainInfo } from 'uniswap/src/features/chains/chainInfo'
import { useEnabledChains } from 'uniswap/src/features/chains/hooks/useEnabledChains' import { useEnabledChains } from 'uniswap/src/features/chains/hooks'
import { TokenList } from 'uniswap/src/features/dataApi/types' import { TokenList } from 'uniswap/src/features/dataApi/types'
import { currencyIdToContractInput } from 'uniswap/src/features/dataApi/utils' import { currencyIdToContractInput } from 'uniswap/src/features/dataApi/utils'
import { useIsSupportedFiatOnRampCurrency } from 'uniswap/src/features/fiatOnRamp/hooks' import { useIsSupportedFiatOnRampCurrency } from 'uniswap/src/features/fiatOnRamp/hooks'
......
{ {
"$schema": "https://json.schemastore.org/tsconfig", "$schema": "https://json.schemastore.org/tsconfig",
"display": "Mobile App", "display": "Mobile App",
"extends": "../../config/tsconfig/expo.json", "extends": "tsconfig/expo.json",
"references": [ "references": [
{ {
"path": "../../packages/ui" "path": "../../packages/ui"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE html> <!DOCTYPE html>
<html translate="no" style="overflow-x: hidden;"> <html translate="no">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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