import React from 'react'; import { Box, Spinner } from 'folds'; import classNames from 'classnames'; import { LiveChip } from './LiveChip'; import * as css from './styles.css'; import { CallRoomName } from './CallRoomName'; import { CallControl } from './CallControl'; import { ContainerColor } from '../../styles/ContainerColor.css'; import { useCallMembers, useCallSession } from '../../hooks/useCall'; import { ScreenSize, useScreenSize } from '../../hooks/useScreenSize'; import { MemberGlance } from './MemberGlance'; import { StatusDivider } from './components'; import { CallEmbed } from '../../plugins/call/CallEmbed'; import { useCallJoined } from '../../hooks/useCallEmbed'; import { useCallSpeakers } from '../../hooks/useCallSpeakers'; import { MemberSpeaking } from './MemberSpeaking'; type CallStatusProps = { callEmbed: CallEmbed; }; export function CallStatus({ callEmbed }: CallStatusProps) { const { room } = callEmbed; const callSession = useCallSession(room); const callMembers = useCallMembers(room, callSession); const screenSize = useScreenSize(); const callJoined = useCallJoined(callEmbed); const speakers = useCallSpeakers(callEmbed); const compact = screenSize === ScreenSize.Mobile; const memberVisible = callJoined && callMembers.length > 0; return ( {memberVisible ? ( ) : ( )} {speakers.size > 0 && !compact && ( <> )} {memberVisible && ( )} {memberVisible && !compact && } ); }