fix: HelpModal schließbar, mobile Nav scrollbar + einklappbar

This commit is contained in:
2026-06-28 13:45:26 +02:00
parent 41405f3f18
commit 19837567cd
2 changed files with 30 additions and 15 deletions

View File

@@ -284,6 +284,7 @@ function Sidebar({ active, setActive, user, onLogout, unreadMsgs=0 }) {
function BottomNav({ active, setActive, user, onLogout, unreadMsgs=0 }) {
const [menuOpen, setMenuOpen] = useState(false);
const [appsOpen, setAppsOpen] = useState(false);
const [mobileCollapsedGroups, setMobileCollapsedGroups] = useState({});
const NAV_H = 56;
const MI = ({Icon, icon, label, onClick, color='rgba(255,255,255,0.85)'}) => {
@@ -339,19 +340,27 @@ function BottomNav({ active, setActive, user, onLogout, unreadMsgs=0 }) {
return (
<>
{/* Apps Sheet mit Gruppenüberschriften */}
{/* Apps Sheet mit Gruppenüberschriften + einklappbar + scrollbar */}
<Sheet open={appsOpen} onClose={()=>setAppsOpen(false)}>
<div style={{ paddingBottom:4 }}>
{getGroupedTools().map(([group, tools]) => (
<div key={group}>
<div style={{ color:'rgba(78,205,196,0.85)', fontSize:9, fontFamily:'monospace',
letterSpacing:2, padding:'12px 20px 5px' }}>{group.toUpperCase()}</div>
{tools.map(t => (
<MI key={t.id} Icon={t.Icon} label={t.label}
onClick={() => { setActive(t.id); setAppsOpen(false); }} />
))}
</div>
))}
<div style={{ overflowY:'auto', maxHeight:'60vh', paddingBottom:8 }}>
{getGroupedTools().map(([group, tools]) => {
const isGrpCollapsed = !!mobileCollapsedGroups[group];
return (
<div key={group}>
<button onClick={() => setMobileCollapsedGroups(prev => ({ ...prev, [group]: !prev[group] }))}
style={{ width:'100%', display:'flex', alignItems:'center', gap:6,
background:'none', border:'none', cursor:'pointer', padding:'12px 20px 5px' }}>
<span style={{ color:'rgba(78,205,196,0.85)', fontSize:9, fontFamily:'monospace',
letterSpacing:2, flex:1, textAlign:'left' }}>{group.toUpperCase()}</span>
<ChevronIcon size={10} color="rgba(78,205,196,0.5)" dir={isGrpCollapsed ? 'right' : 'down'} />
</button>
{!isGrpCollapsed && tools.map(t => (
<MI key={t.id} Icon={t.Icon} label={t.label}
onClick={() => { setActive(t.id); setAppsOpen(false); }} />
))}
</div>
);
})}
</div>
</Sheet>