diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 170daf1..6291f08 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -1,6 +1,7 @@ import { useState, useEffect, useRef, useCallback } from 'react'; import { api, S } from './lib.js'; import { TOOLS, getGroupedTools } from './toolRegistry.js'; +import { HomeIcon, AppsIcon, AdminIcon, MoreIcon, UserIcon, LogOutIcon, ChevronIcon, UpdateIcon } from './icons.jsx'; const ICONS = ['๐','๐','๐','๐','๐ ','๐ง','๐','๐พ','๐ฅ','๐ก','๐','๐','๐ฏ','โก','๐ ','๐ง','๐ฑ','๐ฎ','๐','๐ก']; @@ -136,22 +137,25 @@ function UpdateModal({ data, onClose }) { function Sidebar({ active, setActive, user, onLogout, updateInfo, onUpdateClick }) { const [appsOpen, setAppsOpen] = useState(true); - const NavBtn = ({ item, sub=false }) => ( - setActive(item.id)} style={{ - width:'100%', display:'flex', alignItems:'center', gap:9, - padding: '8px 12px 8px 12px', - borderRadius:7, border:'none', - background: active===item.id ? 'linear-gradient(90deg,rgba(78,205,196,0.14),rgba(78,205,196,0.02))' : 'transparent', - color: active===item.id ? '#4ecdc4' : 'rgba(255,255,255,0.6)', - cursor:'pointer', fontSize:12, - fontFamily:"'Space Mono',monospace", textAlign:'left', marginBottom:1, - borderLeft: active===item.id ? '2px solid #4ecdc4' : '2px solid transparent', - }}> - {sub && } - {item.icon} - {item.label} - - ); + const NavBtn = ({ item, sub=false }) => { + const ic = active===item.id ? '#4ecdc4' : 'rgba(255,255,255,0.55)'; + return ( + setActive(item.id)} style={{ + width:'100%', display:'flex', alignItems:'center', gap:9, + padding:'8px 12px', borderRadius:7, border:'none', + background: active===item.id ? 'linear-gradient(90deg,rgba(78,205,196,0.14),rgba(78,205,196,0.02))' : 'transparent', + cursor:'pointer', fontSize:12, + fontFamily:"'Space Mono',monospace", textAlign:'left', marginBottom:1, + borderLeft: active===item.id ? '2px solid #4ecdc4' : '2px solid transparent', + }}> + {sub && } + + {item.Icon ? : {item.icon}} + + {item.label} + + ); + }; return (