Highlight selected language and model

This commit is contained in:
Misode
2020-06-06 14:24:44 +02:00
parent ca724d3e34
commit a538324556
3 changed files with 43 additions and 26 deletions
+24 -22
View File
@@ -72,7 +72,19 @@ Promise.all([
for (const v in views) { for (const v in views) {
views[v].setModel(models[selected]) views[v].setModel(models[selected])
} }
selectedModel.textContent = locale(`generator.${selected}`) selectedModel.textContent = locale(`title.${selected}`)
modelSelectorMenu.innerHTML = ''
Object.keys(models).forEach(m => {
modelSelectorMenu.insertAdjacentHTML('beforeend',
`<div class="btn${m === selected ? ' selected' : ''}">${locale(m)}</div>`)
modelSelectorMenu.lastChild?.addEventListener('click', evt => {
updateModel(m)
history.pushState({model: m}, m, publicPath + m)
modelSelectorMenu.style.visibility = 'hidden'
})
})
models[selected].invalidate() models[selected].invalidate()
} }
@@ -82,6 +94,17 @@ Promise.all([
document.querySelectorAll('[data-i18n]').forEach(el => { document.querySelectorAll('[data-i18n]').forEach(el => {
el.textContent = locale(el.attributes.getNamedItem('data-i18n')!.value) el.textContent = locale(el.attributes.getNamedItem('data-i18n')!.value)
}) })
languageSelectorMenu.innerHTML = ''
Object.keys(languages).forEach(key => {
languageSelectorMenu.insertAdjacentHTML('beforeend',
`<div class="btn${key === LOCALES.language ? ' selected' : ''}">${languages[key]}</div>`)
languageSelectorMenu.lastChild?.addEventListener('click', evt => {
updateLanguage(key)
languageSelectorMenu.style.visibility = 'hidden'
})
})
updateModel(selected) updateModel(selected)
} }
updateLanguage('en') updateLanguage('en')
@@ -89,17 +112,6 @@ Promise.all([
Split([treeViewEl, sourceViewEl], { Split([treeViewEl, sourceViewEl], {
sizes: [66, 34] sizes: [66, 34]
}) })
modelSelectorMenu.innerHTML = ''
Object.keys(models).forEach(m => {
modelSelectorMenu.insertAdjacentHTML('beforeend',
`<div class="btn${m === selected ? ' selected' : ''}">${locale(`generator.${m}`)}</div>`)
modelSelectorMenu.lastChild?.addEventListener('click', evt => {
updateModel(m)
history.pushState({model: m}, m, publicPath + m)
modelSelectorMenu.style.visibility = 'hidden'
})
})
modelSelector.addEventListener('click', evt => { modelSelector.addEventListener('click', evt => {
modelSelectorMenu.style.visibility = 'visible' modelSelectorMenu.style.visibility = 'visible'
@@ -124,16 +136,6 @@ Promise.all([
} }
}) })
languageSelectorMenu.innerHTML = ''
Object.keys(languages).forEach(key => {
languageSelectorMenu.insertAdjacentHTML('beforeend',
`<div class="btn${key === LOCALES.language ? ' selected' : ''}">${languages[key]}</div>`)
languageSelectorMenu.lastChild?.addEventListener('click', evt => {
updateLanguage(key)
languageSelectorMenu.style.visibility = 'hidden'
})
})
languageSelector.addEventListener('click', evt => { languageSelector.addEventListener('click', evt => {
languageSelectorMenu.style.visibility = 'visible' languageSelectorMenu.style.visibility = 'visible'
document.body.addEventListener('click', evt => { document.body.addEventListener('click', evt => {
+8 -4
View File
@@ -1,8 +1,12 @@
{ {
"generator.loot-table": "Loot Table Generator", "title.loot-table": "Loot Table Generator",
"generator.predicate": "Predicate Generator", "title.predicate": "Predicate Generator",
"generator.advancement": "Advancement Generator", "title.advancement": "Advancement Generator",
"generator.sandbox": "Sandbox Generator", "title.sandbox": "Sandbox Generator",
"loot-table": "Loot Table",
"predicate": "Predicate",
"advancement": "Advancement",
"sandbox": "Sandbox",
"language": "Language", "language": "Language",
"copy": "Copy", "copy": "Copy",
"download": "Download", "download": "Download",
+11
View File
@@ -26,6 +26,7 @@ body {
.header-title { .header-title {
display: flex; display: flex;
align-items: flex-start;
} }
.header-title h2 { .header-title h2 {
@@ -170,6 +171,11 @@ body {
color: #a5e77a; color: #a5e77a;
} }
.btn.selected {
fill: #a5e77a;
color: #a5e77a;
}
.btn svg:not(:last-child) { .btn svg:not(:last-child) {
margin-right: 5px; margin-right: 5px;
} }
@@ -240,4 +246,9 @@ body {
right: 17px; right: 17px;
top: 37px; top: 37px;
} }
.nav-selector-menu {
right: 0;
left: initial;
}
} }