Fix: Bottom-Nav immer fixiert + Gründer-Seite null-Error

- body: height:100% + overflow:hidden — body scrollt nie mehr selbst
- #app: height:100dvh (war min-height) + overflow:hidden — exakte Viewport-Höhe
- Desktop (768px+): #app height:auto + min-height:100dvh zurück (kein Bottom-Nav)
- #page-content: -webkit-overflow-scrolling:touch für iOS-Momentum-Scroll
- gruender.js: null-Check vor _renderStats() gegen "null is not an object"-Crash
- SW by-v522, APP_VER 499
This commit is contained in:
rene 2026-04-29 22:01:33 +02:00
parent d1e4867fb4
commit b27e4b006f
5 changed files with 14 additions and 6 deletions

View file

@ -206,7 +206,8 @@ body {
line-height: var(--leading-normal);
color: var(--c-text);
background-color: var(--c-bg);
min-height: 100%;
height: 100%;
overflow: hidden; /* body nie scrollen — nur #page-content */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

View file

@ -10,7 +10,8 @@
#app {
display: flex;
flex-direction: column;
min-height: 100dvh; /* dvh: berücksichtigt mobile Browser-Chrome */
height: 100dvh; /* exakte Viewport-Höhe: body scrollt nie, nur #page-content */
overflow: hidden;
}
/* Content-Bereich: füllt den Raum zwischen Header und Bottom-Nav */
@ -19,12 +20,17 @@
overflow-y: auto;
overflow-x: hidden;
padding-bottom: calc(var(--nav-bottom-height) + var(--safe-bottom) + 16px);
/* -webkit-overflow-scrolling für iOS-Momentum-Scroll */
-webkit-overflow-scrolling: touch;
}
/* Desktop: Sidebar-Layout */
/* Desktop: Sidebar-Layout — kein Bottom-Nav, natürliche Höhe */
@media (min-width: 768px) {
#app {
flex-direction: row;
height: auto;
min-height: 100dvh;
overflow: visible;
}
#page-content {
padding-bottom: 0;

View file

@ -3,7 +3,7 @@
Router, State-Management, Navigation, Initialisierung.
============================================================ */
const APP_VER = '498'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const APP_VER = '499'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const APP_VERSION = '1.0.0'; // ← semantische Version, wird bei make release gesetzt
const IS_STAGING = location.hostname === 'staging.banyaro.app';

View file

@ -40,9 +40,10 @@ window.Page_gruender = (() => {
const el = _container.querySelector('#grnd-content');
try {
const d = await API.get('/api/partner/founders/stats');
if (!d || typeof d.total === 'undefined') throw new Error('Ungültige Antwort vom Server.');
el.innerHTML = _renderStats(d);
} catch (e) {
el.innerHTML = `<p style="color:var(--c-text-muted);text-align:center">${e.message}</p>`;
el.innerHTML = `<p style="color:var(--c-text-muted);text-align:center">${e.message || 'Fehler beim Laden.'}</p>`;
}
}

View file

@ -3,7 +3,7 @@
Offline-Cache + Push Notifications + Tile-Cache
============================================================ */
const CACHE_VERSION = 'by-v521';
const CACHE_VERSION = 'by-v522';
const CACHE_STATIC = `${CACHE_VERSION}-static`;
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache