fix: restore mobile admin language select
This commit is contained in:
@@ -228,6 +228,7 @@
|
|||||||
let adminLanguageClickGuardArmed = false;
|
let adminLanguageClickGuardArmed = false;
|
||||||
let adminLanguageClickGuardTimer = null;
|
let adminLanguageClickGuardTimer = null;
|
||||||
let adminLanguageClickGuardArmTimer = null;
|
let adminLanguageClickGuardArmTimer = null;
|
||||||
|
$: adminLanguageGuardActive = isCompact && (adminLanguageMenuOpen || adminLanguageClickGuard);
|
||||||
|
|
||||||
function readReduceMotion() {
|
function readReduceMotion() {
|
||||||
return (
|
return (
|
||||||
@@ -295,6 +296,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function changeLanguage(value) {
|
function changeLanguage(value) {
|
||||||
|
adminLanguageMenuOpen = false;
|
||||||
|
clearAdminLanguageClickGuard();
|
||||||
onLanguageChange(value, { section: "admin", adminSection: active });
|
onLanguageChange(value, { section: "admin", adminSection: active });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -472,8 +475,6 @@
|
|||||||
function setAdminLanguageMenuOpen(open) {
|
function setAdminLanguageMenuOpen(open) {
|
||||||
adminLanguageMenuOpen = Boolean(open);
|
adminLanguageMenuOpen = Boolean(open);
|
||||||
clearAdminLanguageClickGuard();
|
clearAdminLanguageClickGuard();
|
||||||
// Desktop doesn't need the click-guard overlay and it can block
|
|
||||||
// option clicks in portaled select content.
|
|
||||||
if (!isCompact) return;
|
if (!isCompact) return;
|
||||||
if (adminLanguageMenuOpen) {
|
if (adminLanguageMenuOpen) {
|
||||||
adminLanguageClickGuard = true;
|
adminLanguageClickGuard = true;
|
||||||
@@ -557,7 +558,11 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</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}
|
{#if sidebarOpen}
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
@@ -568,7 +573,7 @@
|
|||||||
on:click={() => (sidebarOpen = false)}
|
on:click={() => (sidebarOpen = false)}
|
||||||
></button>
|
></button>
|
||||||
{/if}
|
{/if}
|
||||||
{#if isCompact && (adminLanguageMenuOpen || adminLanguageClickGuard)}
|
{#if adminLanguageGuardActive}
|
||||||
<button
|
<button
|
||||||
class="language-select-guard"
|
class="language-select-guard"
|
||||||
class:language-select-guard--armed={adminLanguageClickGuardArmed}
|
class:language-select-guard--armed={adminLanguageClickGuardArmed}
|
||||||
@@ -578,7 +583,6 @@
|
|||||||
on:click={closeAdminLanguageFromGuard}
|
on:click={closeAdminLanguageFromGuard}
|
||||||
></button>
|
></button>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<aside class="admin-sidebar" aria-label={at("sidebar_navigation", {}, "Навигация админки")}>
|
<aside class="admin-sidebar" aria-label={at("sidebar_navigation", {}, "Навигация админки")}>
|
||||||
<div class="admin-sidebar-brand">
|
<div class="admin-sidebar-brand">
|
||||||
<BrandMark class="admin-brand-mark" {brand} />
|
<BrandMark class="admin-brand-mark" {brand} />
|
||||||
|
|||||||
@@ -3605,6 +3605,15 @@
|
|||||||
transform: translateX(0);
|
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 {
|
.admin-sidebar-backdrop {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
inset: 0;
|
inset: 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user