Skip to content

Commit

Permalink
Merge pull request #765 from 10xtechie/Language-tabs-should-be-URL-aware
Browse files Browse the repository at this point in the history
issue #637 - changes for URL aware language tabs
  • Loading branch information
mattwynne authored Jun 30, 2022
2 parents 198e48e + f8aec78 commit 94029a4
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions themes/cucumber-sb/static/js/site.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,71 @@ function showOnly(language) {
}
}

function updateQueryParam(selectedLang){
let params = location.search.split("&")
if(params.length > 1){
params.forEach((element, index) => {
if(element.includes("lang")){
params[index] = 'lang=' + selectedLang
}
});
return location.search = params.join("&")
}else{
return location.search = 'lang=' + selectedLang
}
}

function getLangFromUrl(){
let params = location.search.split("&")
var lang = ''
if(params[0].length > 1){
params.forEach((element, index) => {
if(element.includes("lang")){
lang = params[index].split("=")[1]
}
});
}
return lang
}

// Activate

var supportedLanguages = [
"java",
"javascript",
"ruby",
"kotlin",
"scala"
]

var defaulLanguage = 'java'

ready(function() {
var selectedLang = getLangFromUrl();
if((selectedLang == '' || selectedLang == null)){
if(localStorage.getItem('language') == ''){
showOnly(defaulLanguage)
localStorage.setItem('language', defaulLanguage)
}else{
showOnly(localStorage.getItem('language'))
}
}else{
if(supportedLanguages.includes(selectedLang)){
showOnly(selectedLang)
}else{
if(localStorage.getItem('language') == ''){
showOnly(defaulLanguage)
localStorage.setItem('language', defaulLanguage)
}else{
showOnly(localStorage.getItem('language'))
}
}
}

each(document, '.tabs li', function(li) {
var language = li.getAttribute('data-language')
li.addEventListener('click', function () {
window.location.search = updateQueryParam(language);
showOnly(language)
})
})
Expand Down

0 comments on commit 94029a4

Please sign in to comment.