Skip to content

Commit

Permalink
feat: explore UI (#4262)
Browse files Browse the repository at this point in the history
* feat(explore): add /explore route (#3935)

add route

* Explore use top tokens (#3954)

feat(explore): add a top tokens hook with mock data

* feat(explore): use token price (#3958)

feat(explore): add useTokenPrice hook and dumby data

* fix(explore): mock data fetching hook return type (#3959)

* chore(deps): bump token-lists (#3929) (#3961)

Co-authored-by: matteenm <105068213+matteenm@users.noreply.github.com>

* feat: Kg/add time selector dropdown UI (#3956)

* feat: add time selector dropdown UI

* update time selector style

* feat(explore): use token relevant resources (#3963)

chore(deps): bump token-lists (#3929) (#3961)

Co-authored-by: matteenm <105068213+matteenm@users.noreply.github.com>

Co-authored-by: matteenm <105068213+matteenm@users.noreply.github.com>

* chore: merge main into explore (#3970)

* chore(deps): bump token-lists (#3929)

* feat: empty to deploy 628417f696f40cb54ef5bbba2374573e75a59915 (#3962)

feat: empty to deploy

* feat: fix metamask mobile browser connection (#3964)

* fix metamask

* forceActivate

* remove forceActivate

* unused change

* feat(risk): cache risk check with ttl (#3965)

Co-authored-by: matteenm <105068213+matteenm@users.noreply.github.com>
Co-authored-by: Vignesh Mohankumar <vignesh@vigneshmohankumar.com>

* feat: add initial token table (#3957)

* add token table UI

* update token table with intial data pipeline

* feat: Load token table with initial dummy data

TODO: get token information (token name and symbol)

* add token table UI and token row components

* update table with token logo

* update table with correct arrow

* update table border

* runs prettier (#3971)

prettier

* add header to tokenRow, format dollar util, add responsiveness

* update table styling

* update table styling and components setup

* add back side padding

* create header cell component

* update table styling

* fix padding

* update css styling

* Alphabetize styles

Co-authored-by: Jordan Frankfurt <jordanwfrankfurt@gmail.com>

* fix: add mobile responsiveness break point (#3988)

update width mobile breakpoint

* fix: hide header when mobile (#3989)

hide header on token table when mobile view

* feat: stack token name and symbol (mobile view) (#3996)

* stack token name and symbol

* style: clean up CSS

* feat: add token table loading state (#3984)

* add token table loading state

* make token row components reusable

* change typing and CSS styling

* remove key props

* feat: token table mobile view (#4003)

* fix conflicts

* style: CSS cleaning 2

* clean divs

* add media breakpoint constants

* feat: add favorites button frontend component (#4007)

* add favorites button frontend component

* fix height and width CSS

* fix: small arrow sizing detail (#4012)

fix small arrow sizing detail

* feat: filter favorite tokens (#4010)

* filter favorite tokens

* fix atom

* make showFavorite an atom

* implement atom and clean CSS

* change naming schema

* feat: explore search bar UI (#4018)

* search bar CSS

* style css fix

* change from atom to useState

* fix: fix slow favoriting bug (#4033)

* fix favoriting bug

* fix code styling

* minor change

* feat: search responsiveness (#4034)

* search responsiveness

* hide placeholder

* css fix

* shared file

* feat: token link page with token address URL param (#4039)

* token detail draft

* initial route path and some info

* reduce PR

* fixes

* token null fix

* feat: token detail page header UI (#4041)

* token detail draft

* initial route path and some info

* reduce PR

* token header

* remove flex

* font sizes

* fix CSS

* feat: add timeframe options UI (#4042)

* add timeframe options

* map times

* list times

* feat: explore & token detail linking (#4048)

* link routing

* fix focus

* Update index.tsx

* feat: token detail page metadata UI (#4047)

* skeleton

* padding change

* fix link styling

* add resource component

* feat: remove swap button (#4055)

* remove swap button & responsiveness

* center sparkline

* remove margin

* fix: token details color fix (#4056)

fix hover

* feat: network balances component (#4059)

* fix hover

* initial network balance

* fix network

* checking 0 balance

* add unsupported chain check

* add network selector

* multiple netwrk logic

* change polygon logo

* fix

* naming

* feat: add more and incorporate dummy data (#4066)

* for demo

* link protocol info

* colors in shared file

* feat: loading state for token detail (#4068)

* animate chart mwaha

* get rid of comments

* add timeout

* add fake widget

* style

* move loading into own file

* fix: patch bad imports

* feat: header hover states and favorite active state styling (#4079)

* hover states

* favorite

* type boolean

* fixes

* fix eslint

* fix prettier

* fix import

* feat(explore-table-filter): add basic text filtering to explore page (#4105)

* feat(explore-table-filter): add basic text filtering to explore page token table

* pr feedback

* chore: merge in latest changes from main (#4108)

* refactor: remove hideRouteDiagram prop (#3763)

* fix: Revert "refactor: remove coinbase wallet resetState" (#4081)

Revert "refactor: remove coinbase wallet resetState (#4024)"

This reverts commit e36722ccb4cd282aa932ff7c7e6082190f3ed131.

* feat: add support for Celo (#3915)

* feat: Support for Celo

* fix: wrong condition

* combine celo and alfajores lists

* use celo erc20 representation

* fix: refactor infura.ts to networks.ts & add celo to rpc urls

* feature: add celo contract addresses
fix: remove celo from supported gas estimate chains until feature is available

* refactor: useUSDCPrice to useStablecoinPrice
fix: add celo to supported gas estimate chains

* fix: use unique factory address for getting pool address

* fix: darkmode background graident

* fix: removing a comment left behind

* fix: remove bad import

* fix: remove dead link until the Celo is live on info.uniswap.org

* fix: add asset to common bases & minor refactoring

* fix: celo info links point to root info.uniswap.org

* fix: change celo token bridge to portal

* fix: update redux-multicall to latest version

* refactor: for code readability

* fix: celo banner colors & remove unused alternative logo

* fix: change celo token list to hosted version

* fix: update celo banner colors

* fix: move celo to the bottom of the network selector list

* fix: dedup dependencies @uniswap/router-sdk @uniswap/v3-sdk

* fix: refactoring + move Celo above L2s

* fix: update celo contract addresses

* fix: update celo subgraph

* fix: update v3-sdk and smart-order-router versions

* fix: move Celo to the bottom of the network selector list

* fix: downgrade smart-order-router and add casting fix

* fix: downgrade smart-order-router and add casting fix

* fix: resolve Pool dependency

* fix: bridge chain id types

* fix: explorer link test

* fix: use quoter v2 ABI in useClientSideV3Trade fro Celo

* fix: update connection "infura_rpc" to networks

* fix: revert yarn.lock and force install

* fix: dedup router and v3 sdk

* refactor: mv quoter v2 to client side v3 trade

* build: dedup lockfile

* feature: add portal ether to common bases

* fix: add comment for chains that use QuoterV2

* fix: use token as native asset

* fix: supply correct factory address to getPoolAddress call & refactor nativeOnChain method

* feature: adjust celo tokens presetned

* fix: update celo explorer to celoscan

* fix: celo token casting

* fix: celo celo explorer it

* fix: celo chain info should be consistent with block explorer used.

Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>

* fix: revert "fix button jump on currency panel" (#4083)

fix padding

* fix: unsupported chain displays message instead of crash (#4054)

* made initial changes for pools page displaying w/ unsupported chains
* condensed styling
* added chain validation to CTACards and wrote tests for both CTAcards and Pools page
* linted changes
* switched from snapshot to text matching tests
* switched test to use check for text instead of testid

* fix: add crossplatform `prei18n-extract` script (#3728)

* fix: :bug: add crossplatform `prei18n-extract` script

* fix: :rotating_light: add newline

* Revert "fix: :bug: add crossplatform `prei18n-extract` script"

This reverts commit 201bd2308a3caf648368b3945d5b73d8cb46c816.

* build: :package: add `shx` as dev dep, use it in `prei18n:extract` script

* fix: :bug: use platform-specific commands for prei18n-extract

* chore(i18n): new Crowdin translations (#4084)

chore(i18n): synchronize translations from crowdin [skip ci]

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* feat: implement trace framework for analytics (#4060)

* init commit

* add amplitude ts sdk to package.json

* add more comments and documentation

* respond to vm comments

* respond to cmcewen comments

* fix: remove unused constants

* init commit

* adapt to web

* add optional event properties to trace

* correct telemetry to analytics

* change telemetry to analytics in doc

* fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement

* respond to zzmp comments

* fixes

* eliminate unnecessary state

* respond to part of zzmp comments

* respond to zzmp comments round 2

* fixes

* respond to zzmp comments

* refactor: wallet specific Option components (#4065)

* refactor: wallet specific Option components

* fix

* fix

* fix coinbase wallet logic

* injected logic

* remove wallet.ts

* install metamask

* move all into InjectedOption

* fix mobile metamask

* wip

* more mocking

* more test fixes

* refactor

* more special casing

* isMetaMask

* simplify components

* fix imports

* fix coinbase wallet

* test fix

* fix connectors changing

* Revert "fix connectors changing"

This reverts commit 2acfe645ca506048e599d515674a54b27d12144f.

* more to typescript logic instead of jsx

* chore(i18n): new Crowdin translations (#4090)

* build: upgrade @typescript-eslint (#4095)

build: update @typescript-eslint

* build: update caniuse-lite (#4093)

* test: enforce deps deduplication (#4097)

* build: use fewer babel versions

* build: dedup

* test: test deps dedups

* fix: test.yml

* fix: typo

* test: failing

* fix: dedup

* fix: dedup

* test: comment dedup tests

* chore: whitespace

* feat: implement token selector events (#4067)

* init commit

* add amplitude ts sdk to package.json

* add more comments and documentation

* respond to vm comments

* respond to cmcewen comments

* fix: remove unused constants

* init commit

* adapt to web

* add optional event properties to trace

* correct telemetry to analytics

* change telemetry to analytics in doc

* fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement

* init commit

* respond to zzmp comments

* add token selected event

* fixes

* eliminate unnecessary state

* respond to part of zzmp comments

* respond to zzmp comments round 2

* fixes

* respond to zzmp comments

* add imported token event and other fixes

* also log onKeyPress for suggested tokens

* respond to cmcewen comments

* chore: updates web3-react, adds key for changing connector order (#4085)

* fix connectors changing

* update package

* add connection name

* rename file

* de-dupe

* cb wallet fix

* fix

* yarn change

* log the key

* re-order connections

* memoize the key

* some updates

* rm console

* prevent memory leak

Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>

* feat: implement-page-viewed-event-for-all-main-pages-of-app (#4089)

* init commit: initial constants for pages, implement vote page viewed

* implement swap

* implement pool

* remove charts

* simplify shouldLogImpression

* chore: upgrade to react 18 (#3992)

* chore: upgrade to react 18

* fix: update tests

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* fix: revert to prev commmit

* rebase

* rebase

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* rebase

* fix: rebase

* fix

* eslint fix

* fix: package.json changes

* fix: package.json changes

* fix yarn lock

* fix version package.json

* fix: downgrade react-router-dom to original

* fix: undo modification of .github/workflows/release.yaml

* fix: revert cypress testing version update

* rebase

* rebase

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* rebase

* chore: upgrade to react 18

* fix: update tests

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* fix

* eslint fix

* fix: package.json changes

* fix: package.json changes

* fix yarn lock

* fix version package.json

* fix: downgrade react-router-dom to original

* fix: undo modification of .github/workflows/release.yaml

* fix: revert cypress testing version update

* fix

* fix: error boundary change

* yarn.lock change

* fix: cypress tests finally passing due to zzmp redux multicall fix HOORAY

* undo service worker changes

* build: dedup lockfile

* yarn.lock + lint

* update snapshot tests

* checkpoint

* yarn.lock

* fix: fix type errors during build

* fixes

* fix yarn.lock

* dedup yarn

* fix: import react components explicitly instead of all of react

* dedup

* yarn.lock

* yarn.lock

* dedup

* yarn

* dedup

* dedupe use-sync-external-store

* fix build issues

* dedup use-sync-external-store

Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>

* chore(web3-react): fix connectEagerly for MetaMask mobile (#4101)

* chore(web3-react): fix connectEagerly for MetaMask mobile

* fix

* build: pause deploy (#4102)

* fix: update styled-components in package.json to latest to remove react invalid hook call warnings (#4103)

* fix warning vig found by updating styled-components

* revert unnecessary yarn.lock changes

* reduce unnecessary changes

* dedup

* manual fix and dedup of yarn.lock

* manually dedup @emotion/is-prop-valid

* update snapshot tests

* build: upgrade prettier to v2.7.1 (#4109)

* style: prettier based on v2.2

* 2.7.1 instead?

* npx

* ^

* add celo chain text colors

Co-authored-by: Anas Yousef <anas.y0807@gmail.com>
Co-authored-by: Vignesh Mohankumar <vignesh@vigneshmohankumar.com>
Co-authored-by: Jesse <31524583+Jesse-Sawa@users.noreply.github.com>
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
Co-authored-by: Kaylee George <62825936+kayleegeorge@users.noreply.github.com>
Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com>
Co-authored-by: Bruno Crosier <bruno.crosier@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: lynn <41491154+lynnshaoyu@users.noreply.github.com>
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
Co-authored-by: Charles Bachmeier <charlie@genie.xyz>

* feat: favorite token on tokenDetail page (#4091)

* favorite token on tokenDetail page

* make favoriting reusable

* export

* fix hook call

* fixes

* fix

* fix function

* remove files

* remove random

* fix

* fix spaces

* fix color

* Update settings.json

* Update .gitignore

* feat: add hook for multi-network token balances (#4104)

* add hook for multi-network token balances

* add predictable order to network balances

* patch some lint issues and code cleanup

* chore: add craco and vanilla extract libraries (#4100)

* chore: upgrade to react 18

* fix: update tests

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* fix: revert to prev commmit

* rebase

* rebase

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* rebase

* fix: rebase

* fix

* eslint fix

* fix: package.json changes

* fix: package.json changes

* fix yarn lock

* fix version package.json

* fix: downgrade react-router-dom to original

* fix: undo modification of .github/workflows/release.yaml

* fix: revert cypress testing version update

* rebase

* rebase

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* rebase

* chore: upgrade to react 18

* fix: update tests

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* fix

* eslint fix

* fix: package.json changes

* fix: package.json changes

* fix yarn lock

* fix version package.json

* fix: downgrade react-router-dom to original

* fix: undo modification of .github/workflows/release.yaml

* fix: revert cypress testing version update

* fix

* fix: error boundary change

* yarn.lock change

* fix: cypress tests finally passing due to zzmp redux multicall fix HOORAY

* undo service worker changes

* build: dedup lockfile

* yarn.lock + lint

* update snapshot tests

* checkpoint

* yarn.lock

* fix: fix type errors during build

* fixes

* fix yarn.lock

* dedup yarn

* fix: import react components explicitly instead of all of react

* chore: add craco and vanilla extract libraries

* add craco config file

* Add VE common styles, sprinkles, and themes

* Actually add VE common styles, sprinkles, and themes

Co-authored-by: Lynn Yu <lynn.yu@uniswap.org>
Co-authored-by: lynn <41491154+lynnshaoyu@users.noreply.github.com>
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
Co-authored-by: Charles Bachmeier <charlie@genie.xyz>

* feat: Kg/explore expanding search bar (#4099)

* expanding search

* fix focus

* making search

* kms

* ngmi

* done

* icons

* color fix

* add animation

* fix start state

* responsive

* mouse

* expanded

Co-authored-by: Vignesh Mohankumar <me@vig.xyz>

* fix: expand state (#4126)

expand state

* chore: merge main into explore (#4131)

* refactor: remove hideRouteDiagram prop (#3763)

* fix: Revert "refactor: remove coinbase wallet resetState" (#4081)

Revert "refactor: remove coinbase wallet resetState (#4024)"

This reverts commit e36722ccb4cd282aa932ff7c7e6082190f3ed131.

* feat: add support for Celo (#3915)

* feat: Support for Celo

* fix: wrong condition

* combine celo and alfajores lists

* use celo erc20 representation

* fix: refactor infura.ts to networks.ts & add celo to rpc urls

* feature: add celo contract addresses
fix: remove celo from supported gas estimate chains until feature is available

* refactor: useUSDCPrice to useStablecoinPrice
fix: add celo to supported gas estimate chains

* fix: use unique factory address for getting pool address

* fix: darkmode background graident

* fix: removing a comment left behind

* fix: remove bad import

* fix: remove dead link until the Celo is live on info.uniswap.org

* fix: add asset to common bases & minor refactoring

* fix: celo info links point to root info.uniswap.org

* fix: change celo token bridge to portal

* fix: update redux-multicall to latest version

* refactor: for code readability

* fix: celo banner colors & remove unused alternative logo

* fix: change celo token list to hosted version

* fix: update celo banner colors

* fix: move celo to the bottom of the network selector list

* fix: dedup dependencies @uniswap/router-sdk @uniswap/v3-sdk

* fix: refactoring + move Celo above L2s

* fix: update celo contract addresses

* fix: update celo subgraph

* fix: update v3-sdk and smart-order-router versions

* fix: move Celo to the bottom of the network selector list

* fix: downgrade smart-order-router and add casting fix

* fix: downgrade smart-order-router and add casting fix

* fix: resolve Pool dependency

* fix: bridge chain id types

* fix: explorer link test

* fix: use quoter v2 ABI in useClientSideV3Trade fro Celo

* fix: update connection "infura_rpc" to networks

* fix: revert yarn.lock and force install

* fix: dedup router and v3 sdk

* refactor: mv quoter v2 to client side v3 trade

* build: dedup lockfile

* feature: add portal ether to common bases

* fix: add comment for chains that use QuoterV2

* fix: use token as native asset

* fix: supply correct factory address to getPoolAddress call & refactor nativeOnChain method

* feature: adjust celo tokens presetned

* fix: update celo explorer to celoscan

* fix: celo token casting

* fix: celo celo explorer it

* fix: celo chain info should be consistent with block explorer used.

Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>

* fix: revert "fix button jump on currency panel" (#4083)

fix padding

* fix: unsupported chain displays message instead of crash (#4054)

* made initial changes for pools page displaying w/ unsupported chains
* condensed styling
* added chain validation to CTACards and wrote tests for both CTAcards and Pools page
* linted changes
* switched from snapshot to text matching tests
* switched test to use check for text instead of testid

* fix: add crossplatform `prei18n-extract` script (#3728)

* fix: :bug: add crossplatform `prei18n-extract` script

* fix: :rotating_light: add newline

* Revert "fix: :bug: add crossplatform `prei18n-extract` script"

This reverts commit 201bd2308a3caf648368b3945d5b73d8cb46c816.

* build: :package: add `shx` as dev dep, use it in `prei18n:extract` script

* fix: :bug: use platform-specific commands for prei18n-extract

* chore(i18n): new Crowdin translations (#4084)

chore(i18n): synchronize translations from crowdin [skip ci]

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* feat: implement trace framework for analytics (#4060)

* init commit

* add amplitude ts sdk to package.json

* add more comments and documentation

* respond to vm comments

* respond to cmcewen comments

* fix: remove unused constants

* init commit

* adapt to web

* add optional event properties to trace

* correct telemetry to analytics

* change telemetry to analytics in doc

* fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement

* respond to zzmp comments

* fixes

* eliminate unnecessary state

* respond to part of zzmp comments

* respond to zzmp comments round 2

* fixes

* respond to zzmp comments

* refactor: wallet specific Option components (#4065)

* refactor: wallet specific Option components

* fix

* fix

* fix coinbase wallet logic

* injected logic

* remove wallet.ts

* install metamask

* move all into InjectedOption

* fix mobile metamask

* wip

* more mocking

* more test fixes

* refactor

* more special casing

* isMetaMask

* simplify components

* fix imports

* fix coinbase wallet

* test fix

* fix connectors changing

* Revert "fix connectors changing"

This reverts commit 2acfe645ca506048e599d515674a54b27d12144f.

* more to typescript logic instead of jsx

* chore(i18n): new Crowdin translations (#4090)

* build: upgrade @typescript-eslint (#4095)

build: update @typescript-eslint

* build: update caniuse-lite (#4093)

* test: enforce deps deduplication (#4097)

* build: use fewer babel versions

* build: dedup

* test: test deps dedups

* fix: test.yml

* fix: typo

* test: failing

* fix: dedup

* fix: dedup

* test: comment dedup tests

* chore: whitespace

* feat: implement token selector events (#4067)

* init commit

* add amplitude ts sdk to package.json

* add more comments and documentation

* respond to vm comments

* respond to cmcewen comments

* fix: remove unused constants

* init commit

* adapt to web

* add optional event properties to trace

* correct telemetry to analytics

* change telemetry to analytics in doc

* fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement

* init commit

* respond to zzmp comments

* add token selected event

* fixes

* eliminate unnecessary state

* respond to part of zzmp comments

* respond to zzmp comments round 2

* fixes

* respond to zzmp comments

* add imported token event and other fixes

* also log onKeyPress for suggested tokens

* respond to cmcewen comments

* chore: updates web3-react, adds key for changing connector order (#4085)

* fix connectors changing

* update package

* add connection name

* rename file

* de-dupe

* cb wallet fix

* fix

* yarn change

* log the key

* re-order connections

* memoize the key

* some updates

* rm console

* prevent memory leak

Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>

* feat: implement-page-viewed-event-for-all-main-pages-of-app (#4089)

* init commit: initial constants for pages, implement vote page viewed

* implement swap

* implement pool

* remove charts

* simplify shouldLogImpression

* chore: upgrade to react 18 (#3992)

* chore: upgrade to react 18

* fix: update tests

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* fix: revert to prev commmit

* rebase

* rebase

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* rebase

* fix: rebase

* fix

* eslint fix

* fix: package.json changes

* fix: package.json changes

* fix yarn lock

* fix version package.json

* fix: downgrade react-router-dom to original

* fix: undo modification of .github/workflows/release.yaml

* fix: revert cypress testing version update

* rebase

* rebase

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* rebase

* chore: upgrade to react 18

* fix: update tests

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* fix

* eslint fix

* fix: package.json changes

* fix: package.json changes

* fix yarn lock

* fix version package.json

* fix: downgrade react-router-dom to original

* fix: undo modification of .github/workflows/release.yaml

* fix: revert cypress testing version update

* fix

* fix: error boundary change

* yarn.lock change

* fix: cypress tests finally passing due to zzmp redux multicall fix HOORAY

* undo service worker changes

* build: dedup lockfile

* yarn.lock + lint

* update snapshot tests

* checkpoint

* yarn.lock

* fix: fix type errors during build

* fixes

* fix yarn.lock

* dedup yarn

* fix: import react components explicitly instead of all of react

* dedup

* yarn.lock

* yarn.lock

* dedup

* yarn

* dedup

* dedupe use-sync-external-store

* fix build issues

* dedup use-sync-external-store

Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>

* chore(web3-react): fix connectEagerly for MetaMask mobile (#4101)

* chore(web3-react): fix connectEagerly for MetaMask mobile

* fix

* build: pause deploy (#4102)

* fix: update styled-components in package.json to latest to remove react invalid hook call warnings (#4103)

* fix warning vig found by updating styled-components

* revert unnecessary yarn.lock changes

* reduce unnecessary changes

* dedup

* manual fix and dedup of yarn.lock

* manually dedup @emotion/is-prop-valid

* update snapshot tests

* build: upgrade prettier to v2.7.1 (#4109)

* style: prettier based on v2.2

* 2.7.1 instead?

* npx

* ^

* refactor: adding safe getter for ChainInfo (#4110)

* replaced CHAIN_INFO access with a function call
* updated CTACard tests to work with getChainInfo
* updated typechecking, removed console.log

* build: Revert "build: pause deploy" (#4107)

* Revert "build: pause deploy (#4102)"

This reverts commit 3a1ea3df85a60fd32f47b67ce933a6edd239384f.

* prettier

* refactor: remaining changes from the large celo merge (#4088)

* refactor: useUSDCValue -> useStablecoinValue

* refactor: use the isCelo() helper

* refactor: remove unneeded white space

* chore: upgrades react-router-dom, fixes dev-mode linking (#4115)

* fix: stale route

* fix: add e2e test

* fix: update e2e test

* fix: fixes Popover arrow positioning (#4119)

fix: fix arrow position

* build: don't fail cypress on unhandled exception (#4122)

* fix: catch vibrant failure (#4123)

fix: catch CORS error

* feat: enable 1bp optimism fee tier (#4124)

enable new optimism fee tier

* balance summary fix

* rm isChainAllowed

Co-authored-by: Anas Yousef <anas.y0807@gmail.com>
Co-authored-by: Jesse <31524583+Jesse-Sawa@users.noreply.github.com>
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
Co-authored-by: Kaylee George <62825936+kayleegeorge@users.noreply.github.com>
Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com>
Co-authored-by: Bruno Crosier <bruno.crosier@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: lynn <41491154+lynnshaoyu@users.noreply.github.com>
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
Co-authored-by: Sam Chen <chenxsan@gmail.com>

* feat: share popout (#4112)

* share popout

* tweet

* remove yarn update

* update unnecessary adds

* naming

* success state

* tweet

* new window

* new twitter window position and fix network display

* fix css and add promise

* comments

* quick fixes

* feat: Kg/explore network selector filter UI (#4129)

* initial network

* search bar fix

* fix menu items

* fix

* renaming and remove comment

* Update package.json

* Update yarn.lock

* Update yarn.lock

* Update yarn.lock

* update chain info

* fix props

* moving to another PR

* fix: search responsiveness and expand state (#4142)

* fix search expand

* search moves to newline

* chore: merge main into explore (#4153)

* merge main

* deprecated

* deprecate colors

* chore: merge main into explore (#4164)

* merge main

* re-work App.tsx

* feat: add new colors to explore page (#4139)

* update color theme file

* update explore colors

* fix

* rename

* hover state colors

* table highlight

* update colors!

* small changes

* Update settings.json

* feat: different table states (#4166)

* error state

* center

* filter at table level (error)

* Update settings.json

* filter at table

* add hook

* fix hook, add no tokens state

* favorite in hook

* add favorites part 2

* fix import

* revert toptokens data type

* componenet

* feat: explore state management (#4171)

* initial

* add jotai

* refile

* save file

* change style

* reset filter string query

* Update settings.json

* location

* feat: token details mobile responsiveness (#4172)

* initial

* gap

* flexy

* Update settings.json

* flex box gains

* fix: fix mobile padding on table and show header (#4168)

* initial

* fix padding

* fix alignment

* fix padding

* Update settings.json

* feat: change token price sparkline colors (#4173)

* fix: make all token row content clickable (#4183)

* initial

* link content to token details

* Update settings.json

* header name token name label

* cursor fix

* Update settings.json

* feat: token details small mobile views (320px min) (#4185)

* initial

* make min width 320

* Update settings.json

* no mobile use

* fix: hover color for TokenTable header cell state  (#4184)

* initial

* change header cell hover state

* add

* Update settings.json

* padding 4 to 8

* change header cell hover state

* add

* padding 4 to 8

* Update settings.json

* reusability

* Update settings.json

* Update index.tsx

* fix: Explore color changes (#4195)

* initial

* initial color changes

* Update settings.json

* color changes

* fix: make token details loading state responsive (#4203)

* initial

* skeleton width

* fix jumps

* Update settings.json

* rm wrapper

* fix spaces

* rm random height

* fix props

* fix: update colors on token details page (#4201)

* initial

* update token detail colors

* Update settings.json

* feat: explore table sort (#4202)

* fix some sort style nits

* style fixes

* style fixes

* sort functionality

* refactor(explore): sortfn input from vig (#4209)

sortfn input from vig

* ts nits (#4210)

* fix: add shimmer animation to Explore loading bubbles (#4211)

* initial

* add shimmer animation to loading bubbles

* update shimmer

* export

* animation load

* shared loaded

* Update settings.json

* feat: add error state for network balance summary (#4215)

error state

* feat: network badge on token details page (#4212)

* initial network badge

* update colors

* fix color schema

* update chain usage

* change loading color

* rm css

* update naming

* rename colors

* feat: TokenDetailsPagequery (#4179)

* general query for token details page

* fix conditional useEffect

* feat: amplitude analytics in explore, and make entire token row clickable (#4149)

* initial

* page log

* token select

* explore token page amplitude

* add storage

* comment

* Update settings.json

* rebased new

* Update settings.json

* fixes

* fix amy

* rebase with state management

* rebase

* Update TokenTable.tsx

* Delete TokenTable.tsx

* make row clickable and send event

* rip out unnecessary leftover event

* remove listNumber prop and derive from tokenListIndex directly

Co-authored-by: Lynn Yu <lynn.yu@uniswap.org>

* fix: rm underline for token details (#4255)

rm underline

* feat: initial price charts (#4254)

* Created initial price chart using static data
* addressed PR comments
* applied theme, removed unused visx dependencies

* chore: merge main into explore (#4260)

* refactor: remove hideRouteDiagram prop (#3763)

* fix: Revert "refactor: remove coinbase wallet resetState" (#4081)

Revert "refactor: remove coinbase wallet resetState (#4024)"

This reverts commit e36722ccb4cd282aa932ff7c7e6082190f3ed131.

* feat: add support for Celo (#3915)

* feat: Support for Celo

* fix: wrong condition

* combine celo and alfajores lists

* use celo erc20 representation

* fix: refactor infura.ts to networks.ts & add celo to rpc urls

* feature: add celo contract addresses
fix: remove celo from supported gas estimate chains until feature is available

* refactor: useUSDCPrice to useStablecoinPrice
fix: add celo to supported gas estimate chains

* fix: use unique factory address for getting pool address

* fix: darkmode background graident

* fix: removing a comment left behind

* fix: remove bad import

* fix: remove dead link until the Celo is live on info.uniswap.org

* fix: add asset to common bases & minor refactoring

* fix: celo info links point to root info.uniswap.org

* fix: change celo token bridge to portal

* fix: update redux-multicall to latest version

* refactor: for code readability

* fix: celo banner colors & remove unused alternative logo

* fix: change celo token list to hosted version

* fix: update celo banner colors

* fix: move celo to the bottom of the network selector list

* fix: dedup dependencies @uniswap/router-sdk @uniswap/v3-sdk

* fix: refactoring + move Celo above L2s

* fix: update celo contract addresses

* fix: update celo subgraph

* fix: update v3-sdk and smart-order-router versions

* fix: move Celo to the bottom of the network selector list

* fix: downgrade smart-order-router and add casting fix

* fix: downgrade smart-order-router and add casting fix

* fix: resolve Pool dependency

* fix: bridge chain id types

* fix: explorer link test

* fix: use quoter v2 ABI in useClientSideV3Trade fro Celo

* fix: update connection "infura_rpc" to networks

* fix: revert yarn.lock and force install

* fix: dedup router and v3 sdk

* refactor: mv quoter v2 to client side v3 trade

* build: dedup lockfile

* feature: add portal ether to common bases

* fix: add comment for chains that use QuoterV2

* fix: use token as native asset

* fix: supply correct factory address to getPoolAddress call & refactor nativeOnChain method

* feature: adjust celo tokens presetned

* fix: update celo explorer to celoscan

* fix: celo token casting

* fix: celo celo explorer it

* fix: celo chain info should be consistent with block explorer used.

Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>

* fix: revert "fix button jump on currency panel" (#4083)

fix padding

* fix: unsupported chain displays message instead of crash (#4054)

* made initial changes for pools page displaying w/ unsupported chains
* condensed styling
* added chain validation to CTACards and wrote tests for both CTAcards and Pools page
* linted changes
* switched from snapshot to text matching tests
* switched test to use check for text instead of testid

* fix: add crossplatform `prei18n-extract` script (#3728)

* fix: :bug: add crossplatform `prei18n-extract` script

* fix: :rotating_light: add newline

* Revert "fix: :bug: add crossplatform `prei18n-extract` script"

This reverts commit 201bd2308a3caf648368b3945d5b73d8cb46c816.

* build: :package: add `shx` as dev dep, use it in `prei18n:extract` script

* fix: :bug: use platform-specific commands for prei18n-extract

* chore(i18n): new Crowdin translations (#4084)

chore(i18n): synchronize translations from crowdin [skip ci]

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* feat: implement trace framework for analytics (#4060)

* init commit

* add amplitude ts sdk to package.json

* add more comments and documentation

* respond to vm comments

* respond to cmcewen comments

* fix: remove unused constants

* init commit

* adapt to web

* add optional event properties to trace

* correct telemetry to analytics

* change telemetry to analytics in doc

* fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement

* respond to zzmp comments

* fixes

* eliminate unnecessary state

* respond to part of zzmp comments

* respond to zzmp comments round 2

* fixes

* respond to zzmp comments

* refactor: wallet specific Option components (#4065)

* refactor: wallet specific Option components

* fix

* fix

* fix coinbase wallet logic

* injected logic

* remove wallet.ts

* install metamask

* move all into InjectedOption

* fix mobile metamask

* wip

* more mocking

* more test fixes

* refactor

* more special casing

* isMetaMask

* simplify components

* fix imports

* fix coinbase wallet

* test fix

* fix connectors changing

* Revert "fix connectors changing"

This reverts commit 2acfe645ca506048e599d515674a54b27d12144f.

* more to typescript logic instead of jsx

* chore(i18n): new Crowdin translations (#4090)

* build: upgrade @typescript-eslint (#4095)

build: update @typescript-eslint

* build: update caniuse-lite (#4093)

* test: enforce deps deduplication (#4097)

* build: use fewer babel versions

* build: dedup

* test: test deps dedups

* fix: test.yml

* fix: typo

* test: failing

* fix: dedup

* fix: dedup

* test: comment dedup tests

* chore: whitespace

* feat: implement token selector events (#4067)

* init commit

* add amplitude ts sdk to package.json

* add more comments and documentation

* respond to vm comments

* respond to cmcewen comments

* fix: remove unused constants

* init commit

* adapt to web

* add optional event properties to trace

* correct telemetry to analytics

* change telemetry to analytics in doc

* fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement

* init commit

* respond to zzmp comments

* add token selected event

* fixes

* eliminate unnecessary state

* respond to part of zzmp comments

* respond to zzmp comments round 2

* fixes

* respond to zzmp comments

* add imported token event and other fixes

* also log onKeyPress for suggested tokens

* respond to cmcewen comments

* chore: updates web3-react, adds key for changing connector order (#4085)

* fix connectors changing

* update package

* add connection name

* rename file

* de-dupe

* cb wallet fix

* fix

* yarn change

* log the key

* re-order connections

* memoize the key

* some updates

* rm console

* prevent memory leak

Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>

* feat: implement-page-viewed-event-for-all-main-pages-of-app (#4089)

* init commit: initial constants for pages, implement vote page viewed

* implement swap

* implement pool

* remove charts

* simplify shouldLogImpression

* chore: upgrade to react 18 (#3992)

* chore: upgrade to react 18

* fix: update tests

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* fix: revert to prev commmit

* rebase

* rebase

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* rebase

* fix: rebase

* fix

* eslint fix

* fix: package.json changes

* fix: package.json changes

* fix yarn lock

* fix version package.json

* fix: downgrade react-router-dom to original

* fix: undo modification of .github/workflows/release.yaml

* fix: revert cypress testing version update

* rebase

* rebase

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* rebase

* chore: upgrade to react 18

* fix: update tests

* fix: fix lint issues and remove unnecessary react hooks testing library

* fix: add types for stricter typescript checks

* fix: fix additional typescript check issues

* fix

* eslint fix

* fix: package.json changes

* fix: package.json changes

* fix yarn lock

* fix version package.json

* fix: downgrade react-router-dom to original

* fix: undo modification of .github/workflows/release.yaml

* fix: revert cypress testing version update

* fix

* fix: error boundary change

* yarn.lock change

* fix: cypress tests finally passing due to zzmp redux multicall fix HOORAY

* undo service worker changes

* build: dedup lockfile

* yarn.lock + lint

* update snapshot tests

* checkpoint

* yarn.lock

* fix: fix type errors during build

* fixes

* fix yarn.lock

* dedup yarn

* fix: import react components explicitly instead of all of react

* dedup

* yarn.lock

* yarn.lock

* dedup

* yarn

* dedup

* dedupe use-sync-external-store

* fix build issues

* dedup use-sync-external-store

Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>

* chore(web3-react): fix connectEagerly for MetaMask mobile (#4101)

* chore(web3-react): fix connectEagerly for MetaMask mobile

* fix

* build: pause deploy (#4102)

* fix: update styled-components in package.json to latest to remove react invalid hook call warnings (#4103)

* fix warning vig found by updating styled-components

* revert unnecessary yarn.lock changes

* reduce unnecessary changes

* dedup

* manual fix and dedup of yarn.lock

* manually dedup @emotion/is-prop-valid

* update snapshot tests

* build: upgrade prettier to v2.7.1 (#4109)

* style: prettier based on v2.2

* 2.7.1 instead?

* npx

* ^

* refactor: adding safe getter for ChainInfo (#4110)

* replaced CHAIN_INFO access with a function call
* updated CTACard tests to work with getChainInfo
* updated typechecking, removed console.log

* build: Revert "build: pause deploy" (#4107)

* Revert "build: pause deploy (#4102)"

This reverts commit 3a1ea3df85a60fd32f47b67ce933a6edd239384f.

* prettier

* refactor: remaining changes from the large celo merge (#4088)

* refactor: useUSDCValue -> useStablecoinValue

* refactor: use the isCelo() helper

* refactor: remove unneeded white space

* chore: upgrades react-router-dom, fixes dev-mode linking (#4115)

* fix: stale route

* fix: add e2e test

* fix: update e2e test

* fix: fixes Popover arrow positioning (#4119)

fix: fix arrow position

* build: don't fail cypress on unhandled exception (#4122)

* fix: catch vibrant failure (#4123)

fix: catch CORS error

* feat: enable 1bp optimism fee tier (#4124)

enable new optimism fee tier

* chore: move prettier, jest-styled-components to devDependencies (#4128)

* change package

* yarn.lock

* feat: implement connect wallet category events (#4111)

* init commit

* wallet connected event init commit

* add received_swap_quote event property

* add page context, connect wallet event log

* add received_swap_quote property

* fix typo

* respond to cmcewen comments

* respond to vm comments

* move trace to app.tsx from header

* respond to vm comments

* build: change project name to @uniswap/interface (#4125)

* fix: increase celo blocksPerFetch to 5 to improve interface performance (#4130)

* init commit

* revert yarn.lock changes

* update test snapshots

* build: lock jest-styled-components@7.0.7 (#4132)

* fix: don't toggle desktop NetworkSelector on click (#4134)

fix: don't NetworkSelector onClick on desktop

* chore: access router data with hooks (#4121)

* chore: access router data with hooks

* chore: clean RouteComponentProps

* chore: use children instead of render

* add import

* test: fix swap test flake (#4135)

* remove all the funky logic

* clear stuff

* uncomment some tests

* remove expert mode tests

* skip these tests again, smh

* fix: sync chain query parameter (#4019)

* replaceURLChain

* reorder stuff

* don't use usePrevious for previousChainId

* remove the replace param call in promise

* variable names

* comment

* confirm isActive

* wrong place for isActive

* change ret type

* add comments

* check if not previous chain id

* fix: unused onClickOutside reference (#4140)

* refactor: clean floating Route (#4144)

* fix: increase Polygon gas limit (#3882)

* Update graph link

* Add Gas over ride temp for Polygon

* removal of personal tweaks

* Update index.tsx

* reset to original file

* missing EOL

* Update useClientSideV3Trade.ts

* remove space

* fix: add celo gas override (#4147)

fix: add celo gas override to circumvent 'out of gas' error from multicall

* build: add global jest-styled-components config (#4148)

* add test.config.ts

* don't need per file

* comment

* ts -> js

* rm test.config.js?

* update snapshots

* update jest-styled-components

* style: Adds "deprecated_" prefix to all non-theme colors (#4146)

* Add deprecated_ label to white and black

* Add deprecated_ label to text1 through text5

* Add deprecated_ label for bg0 through bg6

* Add deprecated_ prefix to remaining colors

* Add deprecated_ prefix to direct style references

* Add deprecated_ prefix to all remaining colors

* Update link color

* Fix 'deprecated_white' -> theme.deprecated_white

* Update snapshots

* style: updating ui on unsupported network (#4138)

* initial changes

* disabled all swap ui buttons when on unsupported chain

* implementing Cal's requests to change sizing and copy on pools

* updated snapshots

* reverted changed snapshots

* updated unsupported network test

* fixing deprecated colors missing

* build: only test for highest yarn-deduplicate strategy (#4154)

* build: only test for highest yarn-deduplicate strategy

* remove exclusions

* fix: fix swap details expanded not working on local build (#4156)

fix swap details expanded not working

* refactor: remove unused SwapPoolTabs (#4159)

* chore: clean useless code

* clean unused code

* chore(i18n): new Crowdin translations (#4155)

chore(i18n): synchronize translations from crowdin [skip ci]

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* feat: implement other swap events part 1 (#4151)

* init commit

* fix prettier errors

* check node env in vercel

* add shouldLogImpression to TraceEvent

* chore: upgrade cypress (#4161)

* chore: upgrade cypress

* 10.3.1

* feat: add updated theme colors (#4141)

* add colors

* Update settings.json

* Update settings.json

* remove comments

* rename

* feat: Web 214 implement the main submit swap event (#4061)

* init commit

* add amplitude ts sdk to package.json

* add more comments and documentation

* respond to vm comments

* respond to cmcewen comments

* fix: remove unused constants

* init commit

* adapt to web

* add optional event properties to trace

* correct telemetry to analytics

* init commit

* change telemetry to analytics in doc

* init commit

* fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement

* add element name constant

* init commit

* correct price_impact calculation

* resolve vm comments

* fixes in response to comments

* respond to vm

* use ALL significant digits for token amounts

* create helper function getPriceImpactPercentageNumber

* 4 decimal points for percentages

* change percentage to basis points units

* feat: implement swap quote received event (#4165)

* init commit

* add amplitude ts sdk to package.json

* add more comments and documentation

* respond to vm comments

* respond to cmcewen comments

* fix: remove unused constants

* init commit

* adapt to web

* add optional event properties to trace

* correct telemetry to analytics

* init commit

* change telemetry to analytics in doc

* init commit

* fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement

* add element name constant

* init commit

* correct price_impact calculation

* resolve vm comments

* fixes in response to comments

* respond to vm

* use ALL significant digits for token amounts

* init commit

* logged all properties

* create helper function getPriceImpactPercentageNumber

* 4 decimal points for percentages

* price percentage fn

* only log event on FIRST price fetch

* respond to cmcewen comments

* fix: scroll to top only when pathname changes (#4180)

* fix: Update V2 Pool Document link (#4188)

Update V2 Pool Document link

Current link line 163 point to old documents, and gives error page
changed to

https://docs.uniswap.org/protocol/V2/concepts/core-concepts/pools

current version of pool documents for V2

* fix: updated external docs link for Propose (#4186)

FIxed Propose External Docs Link

* chore: upgrade react-router-dom to v6 (#4143)

* chore: upgrade react-router-dom to v6

* migrate Redirect to Navigate

* use Routes instead of Switch

* migrate useHistory to useNavigate

* use To type

* use element

* work around activeClassName

* fix typing for useParams

* deduplicate

* fix Navigate

* add e2e tests

* visit /swap directly

Co-authored-by: Vignesh Mohankumar <me@vig.xyz>

* style: Add Deprecated prefix to ThemedText components (#4192)

* Add Deprecated prefix to ThemedText components

* Fix lint errors

* fix: update critical red HEX (#4191)

change red

* feat: Web 262 user model custom properties first PR (#4190)

* init commit

* abstract amplitude stuff away to separate function

* feat: remaining swap events (#4169)

* init commit

* add amplitude ts sdk to package.json

* add more comments and documentation

* respond to vm comments

* respond to cmcewen comments

* fix: remove unused constants

* init commit

* adapt to web

* add optional event properties to trace

* correct telemetry to analytics

* init commit

* change telemetry to analytics in doc

* init commit

* fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement

* add element name constant

* init commit

* correct price_impact calculation

* resolve vm comments

* fixes in response to comments

* respond to vm

* use ALL significant digits for token amounts

* init commit

* logged all properties

* create helper function getPriceImpactPercentageNumber

* 4 decimal points for percentages

* price percentage fn

* only log event on FIRST price fetch

* init commit

* add swap transaction completed event

* respond to cmcewen comments

* add two events

* remove console.logs

* move transaction completed logging to reducer

* simplify and remove unnecessary logic and constants

* respond to cmcewen comments

* respond to cmcewen comments

* respond to vm comment

* feat: add time / duration based event properties to swap events (#4193)

* init commit

* remove absolute value in date calc

* all the events are now logged properly plus changed native token address to NATIVE

* add documentation line

* remove unnecessary prop

* respond to vm comments

* merge and rename util method

* respond to vm comments again

* feat: fetch stablecoin price with SOR, PI warning (#4217)

* feat: fetch stablecoins price with SOR, PI warning

* calculate realized price impact

* remove unrelated changes

* dupe import

* pr feedback

* use the same calculation function for PI

* use proper var

* feat: update unsupported token list (#4219)

* feat: new swap events and properties in taxonomy  (#4204)

* init commit

* remove absolute value in date calc

* all the events are now logged properly plus changed native token address to NATIVE

* add documentation line

* remove unnecessary prop

* init

* add approve token event

* fix build

* add route event properties

* fix build

* respond to vm comments

* respond to vm comments

* remove routes properties

* feat(risk): tune down cache (#4208)

* tune down cache from 7 days to 12 hours

* minimal cache time

* fix: hide text cursor on network selector hover (#4249)

Dont' show text cursor when hovering over network dropdown text

* feat: initial FeatureFlagProvider (#4248)

* initial

* add to index

* show more logic

* split up

* nvm combine

* combine more

* loading state for the app

* no conditional

* rm var

* comment

* move comment

* add control specifically

* feat: amplitude logs is_reconnect (#4214)

* modified redux state to track wallet connections to properly log reconnects

* linted and removed console.log

* fixes for lynn's comments + documenting

* fix: update SOR to refundETH on high price impact ETH trades (#4251)

fix lock

* feat: theme color updates under feature flag (#4252)

* toggle

* fixed position

* im bad at spelling

* rm button

* fix

* add feature flag

* naming

* rm blue5

* uppercase

* rm file

* attempting to resolve some theme/unused var issues

Co-authored-by: Anas Yousef <anas.y0807@gmail.com>
Co-authored-by: Vignesh Mohankumar <vignesh@vigneshmohankumar.com>
Co-authored-by: Jesse <31524583+Jesse-Sawa@users.noreply.github.com>
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
Co-authored-by: Kaylee George <62825936+kayleegeorge@users.noreply.github.com>
Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com>
Co-authored-by: Bruno Crosier <bruno.crosier@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: lynn <41491154+lynnshaoyu@users.noreply.github.com>
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
Co-authored-by: Sam Chen <chenxsan@gmail.com>
Co-authored-by: Rachel-Eichenberger <60412342+Rachel-Eichenberger@users.noreply.github.com>
Co-authored-by: Daniel James <danielcolinjames@gmail.com>
Co-authored-by: Akshit Choudhary <akshitchoudhary007@gmail.com>
Co-authored-by: Vignesh Mohankumar <me@vig.xyz>
Co-authored-by: Connor McEwen <connor.mcewen@gmail.com>
Co-authored-by: matteenm <105068213+matteenm@users.noreply.github.com>
Co-authored-by: David Walsh <davidwalsh83@gmail.com>
Co-authored-by: Emily Williams <emag3m@gmail.com>

* patch yarn.lock

* chore: merge main into explore (#4264)

merge main

* fix: use absolute path for TokenRow Link (#4266)

* feat: feature flag for explore (#4265)

* deduplicate yarn.lock

* build: default enabled flag on local (#4267)

default flag on local

* chore: Revert "chore: add craco and vanilla extract libraries (#4100)" (#4269)

Revert "chore: add craco and vanilla extract libraries (#4100)"

This reverts commit fa284d85f1c3cc9f9d276d2e0207ebc1fc5de656.

* feat: Token safety labels/speedbumps (#4200)

* setup warning modal
* modal pops up on direct link to token details
* updated styles based on fred's review, fixed error where token safety was innacurate on first site visit

* test: updating snapshot changed by token safety (#4272)

updated snapshot changed by token safety merge

* refactor: moved token detail price into chart (#4274)

* moved token price and delta into chart, expanded hoverability for crosshair

* fix: update theme color files on explore (#4277)

fix theme

* fix: theme add hover state and flyout colors (#4279)

* add flyout

* fix hover

* feat(token-details): lazy load some heavy stuff (#4282)

* chore: merge main into explore (#4281)

merge main into explore

* feat: token balances across networks -- footer view for token details page (#4194)

* initial

* initial footer

* network balances

* alphabetize

* add smallest media breakpoint

* Update colors.ts

* rm console log

* add loading and error state

* fix multiple vs single

* updates

* updates

* fix

* Update settings.json

* import fix

* test: update snapshots based on color change (#4287)

* lint errors

* build: declare d3-curve-circlecorners types (#4288)

* fix: merging explore to main nits (#4289)

nits

Co-authored-by: Jordan Frankfurt <jordanwfrankfurt@gmail.com>
Co-authored-by: matteenm <105068213+matteenm@users.noreply.github.com>
Co-authored-by: Vignesh Mohankumar <vignesh@vigneshmohankumar.com>
Co-authored-by: Charles Bachmeier <charles@bachmeier.io>
Co-authored-by: Anas Yousef <anas.y0807@gmail.com>
Co-authored-by: Jesse <31524583+Jesse-Sawa@users.noreply.github.com>
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com>
Co-authored-by: Bruno Crosier <bruno.crosier@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: lynn <41491154+lynnshaoyu@users.noreply.github.com>
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
Co-authored-by: Charles Bachmeier <charlie@genie.xyz>
Co-authored-by: Lynn Yu <lynn.yu@uniswap.org>
Co-authored-by: Vignesh Mohankumar <me@vig.xyz>
Co-authored-by: Sam Chen <chenxsan@gmail.com>
Co-authored-by: Rachel-Eichenberger <60412342+Rachel-Eichenberger@users.noreply.github.com>
Co-authored-by: Daniel James <danielcolinjames@gmail.com>
Co-authored-by: Akshit Choudhary <akshitchoudhary007@gmail.com>
Co-authored-by: Connor McEwen <connor.mcewen@gmail.com>
Co-authored-by: David Walsh <davidwalsh83@gmail.com>
Co-authored-by: Emily Williams <emag3m@gmail.com>
  • Loading branch information
1 parent 8ce5997 commit 25ea7f9
Show file tree
Hide file tree
Showing 63 changed files with 5,384 additions and 137 deletions.
10 changes: 9 additions & 1 deletion package.json
Expand Up @@ -135,6 +135,12 @@
"@uniswap/v3-core": "1.0.0",
"@uniswap/v3-periphery": "^1.1.1",
"@uniswap/v3-sdk": "^3.9.0",
"@visx/axis": "^2.12.2",
"@visx/event": "^2.6.0",
"@visx/glyph": "^2.10.0",
"@visx/group": "^2.10.0",
"@visx/responsive": "^2.10.0",
"@visx/shape": "^2.11.1",
"@walletconnect/ethereum-provider": "1.7.1",
"@web3-react/coinbase-wallet": "^8.0.34-beta.0",
"@web3-react/core": "^8.0.35-beta.0",
Expand All @@ -151,7 +157,8 @@
"array.prototype.flatmap": "^1.2.4",
"cids": "^1.0.0",
"copy-to-clipboard": "^3.2.0",
"d3": "^7.0.0",
"d3": "^7.6.1",
"d3-curve-circlecorners": "^0.1.6",
"ethers": "^5.1.4",
"firebase": "^9.1.3",
"fortmatic": "^2.4.0",
Expand All @@ -165,6 +172,7 @@
"multicodec": "^3.0.1",
"multihashes": "^4.0.2",
"node-vibrant": "^3.2.1-alpha.1",
"numbro": "^2.3.6",
"polished": "^3.3.2",
"polyfill-object.fromentries": "^1.0.1",
"popper-max-size-modifier": "^0.2.0",
Expand Down
1 change: 1 addition & 0 deletions src/assets/svg/search.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions src/assets/svg/tooltip_triangle.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions src/assets/svg/verified.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/assets/svg/x.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/components/AmplitudeAnalytics/constants.ts
Expand Up @@ -8,6 +8,7 @@ export enum EventName {
APP_LOADED = 'Application Loaded',
APPROVE_TOKEN_TXN_SUBMITTED = 'Approve Token Transaction Submitted',
CONNECT_WALLET_BUTTON_CLICKED = 'Connect Wallet Button Clicked',
EXPLORE_TOKEN_ROW_CLICKED = 'Explore Token Row Clicked',
PAGE_VIEWED = 'Page Viewed',
SWAP_AUTOROUTER_VISUALIZATION_EXPANDED = 'Swap Autorouter Visualization Expanded',
SWAP_DETAILS_EXPANDED = 'Swap Details Expanded',
Expand Down
177 changes: 177 additions & 0 deletions src/components/Charts/PriceChart.tsx
@@ -0,0 +1,177 @@
import { localPoint } from '@visx/event'
import { EventType } from '@visx/event/lib/types'
import { GlyphCircle } from '@visx/glyph'
import { Group } from '@visx/group'
import { Line, LinePath } from '@visx/shape'
import { bisect, scaleLinear } from 'd3'
import { radius } from 'd3-curve-circlecorners'
import useTheme from 'hooks/useTheme'
import { useCallback, useState } from 'react'
import { ArrowDownRight, ArrowUpRight } from 'react-feather'
import styled from 'styled-components/macro'

import data from './data.json'

type PricePoint = { value: number; timestamp: number }

function getPriceBounds(pricePoints: PricePoint[]): [number, number] {
const prices = pricePoints.map((x) => x.value)
const min = Math.min(...prices)
const max = Math.max(...prices)
return [min, max]
}

const StyledUpArrow = styled(ArrowUpRight)`
color: ${({ theme }) => theme.accentSuccess};
`
const StyledDownArrow = styled(ArrowDownRight)`
color: ${({ theme }) => theme.accentFailure};
`

function getDelta(start: number, current: number) {
const delta = (current / start - 1) * 100
const isPositive = Math.sign(delta) > 0

const formattedDelta = delta.toFixed(2) + '%'
if (isPositive) {
return ['+' + formattedDelta, <StyledUpArrow size={16} key="arrow-up" />]
} else if (delta === 0) {
return [formattedDelta, null]
}
return [formattedDelta, <StyledDownArrow size={16} key="arrow-down" />]
}

export const ChartWrapper = styled.div`
position: relative;
`

export const ChartHeader = styled.div`
position: absolute;
`

export const TokenPrice = styled.span`
font-size: 36px;
line-height: 44px;
`
export const DeltaContainer = styled.div`
height: 16px;
display: flex;
align-items: center;
`
const ArrowCell = styled.div`
padding-left: 2px;
display: flex;
`

interface PriceChartProps {
width: number
height: number
}

export function PriceChart({ width, height }: PriceChartProps) {
const margin = { top: 80, bottom: 20, crosshair: 72 }
// defining inner measurements
const innerHeight = height - margin.top - margin.bottom
const theme = useTheme()

const pricePoints = data.priceHistory
const startingPrice = pricePoints[0]
const endingPrice = pricePoints[pricePoints.length - 1]
const initialState = { pricePoint: endingPrice, xCoordinate: null }

const [selected, setSelected] = useState<{ pricePoint: PricePoint; xCoordinate: number | null }>(initialState)

// Defining scales
// x scale
const timeScale = scaleLinear().domain([startingPrice.timestamp, endingPrice.timestamp]).range([0, width])

// y scale
const rdScale = scaleLinear().domain(getPriceBounds(pricePoints)).range([innerHeight, 0])

const handleHover = useCallback(
(event: Element | EventType) => {
const { x } = localPoint(event) || { x: 0 }
const x0 = timeScale.invert(x) // get timestamp from the scale
const index = bisect(
data.priceHistory.map((x) => x.timestamp),
x0,
1
)

const d0 = data.priceHistory[index - 1]
const d1 = data.priceHistory[index]
let pricePoint = d0

const hasPreviousData = d1 && d1.timestamp
if (hasPreviousData) {
pricePoint = x0.valueOf() - d0.timestamp.valueOf() > d1.timestamp.valueOf() - x0.valueOf() ? d1 : d0
}

setSelected({ pricePoint, xCoordinate: x })
},
[timeScale]
)

const [delta, arrow] = getDelta(startingPrice.value, selected.pricePoint.value)

return (
<ChartWrapper>
<ChartHeader>
<TokenPrice>${selected.pricePoint.value.toFixed(2)}</TokenPrice>
<DeltaContainer>
{delta}
<ArrowCell>{arrow}</ArrowCell>
</DeltaContainer>
</ChartHeader>
<svg width={width} height={height}>
{selected.xCoordinate && (
<g>
<Line
from={{ x: selected.xCoordinate, y: margin.crosshair }}
to={{ x: selected.xCoordinate, y: height }}
stroke={'#99A1BD3D'}
strokeWidth={1}
pointerEvents="none"
strokeDasharray="4,4"
/>
</g>
)}
<Group top={margin.top}>
<LinePath
curve={radius(1)}
stroke={theme.accentActive}
strokeWidth={2}
data={data.priceHistory}
x={(d: PricePoint) => timeScale(d.timestamp) ?? 0}
y={(d: PricePoint) => rdScale(d.value) ?? 0}
/>
{selected.xCoordinate && (
<g>
<GlyphCircle
left={selected.xCoordinate}
top={rdScale(selected.pricePoint.value)}
size={50}
fill={theme.accentActive}
stroke={theme.backgroundOutline}
strokeWidth={2}
/>
</g>
)}
</Group>
<rect
x={0}
y={0}
width={width}
height={height}
fill={'transparent'}
onTouchStart={handleHover}
onTouchMove={handleHover}
onMouseMove={handleHover}
onMouseLeave={() => setSelected(initialState)}
/>
</svg>
</ChartWrapper>
)
}

export default PriceChart

1 comment on commit 25ea7f9

@vercel
Copy link

@vercel vercel bot commented on 25ea7f9 Aug 5, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

interface – ./

interface-uniswap.vercel.app
interface-git-main-uniswap.vercel.app

Please sign in to comment.