Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 33 additions & 55 deletions assets/js/coveo.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,78 +47,56 @@ async function getsearchObj() {
return response.json();
}

async function atomicCoveo() {
/* Fetch the credentials */
await customElements.whenDefined('atomic-search-interface');
const token = localStorage.getItem('coveo_jwt_v1');
const org_id = localStorage.getItem('coveo_org_id_v1');
let searchObj = { token, org_id };

if (token === null || org_id === null || isJwtExpired(token)) {
searchObj = await getsearchObj();
localStorage.setItem('coveo_jwt_v1', searchObj.token);
localStorage.setItem('coveo_org_id_v1', searchObj.org_id);
}

/* Initialize the interfaces with credentials */
const searchPageInterface = document.querySelector('#search-v2');
const searchBarHeader = document.querySelector('#search-standalone-header');
const searchBarSidebar = document.querySelector('#search-standalone-sidebar');

if (searchPageInterface) {
await searchPageInterface.initialize({
async function getValidSearchCredentials() {
const accessToken = localStorage.getItem('coveo_jwt_v1');
const organizationId = localStorage.getItem('coveo_org_id_v1');

const needsFetch =
!accessToken || !organizationId || isJwtExpired(accessToken);

if (needsFetch) {
const { token, org_id } = await getsearchObj();
localStorage.setItem('coveo_jwt_v1', token);
localStorage.setItem('coveo_org_id_v1', org_id);
return {
accessToken: token,
organizationId: org_id,
analytics: { analyticsMode: 'legacy' },
preprocessRequest: (request) => {
const body = JSON.parse(request.body);
body.q = `<@- ${body.q} -@>`;
request.body = JSON.stringify(body);

return request;
},
});
await searchPageInterface.executeFirstSearch();
};
}

/* Initialize the header searchbar */
if (searchBarHeader) {
await searchBarHeader.initialize({
accessToken: token,
organizationId: org_id,
analytics: { analyticsMode: 'legacy' },
preprocessRequest: (request) => {
const body = JSON.parse(request.body);
body.q = `<@- ${body.q} -@>`;
request.body = JSON.stringify(body);
return {
accessToken,
organizationId,
};
}

return request;
},
});
async function atomicCoveo() {
await customElements.whenDefined('atomic-search-interface');
const credentials = await getValidSearchCredentials();

await searchBarHeader.executeFirstSearch();
}
const interfaces = [
document.querySelector('#search-v2'),
document.querySelector('#search-standalone-header'),
document.querySelector('#search-standalone-sidebar'),
].filter(Boolean);

/* Initialize the sidebar searchbar */
if (searchBarSidebar) {
await searchBarSidebar.initialize({
accessToken: token,
organizationId: org_id,
for (const el of interfaces) {
await el.initialize({
...credentials,
analytics: { analyticsMode: 'legacy' },
preprocessRequest: (request) => {
const body = JSON.parse(request.body);
body.q = `<@- ${body.q} -@>`;
request.body = JSON.stringify(body);

return request;
},
});

await searchBarSidebar.executeFirstSearch();
await el.executeFirstSearch();
}

if (searchBarHeader?.shadowRoot) {
hideShadowElement(searchBarHeader.shadowRoot, 'atomic-relevance-inspector');
const headerSearchBar = document.querySelector('#search-standalone-header');
if (headerSearchBar?.shadowRoot) {
hideShadowElement(headerSearchBar.shadowRoot, 'atomic-relevance-inspector');
}
}

Expand Down