fix: replace Pug language picker dropdown with native select
Build and Deploy Verso / deploy (push) Successful in 14m31s
Build and Deploy Verso / deploy (push) Successful in 14m31s
The old dropdown relied on data-bs-toggle and AngularJS directives, neither of which are loaded on React-layout pages (layout-react.pug intentionally excludes Bootstrap JS). The toggle button was inert on pages like /user/settings. Replace with a plain <select> that navigates via window.location.href onchange — works without any framework on all page types. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,35 +1,10 @@
|
||||
include ../_mixins/material_symbol
|
||||
|
||||
li.dropdown.dropup.subdued.language-picker(dropdown)
|
||||
button#language-picker-toggle.btn.btn-link.btn-inline-link(
|
||||
dropdown-toggle
|
||||
data-ol-lang-selector-tooltip
|
||||
data-bs-toggle='dropdown'
|
||||
aria-haspopup='true'
|
||||
aria-expanded='false'
|
||||
aria-label='Select ' + translate('language')
|
||||
tooltip=translate('language')
|
||||
title=translate('language')
|
||||
li.language-picker
|
||||
select.language-picker-select(
|
||||
name='lng'
|
||||
translate='no'
|
||||
onchange='window.location.href="/set-language?lng="+encodeURIComponent(this.value)+"&return_to="+encodeURIComponent(window.location.pathname)'
|
||||
aria-label=translate('select_a_language')
|
||||
)
|
||||
+material-symbol('translate')
|
||||
|
|
||||
span.language-picker-text #{settings.translatedLanguages[currentLngCode] || currentLngCode}
|
||||
|
||||
ul.dropdown-menu.dropdown-menu-sm-width(
|
||||
role='menu'
|
||||
aria-labelledby='language-picker-toggle'
|
||||
)
|
||||
li.dropdown-header #{translate("language")}
|
||||
each lngCode in availableLanguages
|
||||
if settings.translatedLanguages[lngCode]
|
||||
- let isActive = lngCode === currentLngCode
|
||||
li.lng-option
|
||||
a.menu-indent(
|
||||
href='/set-language?lng=' + lngCode
|
||||
role='menuitem'
|
||||
class=['dropdown-item', {active: isActive}]
|
||||
aria-selected=isActive ? 'true' : 'false'
|
||||
)
|
||||
| #{settings.translatedLanguages[lngCode]}
|
||||
if isActive
|
||||
+material-symbol('check', 'dropdown-item-trailing-icon')
|
||||
option(value=lngCode selected=lngCode === currentLngCode)= settings.translatedLanguages[lngCode]
|
||||
|
||||
Reference in New Issue
Block a user