diff --git a/public/pages/shopping.js b/public/pages/shopping.js index c81636e..ae405ba 100644 --- a/public/pages/shopping.js +++ b/public/pages/shopping.js @@ -555,6 +555,9 @@ export async function render(container, { user }) {
+
`; @@ -562,4 +565,15 @@ export async function render(container, { user }) { wireTabBar(container); renderListContent(container); wireListContentEvents(container); + + container.querySelector('#fab-new-item')?.addEventListener('click', () => { + const input = container.querySelector('#item-name-input'); + if (input) { + input.scrollIntoView({ behavior: 'smooth', block: 'center' }); + input.focus(); + } else { + // Keine Liste aktiv → neue Liste erstellen + container.querySelector('[data-action="new-list"]')?.click(); + } + }); } diff --git a/public/sw.js b/public/sw.js index fd5eecb..b80d983 100644 --- a/public/sw.js +++ b/public/sw.js @@ -12,9 +12,9 @@ * API: Immer Netzwerk (kein Caching von Nutzerdaten) */ -const SHELL_CACHE = 'oikos-shell-v13'; -const PAGES_CACHE = 'oikos-pages-v13'; -const ASSETS_CACHE = 'oikos-assets-v13'; +const SHELL_CACHE = 'oikos-shell-v14'; +const PAGES_CACHE = 'oikos-pages-v14'; +const ASSETS_CACHE = 'oikos-assets-v14'; const ALL_CACHES = [SHELL_CACHE, PAGES_CACHE, ASSETS_CACHE]; // App-Shell: sofort benötigt für ersten Render