import React from 'react' // Inline SVG icons (kept minimal for clarity) const IconChat = ({ size = 20 }: { size?: number }) => ( ) const IconInfo = ({ size = 20 }: { size?: number }) => ( ) const IconClock = ({ size = 20 }: { size?: number }) => ( ) const IconUsers = ({ size = 20 }: { size?: number }) => ( ) import { useAssets } from '../../hooks/useAssets' import { usePeople } from '../../hooks/usePeople' import { useStyle } from '../../hooks/useStyle' import { useChat } from '../../hooks/useChat' type SidebarItem = { id: string label: string icon: React.ReactNode } type Props = { activeTab: string | null onSelectTab: (id: string | null) => void } const RightSidebar: React.FC = ({ activeTab, onSelectTab }) => { const { assets } = useAssets() const { people } = usePeople() const { style, update } = useStyle() const { messages, send } = useChat() const items: SidebarItem[] = [ { id: 'comments', label: 'Comentarios', icon: }, { id: 'style', label: 'Estilo', icon: }, { id: 'banners', label: 'Banners', icon: }, { id: 'media', label: 'Archivos multimedia', icon: }, { id: 'people', label: 'Personas', icon: }, { id: 'private-chat', label: 'Chat privado', icon: }, { id: 'notes', label: 'Notas', icon: }, ] return (
{/* Panel: positioned to the left of tabs and slides with transform */}
{activeTab ? (
{activeTab === 'media' && (

Archivos multimedia

    {assets.map((a) => (
  • {a.name}
  • ))}
)} {activeTab === 'people' && (

Personas

    {people.map((p) => (
  • {p.name} {p.role}
  • ))}
)} {activeTab === 'style' && (

Estilo

Color primario: {style.themeColor}
)} {activeTab === 'private-chat' && (

Chat privado

{messages.map((m) => (
{m.user}
{m.text}
))}
{ if (e.key === 'Enter') { const val = (e.currentTarget as HTMLInputElement).value.trim() if (val) { send('Host', val) ;(e.currentTarget as HTMLInputElement).value = '' } } }} />
)} {activeTab === 'comments' && (

Comentarios

Panel de comentarios en tiempo real.

)} {activeTab === 'banners' && (

Banners

Gestión de banners y overlays.

)} {activeTab === 'notes' && (

Notas

Notas y recordatorios del stream.

)}
) : (
Seleccione una pestaña para ver opciones
)}
{/* Tabs aside: always visible on the right */}
) } export default RightSidebar