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:
parent
d1e4867fb4
commit
b27e4b006f
5 changed files with 14 additions and 6 deletions
|
|
@ -206,7 +206,8 @@ body {
|
||||||
line-height: var(--leading-normal);
|
line-height: var(--leading-normal);
|
||||||
color: var(--c-text);
|
color: var(--c-text);
|
||||||
background-color: var(--c-bg);
|
background-color: var(--c-bg);
|
||||||
min-height: 100%;
|
height: 100%;
|
||||||
|
overflow: hidden; /* body nie scrollen — nur #page-content */
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,8 @@
|
||||||
#app {
|
#app {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
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 */
|
/* Content-Bereich: füllt den Raum zwischen Header und Bottom-Nav */
|
||||||
|
|
@ -19,12 +20,17 @@
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
padding-bottom: calc(var(--nav-bottom-height) + var(--safe-bottom) + 16px);
|
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) {
|
@media (min-width: 768px) {
|
||||||
#app {
|
#app {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
height: auto;
|
||||||
|
min-height: 100dvh;
|
||||||
|
overflow: visible;
|
||||||
}
|
}
|
||||||
#page-content {
|
#page-content {
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
Router, State-Management, Navigation, Initialisierung.
|
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 APP_VERSION = '1.0.0'; // ← semantische Version, wird bei make release gesetzt
|
||||||
const IS_STAGING = location.hostname === 'staging.banyaro.app';
|
const IS_STAGING = location.hostname === 'staging.banyaro.app';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,9 +40,10 @@ window.Page_gruender = (() => {
|
||||||
const el = _container.querySelector('#grnd-content');
|
const el = _container.querySelector('#grnd-content');
|
||||||
try {
|
try {
|
||||||
const d = await API.get('/api/partner/founders/stats');
|
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);
|
el.innerHTML = _renderStats(d);
|
||||||
} catch (e) {
|
} 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>`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
Offline-Cache + Push Notifications + Tile-Cache
|
Offline-Cache + Push Notifications + Tile-Cache
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
const CACHE_VERSION = 'by-v521';
|
const CACHE_VERSION = 'by-v522';
|
||||||
const CACHE_STATIC = `${CACHE_VERSION}-static`;
|
const CACHE_STATIC = `${CACHE_VERSION}-static`;
|
||||||
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
|
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
|
||||||
const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache
|
const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue