@@ -7,30 +7,20 @@ global.MonsieurBizInstantSearch = class {
7
7
keyUpTimeOut ,
8
8
minQueryLength
9
9
) {
10
+ let self = this ;
10
11
// Init a timeout variable to be used below
11
12
var instantSearchTimeout = null ;
12
13
const searchInput = document . querySelector ( searchInputSelector ) ;
13
14
if ( ! searchInput ) {
14
15
return ;
15
16
}
17
+ self . searchCalled = false ;
16
18
searchInput . addEventListener ( 'keyup' , function ( e ) {
17
19
clearTimeout ( instantSearchTimeout ) ;
18
20
var query = e . currentTarget . value ;
19
21
var resultElement = e . currentTarget . closest ( resultClosestSelector ) . querySelector ( resultFindSelector ) ;
20
22
instantSearchTimeout = setTimeout ( function ( ) {
21
- if ( query . length >= minQueryLength ) {
22
- var httpRequest = new XMLHttpRequest ( ) ;
23
- httpRequest . onload = function ( ) {
24
- if ( this . status === 200 ) {
25
- resultElement . innerHTML = this . responseText ;
26
- resultElement . style . display = 'block' ;
27
- }
28
- } ;
29
- httpRequest . open ( "POST" , instantUrl ) ;
30
- httpRequest . setRequestHeader ( "X-Requested-With" , "XMLHttpRequest" ) ;
31
- httpRequest . setRequestHeader ( "Content-Type" , "application/x-www-form-urlencoded" ) ;
32
- httpRequest . send ( new URLSearchParams ( { query : query } ) . toString ( ) ) ;
33
- }
23
+ self . callSearch ( query , minQueryLength , instantUrl , resultElement ) ;
34
24
} , keyUpTimeOut ) ;
35
25
} ) ;
36
26
@@ -45,12 +35,32 @@ global.MonsieurBizInstantSearch = class {
45
35
46
36
searchInput . addEventListener ( 'focus' , function ( e ) {
47
37
var query = e . currentTarget . value ;
48
- if ( query !== '' ) {
38
+ if ( query !== '' && ! self . searchCalled ) {
39
+ const resultElement = searchForm . querySelector ( resultFindSelector ) ;
40
+ self . callSearch ( query , minQueryLength , instantUrl , resultElement ) ;
41
+ self . searchCalled = true ;
42
+ } else if ( query !== '' ) {
49
43
const resultElement = searchForm . querySelector ( resultFindSelector ) ;
50
44
resultElement . style . display = 'block' ;
51
45
}
52
46
} ) ;
53
47
}
48
+
49
+ callSearch ( query , minQueryLength , instantUrl , resultElement ) {
50
+ if ( query . length >= minQueryLength ) {
51
+ var httpRequest = new XMLHttpRequest ( ) ;
52
+ httpRequest . onload = function ( ) {
53
+ if ( this . status === 200 ) {
54
+ resultElement . innerHTML = this . responseText ;
55
+ resultElement . style . display = 'block' ;
56
+ }
57
+ } ;
58
+ httpRequest . open ( "POST" , instantUrl ) ;
59
+ httpRequest . setRequestHeader ( "X-Requested-With" , "XMLHttpRequest" ) ;
60
+ httpRequest . setRequestHeader ( "Content-Type" , "application/x-www-form-urlencoded" ) ;
61
+ httpRequest . send ( new URLSearchParams ( { query : query } ) . toString ( ) ) ;
62
+ }
63
+ }
54
64
}
55
65
56
66
document . addEventListener ( "DOMContentLoaded" , function ( ) {
0 commit comments