import React, { useState } from 'react'; import { useAuth } from '../context/AuthContext'; function CategoryGroup({ category, activeChannel, onSelectChannel }) { const [collapsed, setCollapsed] = useState(false); return (
{!collapsed && (
{(category.channels || []).map((channel) => ( onSelectChannel(channel)} /> ))}
)}
); } function ChannelItem({ channel, isActive, onClick }) { return ( ); } function UserBar({ user, onOpenSettings }) { return (
{user?.avatar ? ( {user.username} ) : ( {user?.username?.charAt(0)?.toUpperCase() || '?'} )}

{user?.username}

Online

); } export default function ChannelSidebar({ server, activeChannel, onSelectChannel, onOpenServerSettings, onOpenInvite, dmMode, user, token, }) { const { logout } = useAuth(); const [showServerMenu, setShowServerMenu] = useState(false); if (dmMode) { return (
{/* DM Header */}
{/* DM List placeholder */}

Direct Messages

No conversations yet

Start a new DM to begin chatting

{}} />
); } if (!server) { return (
{}} />
); } return (
{/* Server Header */}
{/* Server dropdown menu */} {showServerMenu && ( <>
setShowServerMenu(false)} />
)}
{/* Channels */}
{server.categories && server.categories.length > 0 ? ( server.categories.map((cat) => ( )) ) : server.channels && server.channels.length > 0 ? (
{server.channels.map((channel) => ( onSelectChannel(channel)} /> ))}
) : (

No channels yet

)}
{/* User Bar */} {}} />
); }