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
>
)}
);
}