import { Hand, X } from 'lucide-react' import { useIsOrganizer } from '@/hooks/useIsOrganizer' import type { HandQueueEntry } from '@/hooks/useChat' interface HandQueuePanelProps { queue: HandQueueEntry[] onLower: (identity: string) => void onClose: () => void } /** * Панель очереди поднятых рук — видна только организатору (задача B1). * Визуально — тот же боковой контейнер, что и `ChatPanel` (`.chat-panel`, * включая мобильное поведение «во весь экран» на ≤900px), содержимое своё: * упорядоченный список с позицией и кнопкой «Опустить» на каждой строке — * организатору разрешено опускать чужую руку (решение оператора, задача B1). * * `RoomPage` гейтит рендер по `handQueueOpen` (как и `ChatPanel` по * `chatOpen`) — свой `useIsOrganizer()` здесь ДОПОЛНИТЕЛЬНАЯ, а не * единственная защита: `RoomToolbar` уже не показывает кнопку открытия * не-организатору, это подстраховка на случай прямого рендера. */ export function HandQueuePanel({ queue, onLower, onClose }: HandQueuePanelProps) { const isOrganizer = useIsOrganizer() if (!isOrganizer) return null return ( ) }