@@ -54,17 +54,23 @@ function PairSearchModal({ history, isOpen, onDismiss }: PairSearchModalProps) {
5454 setSearchQuery ( checksummedInput || input )
5555 }
5656
57+ const filteredPairs = useMemo ( ( ) => {
58+ return filterPairs ( allPairs , searchQuery )
59+ } , [ allPairs , searchQuery ] )
60+
5761 const sortedPairList = useMemo ( ( ) => {
58- return allPairs . sort ( ( a , b ) : number => {
62+ const query = searchQuery . toLowerCase ( )
63+ const queryMatches = ( pair : Pair ) : boolean =>
64+ pair . token0 . symbol . toLowerCase ( ) === query || pair . token1 . symbol . toLowerCase ( ) === query
65+ return filteredPairs . sort ( ( a , b ) : number => {
66+ const [ aMatches , bMatches ] = [ queryMatches ( a ) , queryMatches ( b ) ]
67+ if ( aMatches && ! bMatches ) return - 1
68+ if ( bMatches && ! aMatches ) return 1
5969 const balanceA = allPairBalances [ a . liquidityToken . address ]
6070 const balanceB = allPairBalances [ b . liquidityToken . address ]
6171 return pairComparator ( a , b , balanceA , balanceB )
6272 } )
63- } , [ allPairs , allPairBalances ] )
64-
65- const filteredPairs = useMemo ( ( ) => {
66- return filterPairs ( sortedPairList , searchQuery )
67- } , [ searchQuery , sortedPairList ] )
73+ } , [ searchQuery , filteredPairs , allPairBalances ] )
6874
6975 const selectPair = useCallback (
7076 ( pair : Pair ) => {
@@ -110,7 +116,7 @@ function PairSearchModal({ history, isOpen, onDismiss }: PairSearchModalProps) {
110116 </ PaddedColumn >
111117 < div style = { { width : '100%' , height : '1px' , backgroundColor : theme . bg2 } } />
112118 < PairList
113- pairs = { filteredPairs }
119+ pairs = { sortedPairList }
114120 focusTokenAddress = { focusedToken ?. address }
115121 onAddLiquidity = { selectPair }
116122 onSelectPair = { selectPair }
0 commit comments