Commit 2482a10c authored by Zach Pomerantz's avatar Zach Pomerantz Committed by GitHub

perf: rm duplicated ua-parser (#2427)

parent eb09894b
...@@ -5,7 +5,7 @@ import styled from 'styled-components/macro' ...@@ -5,7 +5,7 @@ import styled from 'styled-components/macro'
import store, { AppState } from '../../state' import store, { AppState } from '../../state'
import { ExternalLink, TYPE } from '../../theme' import { ExternalLink, TYPE } from '../../theme'
import { getUserAgent } from '../../utils/getUserAgent' import { userAgent } from '../../utils/userAgent'
import { AutoColumn } from '../Column' import { AutoColumn } from '../Column'
import { AutoRow } from '../Row' import { AutoRow } from '../Row'
...@@ -137,7 +137,7 @@ function getRelevantState(): null | keyof AppState { ...@@ -137,7 +137,7 @@ function getRelevantState(): null | keyof AppState {
function issueBody(error: Error): string { function issueBody(error: Error): string {
const relevantState = getRelevantState() const relevantState = getRelevantState()
const deviceData = getUserAgent() const deviceData = userAgent
return `## URL return `## URL
${window.location.href} ${window.location.href}
......
import { DialogContent, DialogOverlay } from '@reach/dialog' import { DialogContent, DialogOverlay } from '@reach/dialog'
import { transparentize } from 'polished' import { transparentize } from 'polished'
import React from 'react' import React from 'react'
import { isMobile } from 'react-device-detect'
import { animated, useSpring, useTransition } from 'react-spring' import { animated, useSpring, useTransition } from 'react-spring'
import { useGesture } from 'react-use-gesture' import { useGesture } from 'react-use-gesture'
import styled, { css } from 'styled-components/macro' import styled, { css } from 'styled-components/macro'
import { isMobile } from '../../utils/userAgent'
const AnimatedDialogOverlay = animated(DialogOverlay) const AnimatedDialogOverlay = animated(DialogOverlay)
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
const StyledDialogOverlay = styled(AnimatedDialogOverlay)` const StyledDialogOverlay = styled(AnimatedDialogOverlay)`
......
...@@ -4,7 +4,6 @@ import { UnsupportedChainIdError, useWeb3React } from '@web3-react/core' ...@@ -4,7 +4,6 @@ import { UnsupportedChainIdError, useWeb3React } from '@web3-react/core'
import { WalletConnectConnector } from '@web3-react/walletconnect-connector' import { WalletConnectConnector } from '@web3-react/walletconnect-connector'
import { AutoRow } from 'components/Row' import { AutoRow } from 'components/Row'
import { useEffect, useState } from 'react' import { useEffect, useState } from 'react'
import { isMobile } from 'react-device-detect'
import ReactGA from 'react-ga' import ReactGA from 'react-ga'
import styled from 'styled-components/macro' import styled from 'styled-components/macro'
...@@ -17,6 +16,7 @@ import usePrevious from '../../hooks/usePrevious' ...@@ -17,6 +16,7 @@ import usePrevious from '../../hooks/usePrevious'
import { ApplicationModal } from '../../state/application/actions' import { ApplicationModal } from '../../state/application/actions'
import { useModalOpen, useWalletModalToggle } from '../../state/application/hooks' import { useModalOpen, useWalletModalToggle } from '../../state/application/hooks'
import { ExternalLink, TYPE } from '../../theme' import { ExternalLink, TYPE } from '../../theme'
import { isMobile } from '../../utils/userAgent'
import AccountDetails from '../AccountDetails' import AccountDetails from '../AccountDetails'
import { LightCard } from '../Card' import { LightCard } from '../Card'
import Modal from '../Modal' import Modal from '../Modal'
......
...@@ -2,10 +2,10 @@ import { Web3Provider } from '@ethersproject/providers' ...@@ -2,10 +2,10 @@ import { Web3Provider } from '@ethersproject/providers'
import { useWeb3React } from '@web3-react/core' import { useWeb3React } from '@web3-react/core'
import { Web3ReactContextInterface } from '@web3-react/core/dist/types' import { Web3ReactContextInterface } from '@web3-react/core/dist/types'
import { useEffect, useState } from 'react' import { useEffect, useState } from 'react'
import { isMobile } from 'react-device-detect'
import { gnosisSafe, injected } from '../connectors' import { gnosisSafe, injected } from '../connectors'
import { IS_IN_IFRAME, NetworkContextName } from '../constants/misc' import { IS_IN_IFRAME, NetworkContextName } from '../constants/misc'
import { isMobile } from '../utils/userAgent'
export function useActiveWeb3React(): Web3ReactContextInterface<Web3Provider> { export function useActiveWeb3React(): Web3ReactContextInterface<Web3Provider> {
const context = useWeb3React<Web3Provider>() const context = useWeb3React<Web3Provider>()
......
...@@ -4,7 +4,6 @@ import 'polyfills' ...@@ -4,7 +4,6 @@ import 'polyfills'
import { createWeb3ReactRoot, Web3ReactProvider } from '@web3-react/core' import { createWeb3ReactRoot, Web3ReactProvider } from '@web3-react/core'
import { StrictMode } from 'react' import { StrictMode } from 'react'
import { isMobile } from 'react-device-detect'
import ReactDOM from 'react-dom' import ReactDOM from 'react-dom'
import ReactGA from 'react-ga' import ReactGA from 'react-ga'
import { Provider } from 'react-redux' import { Provider } from 'react-redux'
...@@ -25,6 +24,7 @@ import UserUpdater from './state/user/updater' ...@@ -25,6 +24,7 @@ import UserUpdater from './state/user/updater'
import ThemeProvider, { ThemedGlobalStyle } from './theme' import ThemeProvider, { ThemedGlobalStyle } from './theme'
import RadialGradientByChainUpdater from './theme/RadialGradientByChainUpdater' import RadialGradientByChainUpdater from './theme/RadialGradientByChainUpdater'
import getLibrary from './utils/getLibrary' import getLibrary from './utils/getLibrary'
import { isMobile } from './utils/userAgent'
const Web3ProviderNetwork = createWeb3ReactRoot(NetworkContextName) const Web3ProviderNetwork = createWeb3ReactRoot(NetworkContextName)
......
import { UAParser } from 'ua-parser-js'
export function getUserAgent(): UAParser.IResult {
const parser = new UAParser(window.navigator.userAgent)
return parser.getResult()
}
import { UAParser } from 'ua-parser-js'
const parser = new UAParser(window.navigator.userAgent)
const { type } = parser.getDevice()
export const userAgent = parser.getResult()
export const isMobile = type === 'mobile' || type === 'tablet'
...@@ -15787,13 +15787,6 @@ react-dev-utils@^11.0.3: ...@@ -15787,13 +15787,6 @@ react-dev-utils@^11.0.3:
strip-ansi "6.0.0" strip-ansi "6.0.0"
text-table "0.2.0" text-table "0.2.0"
react-device-detect@^1.6.2:
version "1.17.0"
resolved "https://registry.npmjs.org/react-device-detect/-/react-device-detect-1.17.0.tgz"
integrity sha512-bBblIStwpHmoS281JFIVqeimcN3LhpoP5YKDWzxQdBIUP8S2xPvHDgizLDhUq2ScguLfVPmwfF5y268EEQR60w==
dependencies:
ua-parser-js "^0.7.24"
react-dom@^17.0.1: react-dom@^17.0.1:
version "17.0.2" version "17.0.2"
resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz"
...@@ -18475,7 +18468,7 @@ typical@^2.6.0, typical@^2.6.1: ...@@ -18475,7 +18468,7 @@ typical@^2.6.0, typical@^2.6.1:
resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d"
integrity sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0= integrity sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=
ua-parser-js@^0.7.18, ua-parser-js@^0.7.24, ua-parser-js@^0.7.28: ua-parser-js@^0.7.28:
version "0.7.28" version "0.7.28"
resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz" resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz"
integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==
......
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