import React from 'react'; import { Icon, IconButton, Icons, Line, Text, Tooltip, TooltipProvider } from 'folds'; import { useAtom } from 'jotai'; import * as css from './styles.css'; import { callChatAtom } from '../../state/callEmbed'; export function ControlDivider() { return ( ); } type MicrophoneButtonProps = { enabled: boolean; onToggle: () => void; }; export function MicrophoneButton({ enabled, onToggle }: MicrophoneButtonProps) { return ( {enabled ? 'Turn Off Microphone' : 'Turn On Microphone'} } > {(anchorRef) => ( onToggle()} aria-label={enabled ? 'Turn Off Microphone' : 'Turn On Microphone'} outlined > )} ); } type SoundButtonProps = { enabled: boolean; onToggle: () => void; }; export function SoundButton({ enabled, onToggle }: SoundButtonProps) { return ( {enabled ? 'Deafen' : 'Undeafen'} } > {(anchorRef) => ( onToggle()} aria-label={enabled ? 'Undeafen' : 'Deafen'} outlined > )} ); } type VideoButtonProps = { enabled: boolean; onToggle: () => void; disabled?: boolean; }; export function VideoButton({ enabled, onToggle, disabled }: VideoButtonProps) { return ( {disabled ? 'Camera disabled in settings' : enabled ? 'Stop Camera' : 'Start Camera'} } > {(anchorRef) => ( onToggle()} outlined disabled={disabled} style={disabled ? { opacity: 0.4, cursor: 'not-allowed' } : undefined} > )} ); } type ScreenShareButtonProps = { enabled: boolean; onToggle: () => void; }; export function ScreenShareButton({ enabled, onToggle }: ScreenShareButtonProps) { return ( {enabled ? 'Stop Screenshare' : 'Start Screenshare'} } > {(anchorRef) => ( onToggle()} aria-label={enabled ? 'Stop Video' : 'Start Video'} aria-label={enabled ? 'Stop Screenshare' : 'Start Screenshare'} outlined > )} ); } export function ChatButton() { const [chat, setChat] = useAtom(callChatAtom); return ( {chat ? 'Close Chat' : 'Open Chat'} } > {(anchorRef) => ( setChat(!chat)} aria-label={chat ? 'Close Chat' : 'Open Chat'} aria-pressed={chat} outlined > )} ); }