Skip to content

Commit

Permalink
Merge pull request #28 from Netcentric/update-select-lang
Browse files Browse the repository at this point in the history
Update select lang redirect
  • Loading branch information
TomaszDziezykNetcentric committed Sep 18, 2024
2 parents cd61aeb + 8075697 commit 25a9336
Showing 1 changed file with 17 additions and 12 deletions.
29 changes: 17 additions & 12 deletions blocks/header/header.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,18 +96,23 @@ function checkForActiveLink(navSections) {
});
}

function getAvailableLanguages() {
return [...document.querySelectorAll('header .section.nav-tools a')]
.map((link) => new URL(link.href).pathname.split('/')[1])
.filter((val) => val);
}

function redirectPage(event) {
const currentUrl = window.location;
let redirectUrl = currentUrl.origin;

if (event.target.innerHTML === 'ENG') {
if (!currentUrl.pathname.includes('/en/')) {
redirectUrl = `${redirectUrl}/en`;
}
redirectUrl = `${redirectUrl}${currentUrl.pathname}`;
} else {
redirectUrl = `${redirectUrl}${currentUrl.pathname.replace(/\/en\//, '/')}`;
}
const currentFirstLevelFolderName = currentUrl.pathname.split('/')[1];
const newLang = new URL(event.target.href).pathname.split('/')[1];
const availableLangs = getAvailableLanguages();
const currentLang = availableLangs.includes(currentFirstLevelFolderName) ? currentFirstLevelFolderName : '';
const currentPathWithoutLang = currentLang ? currentUrl.pathname.replace(`/${currentLang}`, '') : currentUrl.pathname;
const newPathname = newLang ? `/${newLang}${currentPathWithoutLang}` : currentPathWithoutLang;
const redirectUrl = `${currentUrl.origin}${newPathname}`;

event.preventDefault();
window.location.replace(redirectUrl);
}
/**
Expand Down Expand Up @@ -171,8 +176,8 @@ export default async function decorate(block) {
toolsWrapper.classList.add('default-content-wrapper');
navTools.append(toolsWrapper);
navTools.firstElementChild.remove();
toolsWrapper.querySelectorAll('li').forEach((list) => {
list.addEventListener('click', redirectPage);
toolsWrapper.querySelectorAll('li a').forEach((link) => {
link.addEventListener('click', redirectPage);
});
}

Expand Down

0 comments on commit 25a9336

Please sign in to comment.