@@ -14,6 +14,7 @@ import {
14
14
} from "../../constants/selectors" ;
15
15
import { mapActions } from "vuex" ;
16
16
import { toggleSplit } from "../split" ;
17
+ import { buildSearchRegex } from "../../utils/utils" ;
17
18
18
19
const alphabeticalOrder = ( a , b ) => {
19
20
const x = a . name . toLowerCase ( ) ;
@@ -59,24 +60,18 @@ const LeftSidebar = Vue.component("LeftSidebar", {
59
60
60
61
const searchQuery = this . search . toLowerCase ( ) ;
61
62
62
- // build regex to take into account capital letters
63
- let regex = "" ;
64
- for ( const letter of searchQuery ) {
65
- regex += `[${ letter } ${ letter . toUpperCase ( ) } ]` ;
66
- }
67
- const re = new RegExp ( regex ) ;
63
+ let regex = buildSearchRegex ( searchQuery ) ;
68
64
69
65
// apply search regex
70
- const searchResult = [ ] ;
71
- for ( const item of this . services ) {
72
- const value = item . name . toLowerCase ( ) . search ( re ) ;
73
- searchResult . push ( { value, ...item } ) ;
74
- }
75
-
76
- // filter out non matching items, and sort results
77
- return searchResult
78
- . filter ( ( { value } ) => value != - 1 )
79
- . sort ( ( a , b ) => a . value - b . value ) ;
66
+ return (
67
+ this . services
68
+ . map ( s => {
69
+ return { value : s . name . toLowerCase ( ) . search ( regex ) , ...s } ;
70
+ } )
71
+ // filter out non matching items, and sort results
72
+ . filter ( ( { value } ) => value != - 1 )
73
+ . sort ( ( a , b ) => a . value - b . value )
74
+ ) ;
80
75
} else {
81
76
return this . services ;
82
77
}
0 commit comments