Commit 9558406c authored by lynn's avatar lynn Committed by GitHub

fix: revert simplify search bar filter string handling and reduce # of state changes" (#4731)

Revert "fix: simplify search bar filter string handling and reduce # of state changes (#4716)"

This reverts commit 86785c72.
parent f735c348
...@@ -2,7 +2,7 @@ import { Trans } from '@lingui/macro' ...@@ -2,7 +2,7 @@ import { Trans } from '@lingui/macro'
import searchIcon from 'assets/svg/search.svg' import searchIcon from 'assets/svg/search.svg'
import xIcon from 'assets/svg/x.svg' import xIcon from 'assets/svg/x.svg'
import useDebounce from 'hooks/useDebounce' import useDebounce from 'hooks/useDebounce'
import { useResetAtom, useUpdateAtom } from 'jotai/utils' import { useAtomValue, useUpdateAtom } from 'jotai/utils'
import { useEffect, useState } from 'react' import { useEffect, useState } from 'react'
import styled from 'styled-components/macro' import styled from 'styled-components/macro'
...@@ -59,17 +59,18 @@ const SearchInput = styled.input` ...@@ -59,17 +59,18 @@ const SearchInput = styled.input`
` `
export default function SearchBar() { export default function SearchBar() {
const [localFilterString, setLocalFilterString] = useState('') const currentString = useAtomValue(filterStringAtom)
const [localFilterString, setLocalFilterString] = useState(currentString)
const setFilterString = useUpdateAtom(filterStringAtom) const setFilterString = useUpdateAtom(filterStringAtom)
const resetFilterString = useResetAtom(filterStringAtom)
const debouncedLocalFilterString = useDebounce(localFilterString, 300) const debouncedLocalFilterString = useDebounce(localFilterString, 300)
useEffect(() => {
setLocalFilterString(currentString)
}, [currentString])
useEffect(() => { useEffect(() => {
setFilterString(debouncedLocalFilterString) setFilterString(debouncedLocalFilterString)
return () => { }, [debouncedLocalFilterString, setFilterString])
resetFilterString()
}
}, [debouncedLocalFilterString, setFilterString, resetFilterString])
return ( return (
<SearchBarContainer> <SearchBarContainer>
......
...@@ -2,6 +2,7 @@ import { Trans } from '@lingui/macro' ...@@ -2,6 +2,7 @@ import { Trans } from '@lingui/macro'
import { PageName } from 'analytics/constants' import { PageName } from 'analytics/constants'
import { Trace } from 'analytics/Trace' import { Trace } from 'analytics/Trace'
import { MAX_WIDTH_MEDIA_BREAKPOINT, MEDIUM_MEDIA_BREAKPOINT } from 'components/Tokens/constants' import { MAX_WIDTH_MEDIA_BREAKPOINT, MEDIUM_MEDIA_BREAKPOINT } from 'components/Tokens/constants'
import { filterStringAtom } from 'components/Tokens/state'
import FavoriteButton from 'components/Tokens/TokenTable/FavoriteButton' import FavoriteButton from 'components/Tokens/TokenTable/FavoriteButton'
import NetworkFilter from 'components/Tokens/TokenTable/NetworkFilter' import NetworkFilter from 'components/Tokens/TokenTable/NetworkFilter'
import SearchBar from 'components/Tokens/TokenTable/SearchBar' import SearchBar from 'components/Tokens/TokenTable/SearchBar'
...@@ -10,7 +11,9 @@ import TokenTable, { LoadingTokenTable } from 'components/Tokens/TokenTable/Toke ...@@ -10,7 +11,9 @@ import TokenTable, { LoadingTokenTable } from 'components/Tokens/TokenTable/Toke
import { FavoriteTokensVariant, useFavoriteTokensFlag } from 'featureFlags/flags/favoriteTokens' import { FavoriteTokensVariant, useFavoriteTokensFlag } from 'featureFlags/flags/favoriteTokens'
import { isValidBackendChainName } from 'graphql/data/util' import { isValidBackendChainName } from 'graphql/data/util'
import { useOnGlobalChainSwitch } from 'hooks/useGlobalChainSwitch' import { useOnGlobalChainSwitch } from 'hooks/useGlobalChainSwitch'
import { useNavigate } from 'react-router-dom' import { useResetAtom } from 'jotai/utils'
import { useEffect } from 'react'
import { useLocation, useNavigate } from 'react-router-dom'
import styled from 'styled-components/macro' import styled from 'styled-components/macro'
import { ThemedText } from 'theme' import { ThemedText } from 'theme'
...@@ -67,6 +70,12 @@ const FiltersWrapper = styled.div` ...@@ -67,6 +70,12 @@ const FiltersWrapper = styled.div`
` `
const Tokens = () => { const Tokens = () => {
const resetFilterString = useResetAtom(filterStringAtom)
const location = useLocation()
useEffect(() => {
resetFilterString()
}, [location, resetFilterString])
const navigate = useNavigate() const navigate = useNavigate()
useOnGlobalChainSwitch((chain) => { useOnGlobalChainSwitch((chain) => {
if (isValidBackendChainName(chain)) navigate(`/tokens/${chain.toLowerCase()}`) if (isValidBackendChainName(chain)) navigate(`/tokens/${chain.toLowerCase()}`)
......
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