@@ -69,10 +69,12 @@ type GotoLocationType = {
6969column ?:number
7070} ;
7171
72+ const maxResults = 100 ;
73+
7274function filter ( values , query ) {
7375return fuzzyAldrin . filter ( values , query , {
7476key :"value" ,
75- maxResults :1000
77+ maxResults :maxResults
7678} ) ;
7779}
7880
@@ -82,6 +84,13 @@ export class QuickOpenModal extends Component<Props, State> {
8284this . state = { results :null , selectedIndex :0 } ;
8385}
8486
87+ setResults ( results : ?Array < QuickOpenResult > ) {
88+ if ( results ) {
89+ results = results . slice ( 0 , maxResults ) ;
90+ }
91+ this . setState ( { results} ) ;
92+ }
93+
8594componentDidMount ( ) {
8695const { query, shortcutsModalEnabled, toggleShortcutsModal} = this . props ;
8796
@@ -121,7 +130,7 @@ export class QuickOpenModal extends Component<Props, State> {
121130const { sources} = this . props ;
122131const results =
123132query == "" ?sources :filter ( sources , this . dropGoto ( query ) ) ;
124- return this . setState ( { results} ) ;
133+ return this . setResults ( results ) ;
125134} ;
126135
127136searchSymbols = ( query :string ) => {
@@ -133,31 +142,28 @@ export class QuickOpenModal extends Component<Props, State> {
133142results = results . filter ( result => result . title !== "anonymous" ) ;
134143
135144if ( query === "@" || query === "#" ) {
136- return this . setState ( { results} ) ;
145+ return this . setResults ( results ) ;
137146}
138-
139- this . setState ( { results : filter ( results , query . slice ( 1 ) ) } ) ;
147+ results = filter ( results , query . slice ( 1 ) ) ;
148+ return this . setResults ( results ) ;
140149} ;
141150
142151searchShortcuts = ( query :string ) = > {
143152const results= formatShortcutResults ( ) ;
144153if ( query == "?" ) {
145- this . setState ( { results} ) ;
154+ this . setResults ( results ) ;
146155} else {
147- this . setState ( { results : filter ( results , query . slice ( 1 ) ) } ) ;
156+ this . setResults ( filter ( results , query . slice ( 1 ) ) ) ;
148157}
149158} ;
150159
151160showTopSources = ( ) => {
152161const { tabs, sources} = this . props ;
153162if ( tabs . length > 0 ) {
154163const tabUrls = tabs . map ( ( tab :Tab ) => tab . url ) ;
155-
156- this . setState ( {
157- results :sources . filter ( source => tabUrls . includes ( source . url ) )
158- } ) ;
164+ this . setResults ( sources . filter ( source => tabUrls . includes ( source . url ) ) ) ;
159165} else {
160- this . setState ( { results : sources . slice ( 0 , 100 ) } ) ;
166+ this . setResults ( sources ) ;
161167}
162168} ;
163169
@@ -374,8 +380,7 @@ export class QuickOpenModal extends Component<Props, State> {
374380if ( ! enabled ) {
375381return null ;
376382}
377- const newResults = results && results . slice ( 0 , 100 ) ;
378- const items = this . highlightMatching ( query , newResults || [ ] ) ;
383+ const items = this . highlightMatching ( query , results || [ ] ) ;
379384const expanded = ! ! items && items . length > 0 ;
380385
381386return (
@@ -398,7 +403,7 @@ export class QuickOpenModal extends Component<Props, State> {
398403}
399404{ ...( this . isSourceSearch ( ) ?{ size :"big" } :{ } ) }
400405/>
401- { newResults && (
406+ { results && (
402407< ResultList
403408key = "results"
404409items = { items }