Fix mobile bestellungen detail host

This commit is contained in:
2026-06-17 14:21:24 +02:00
parent 3129f02f1d
commit a277cacf3a
2 changed files with 45 additions and 8 deletions
+20 -8
View File
@@ -553,7 +553,7 @@ function render_auth_home_page(array $user, array $otcProducts = [], array $best
echo " };"; echo " };";
echo " const isMobileDetailMode = () => window.matchMedia('(max-width: 767px)').matches;"; echo " const isMobileDetailMode = () => window.matchMedia('(max-width: 767px)').matches;";
echo " const escapeHtml = (value) => String(value ?? '').replace(/[&<>\"']/g, (character) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' }[character] || character));"; echo " const escapeHtml = (value) => String(value ?? '').replace(/[&<>\"']/g, (character) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' }[character] || character));";
echo " let bestellungenListSnapshot = '';"; echo " let bestellungenMobileDetailHost = null;";
echo " let bestellungenDetailOpen = false;"; echo " let bestellungenDetailOpen = false;";
echo " const syncSearchState = () => {"; echo " const syncSearchState = () => {";
echo " const input = getSearchInput();"; echo " const input = getSearchInput();";
@@ -575,7 +575,7 @@ function render_auth_home_page(array $user, array $otcProducts = [], array $best
echo " const streetLine = [street, houseNumber].filter((part) => part && part.length > 0).join(' ').trim();"; echo " const streetLine = [street, houseNumber].filter((part) => part && part.length > 0).join(' ').trim();";
echo " const cityLine = [zip, city].filter((part) => part && part.length > 0).join(' ').trim();"; echo " const cityLine = [zip, city].filter((part) => part && part.length > 0).join(' ').trim();";
echo " return ["; echo " return [";
echo " '<div data-bestellungen-mobile-detail=\"true\">',"; echo " '<div class=\"sg-bestellungen-mobile-detail-host\" data-bestellungen-mobile-detail-host=\"true\">',";
echo " '<div class=\"sg-navigation-card-layout\">',"; echo " '<div class=\"sg-navigation-card-layout\">',";
echo " '<div class=\"sg-navigation-card-block\">',"; echo " '<div class=\"sg-navigation-card-block\">',";
echo " '<article class=\"sg-card\" data-component=\"card\" data-pattern=\"navigation-card\" aria-label=\"Navigations-Card\">',"; echo " '<article class=\"sg-card\" data-component=\"card\" data-pattern=\"navigation-card\" aria-label=\"Navigations-Card\">',";
@@ -656,15 +656,23 @@ function render_auth_home_page(array $user, array $otcProducts = [], array $best
echo " });"; echo " });";
echo " };"; echo " };";
echo " const restoreBestellungenList = () => {"; echo " const restoreBestellungenList = () => {";
echo " if (bestellungenListSnapshot === '') { return; }"; echo " if (bestellungenMobileDetailHost && bestellungenMobileDetailHost.parentNode) {";
echo " contentRoot.innerHTML = bestellungenListSnapshot;"; echo " bestellungenMobileDetailHost.parentNode.removeChild(bestellungenMobileDetailHost);";
echo " bestellungenListSnapshot = '';"; echo " }";
echo " bestellungenMobileDetailHost = null;";
echo " document.body.classList.remove('sg-bestellungen-mobile-detail-open');";
echo " bestellungenDetailOpen = false;"; echo " bestellungenDetailOpen = false;";
echo " bindTable();"; echo " bindTable();";
echo " };"; echo " };";
echo " const openMobileDetail = (trigger) => {"; echo " const openMobileDetail = (trigger) => {";
echo " bestellungenListSnapshot = contentRoot.innerHTML;"; echo " restoreBestellungenList();";
echo " contentRoot.innerHTML = renderMobileDetail(trigger);"; echo " const host = document.createElement('div');";
echo " host.innerHTML = renderMobileDetail(trigger);";
echo " bestellungenMobileDetailHost = host.firstElementChild;";
echo " if (bestellungenMobileDetailHost) {";
echo " document.body.appendChild(bestellungenMobileDetailHost);";
echo " document.body.classList.add('sg-bestellungen-mobile-detail-open');";
echo " }";
echo " bestellungenDetailOpen = true;"; echo " bestellungenDetailOpen = true;";
echo " window.history.pushState({ bestellungenView: 'detail', orderId: trigger.dataset.orderId || '' }, '', window.location.href);"; echo " window.history.pushState({ bestellungenView: 'detail', orderId: trigger.dataset.orderId || '' }, '', window.location.href);";
echo " };"; echo " };";
@@ -699,7 +707,11 @@ function render_auth_home_page(array $user, array $otcProducts = [], array $best
echo " return false;"; echo " return false;";
echo " }"; echo " }";
echo " contentRoot.innerHTML = fragment.innerHTML;"; echo " contentRoot.innerHTML = fragment.innerHTML;";
echo " bestellungenListSnapshot = '';"; echo " if (bestellungenMobileDetailHost && bestellungenMobileDetailHost.parentNode) {";
echo " bestellungenMobileDetailHost.parentNode.removeChild(bestellungenMobileDetailHost);";
echo " }";
echo " bestellungenMobileDetailHost = null;";
echo " document.body.classList.remove('sg-bestellungen-mobile-detail-open');";
echo " bestellungenDetailOpen = false;"; echo " bestellungenDetailOpen = false;";
echo " table = getTable();"; echo " table = getTable();";
echo " return !!table;"; echo " return !!table;";
+25
View File
@@ -31,6 +31,31 @@ body.sg-otc-order-overlay-open {
overflow: hidden; overflow: hidden;
} }
body.sg-bestellungen-mobile-detail-open {
overflow: hidden;
}
body.sg-bestellungen-mobile-detail-open > :not([data-bestellungen-mobile-detail-host]) {
display: none !important;
}
.sg-bestellungen-mobile-detail-host {
position: fixed;
inset: 0;
z-index: 1500;
display: flex;
flex-direction: column;
gap: var(--spacing-large);
padding: var(--spacing-large);
box-sizing: border-box;
overflow: auto;
background: var(--color-white);
}
.sg-bestellungen-mobile-detail-host .sg-vsf-drawer-card {
width: 100%;
}
.sg-otc-order-overlay { .sg-otc-order-overlay {
position: fixed; position: fixed;
inset: 0; inset: 0;