@@ -47,78 +47,56 @@ async function getsearchObj() {
47
47
return response . json ( ) ;
48
48
}
49
49
50
- async function atomicCoveo ( ) {
51
- /* Fetch the credentials */
52
- await customElements . whenDefined ( 'atomic-search-interface' ) ;
53
- const token = localStorage . getItem ( 'coveo_jwt_v1' ) ;
54
- const org_id = localStorage . getItem ( 'coveo_org_id_v1' ) ;
55
- let searchObj = { token, org_id } ;
56
-
57
- if ( token === null || org_id === null || isJwtExpired ( token ) ) {
58
- searchObj = await getsearchObj ( ) ;
59
- localStorage . setItem ( 'coveo_jwt_v1' , searchObj . token ) ;
60
- localStorage . setItem ( 'coveo_org_id_v1' , searchObj . org_id ) ;
61
- }
62
-
63
- /* Initialize the interfaces with credentials */
64
- const searchPageInterface = document . querySelector ( '#search-v2' ) ;
65
- const searchBarHeader = document . querySelector ( '#search-standalone-header' ) ;
66
- const searchBarSidebar = document . querySelector ( '#search-standalone-sidebar' ) ;
67
-
68
- if ( searchPageInterface ) {
69
- await searchPageInterface . initialize ( {
50
+ async function getValidSearchCredentials ( ) {
51
+ const accessToken = localStorage . getItem ( 'coveo_jwt_v1' ) ;
52
+ const organizationId = localStorage . getItem ( 'coveo_org_id_v1' ) ;
53
+
54
+ const needsFetch =
55
+ ! accessToken || ! organizationId || isJwtExpired ( accessToken ) ;
56
+
57
+ if ( needsFetch ) {
58
+ const { token, org_id } = await getsearchObj ( ) ;
59
+ localStorage . setItem ( 'coveo_jwt_v1' , token ) ;
60
+ localStorage . setItem ( 'coveo_org_id_v1' , org_id ) ;
61
+ return {
70
62
accessToken : token ,
71
63
organizationId : org_id ,
72
- analytics : { analyticsMode : 'legacy' } ,
73
- preprocessRequest : ( request ) => {
74
- const body = JSON . parse ( request . body ) ;
75
- body . q = `<@- ${ body . q } -@>` ;
76
- request . body = JSON . stringify ( body ) ;
77
-
78
- return request ;
79
- } ,
80
- } ) ;
81
- await searchPageInterface . executeFirstSearch ( ) ;
64
+ } ;
82
65
}
83
66
84
- /* Initialize the header searchbar */
85
- if ( searchBarHeader ) {
86
- await searchBarHeader . initialize ( {
87
- accessToken : token ,
88
- organizationId : org_id ,
89
- analytics : { analyticsMode : 'legacy' } ,
90
- preprocessRequest : ( request ) => {
91
- const body = JSON . parse ( request . body ) ;
92
- body . q = `<@- ${ body . q } -@>` ;
93
- request . body = JSON . stringify ( body ) ;
67
+ return {
68
+ accessToken,
69
+ organizationId,
70
+ } ;
71
+ }
94
72
95
- return request ;
96
- } ,
97
- } ) ;
73
+ async function atomicCoveo ( ) {
74
+ await customElements . whenDefined ( 'atomic-search-interface' ) ;
75
+ const credentials = await getValidSearchCredentials ( ) ;
98
76
99
- await searchBarHeader . executeFirstSearch ( ) ;
100
- }
77
+ const interfaces = [
78
+ document . querySelector ( '#search-v2' ) ,
79
+ document . querySelector ( '#search-standalone-header' ) ,
80
+ document . querySelector ( '#search-standalone-sidebar' ) ,
81
+ ] . filter ( Boolean ) ;
101
82
102
- /* Initialize the sidebar searchbar */
103
- if ( searchBarSidebar ) {
104
- await searchBarSidebar . initialize ( {
105
- accessToken : token ,
106
- organizationId : org_id ,
83
+ for ( const el of interfaces ) {
84
+ await el . initialize ( {
85
+ ...credentials ,
107
86
analytics : { analyticsMode : 'legacy' } ,
108
87
preprocessRequest : ( request ) => {
109
88
const body = JSON . parse ( request . body ) ;
110
89
body . q = `<@- ${ body . q } -@>` ;
111
90
request . body = JSON . stringify ( body ) ;
112
-
113
91
return request ;
114
92
} ,
115
93
} ) ;
116
-
117
- await searchBarSidebar . executeFirstSearch ( ) ;
94
+ await el . executeFirstSearch ( ) ;
118
95
}
119
96
120
- if ( searchBarHeader ?. shadowRoot ) {
121
- hideShadowElement ( searchBarHeader . shadowRoot , 'atomic-relevance-inspector' ) ;
97
+ const headerSearchBar = document . querySelector ( '#search-standalone-header' ) ;
98
+ if ( headerSearchBar ?. shadowRoot ) {
99
+ hideShadowElement ( headerSearchBar . shadowRoot , 'atomic-relevance-inspector' ) ;
122
100
}
123
101
}
124
102
0 commit comments