import React, { useState } from 'react'; import UserSettingsBar from './UserSettingsBar'; import VoiceChannel from './VoiceChannel'; const channels = [ { category: 'Announcements', items: [ { id: 'updates', icon: '📢', name: 'updates', badge: 3 }, { id: 'changelog', icon: '📜', name: 'changelog' }, ]}, { category: 'Development', items: [ { id: 'general', icon: '#', name: 'general' }, { id: 'api-discussion', icon: '#', name: 'api-discussion' }, { id: 'passport-development', icon: '#', name: 'passport-development' }, ]}, { category: 'Support', items: [ { id: 'help', icon: '❓', name: 'help' }, { id: 'bug-reports', icon: '🐛', name: 'bug-reports' }, ]}, ]; const voiceChannels = [ { id: 'nexus-lounge', name: 'Nexus Lounge', users: [ { id: 1, name: 'Trevor', avatar: 'T', color: '#ff0000', speaking: true, muted: false }, { id: 2, name: 'Sarah', avatar: 'S', color: '#ffa500', speaking: false, muted: true }, { id: 3, name: 'DevUser_2847', avatar: 'D', color: '#666', speaking: false, muted: false, streaming: true }, ]}, { id: 'collab-space', name: 'Collab Space', users: [] }, ]; export default function ChannelSidebar({ onCreateChannel, onSettingsClick, onJoinVoice }) { const [activeChannel, setActiveChannel] = useState('general'); const [expandedVoice, setExpandedVoice] = useState(['nexus-lounge']); const [hoveredCategory, setHoveredCategory] = useState(null); return (
AeThex Foundation Official
{channels.map((category) => (
setHoveredCategory(category.category)} onMouseLeave={() => setHoveredCategory(null)} > {category.category} {hoveredCategory === category.category && onCreateChannel && ( )}
{category.items.map((channel) => (
setActiveChannel(channel.id)} > {channel.icon} {channel.name} {channel.badge && {channel.badge}}
))}
))} {/* Voice Channels */}
setHoveredCategory('voice')} onMouseLeave={() => setHoveredCategory(null)} > Voice Channels {hoveredCategory === 'voice' && onCreateChannel && ( )}
{voiceChannels.map((vc) => ( { setExpandedVoice((prev) => prev.includes(vc.id) ? prev.filter((id) => id !== vc.id) : [...prev, vc.id] ); }} onJoin={onJoinVoice} /> ))}
); }