@@ -47,78 +47,56 @@ async function getsearchObj() {
4747 return response . json ( ) ;
4848}
4949
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 {
7062 accessToken : token ,
7163 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+ } ;
8265 }
8366
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+ }
9472
95- return request ;
96- } ,
97- } ) ;
73+ async function atomicCoveo ( ) {
74+ await customElements . whenDefined ( 'atomic-search-interface' ) ;
75+ const credentials = await getValidSearchCredentials ( ) ;
9876
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 ) ;
10182
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 ,
10786 analytics : { analyticsMode : 'legacy' } ,
10887 preprocessRequest : ( request ) => {
10988 const body = JSON . parse ( request . body ) ;
11089 body . q = `<@- ${ body . q } -@>` ;
11190 request . body = JSON . stringify ( body ) ;
112-
11391 return request ;
11492 } ,
11593 } ) ;
116-
117- await searchBarSidebar . executeFirstSearch ( ) ;
94+ await el . executeFirstSearch ( ) ;
11895 }
11996
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' ) ;
122100 }
123101}
124102
0 commit comments