From ed3e56fb43dff25f77ace19f08a551d247e1ebc2 Mon Sep 17 00:00:00 2001 From: Dicken Date: Mon, 29 Jun 2026 11:47:44 +0200 Subject: [PATCH] feat: Hex Wars - Badge in Sidebar und BottomNav wenn man dran ist --- backend/src/tools/gebietseroberung/routes.js | 10 +++ frontend/src/App.jsx | 95 ++++++++++---------- 2 files changed, 56 insertions(+), 49 deletions(-) diff --git a/backend/src/tools/gebietseroberung/routes.js b/backend/src/tools/gebietseroberung/routes.js index f8050f8..9a29d09 100644 --- a/backend/src/tools/gebietseroberung/routes.js +++ b/backend/src/tools/gebietseroberung/routes.js @@ -281,6 +281,16 @@ router.get('/', authenticate, (req, res) => { res.json(games); }); +// ── Meine Züge: Anzahl Spiele wo ich dran bin ──────────────────────────────── +router.get('/my-turns', authenticate, (req, res) => { + const me = uid(req); + const { count } = db.prepare(` + SELECT COUNT(*) as count FROM geo_games + WHERE status='active' AND current_turn=? + `).get(me); + res.json({ count }); +}); + // ── Topliste ────────────────────────────────────────────────────────────────── router.get('/leaderboard', authenticate, (req, res) => { const rows = db.prepare(` diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 9a784e7..031c085 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -155,12 +155,9 @@ function Login({ onLogin }) { // ── Update Modal ────────────────────────────────────────────────────────────── // ── Desktop Sidebar ─────────────────────────────────────────────────────────── -function Sidebar({ active, setActive, user, onLogout, unreadMsgs=0 }) { +function Sidebar({ active, setActive, user, onLogout, unreadMsgs=0, hexWarsTurns=0 }) { const [appsOpen, setAppsOpen] = useState(true); const [collapsed, setCollapsed] = useState(false); - const [collapsedGroups, setCollapsedGroups] = useState({}); - - const toggleGroup = (group) => setCollapsedGroups(prev => ({ ...prev, [group]: !prev[group] })); const NavBtn = ({ item, sub=false }) => { const ic = active===item.id ? '#4ecdc4' : 'rgba(255,255,255,0.55)'; @@ -183,12 +180,20 @@ function Sidebar({ active, setActive, user, onLogout, unreadMsgs=0 }) { )} + {collapsed && item.id==='gebietseroberung' && hexWarsTurns>0 && ( + + )} {!collapsed && {item.label}} {!collapsed && item.id==='nachrichten' && unreadMsgs>0 && ( {unreadMsgs} )} + {!collapsed && item.id==='gebietseroberung' && hexWarsTurns>0 && ( + {hexWarsTurns} + )} ); }; @@ -223,7 +228,7 @@ function Sidebar({ active, setActive, user, onLogout, unreadMsgs=0 }) { )} -