fix: restore mobile admin language select

This commit is contained in:
3252a8
2026-06-01 18:33:45 +03:00
parent 4fa18a1262
commit eadb86faf2
2 changed files with 18 additions and 5 deletions
+9 -5
View File
@@ -228,6 +228,7 @@
let adminLanguageClickGuardArmed = false;
let adminLanguageClickGuardTimer = null;
let adminLanguageClickGuardArmTimer = null;
$: adminLanguageGuardActive = isCompact && (adminLanguageMenuOpen || adminLanguageClickGuard);
function readReduceMotion() {
return (
@@ -295,6 +296,8 @@
}
function changeLanguage(value) {
adminLanguageMenuOpen = false;
clearAdminLanguageClickGuard();
onLanguageChange(value, { section: "admin", adminSection: active });
}
@@ -472,8 +475,6 @@
function setAdminLanguageMenuOpen(open) {
adminLanguageMenuOpen = Boolean(open);
clearAdminLanguageClickGuard();
// Desktop doesn't need the click-guard overlay and it can block
// option clicks in portaled select content.
if (!isCompact) return;
if (adminLanguageMenuOpen) {
adminLanguageClickGuard = true;
@@ -557,7 +558,11 @@
}
</script>
<div class="admin-screen-wrap" class:is-sidebar-open={sidebarOpen}>
<div
class="admin-screen-wrap"
class:is-sidebar-open={sidebarOpen}
class:is-admin-language-open={adminLanguageGuardActive}
>
{#if sidebarOpen}
<button
type="button"
@@ -568,7 +573,7 @@
on:click={() => (sidebarOpen = false)}
></button>
{/if}
{#if isCompact && (adminLanguageMenuOpen || adminLanguageClickGuard)}
{#if adminLanguageGuardActive}
<button
class="language-select-guard"
class:language-select-guard--armed={adminLanguageClickGuardArmed}
@@ -578,7 +583,6 @@
on:click={closeAdminLanguageFromGuard}
></button>
{/if}
<aside class="admin-sidebar" aria-label={at("sidebar_navigation", {}, "Навигация админки")}>
<div class="admin-sidebar-brand">
<BrandMark class="admin-brand-mark" {brand} />
+9
View File
@@ -3605,6 +3605,15 @@
transform: translateX(0);
}
.admin-screen-wrap.is-admin-language-open .admin-sidebar {
z-index: 120;
pointer-events: none;
}
.admin-screen-wrap.is-admin-language-open .admin-language-switch {
pointer-events: auto;
}
.admin-sidebar-backdrop {
position: fixed;
inset: 0;