converse-ai-support-library
Version:
A React component library for floating contact buttons (email, chat, call)
101 lines (100 loc) • 2.99 kB
TypeScript
import { default as React } from 'react';
import { GetInfoFormData } from './GetInfoForm';
import { RuntimeAgentResponse } from './agent';
export interface CallProps {
apiKey: string;
baseUrl: string;
assistantId?: string;
enterpriseId: string;
showClose?: boolean;
config?: Record<string, unknown>;
personName?: string;
personRole?: string;
personImage?: string;
className?: string;
style?: React.CSSProperties;
containerClassName?: string;
containerStyle?: React.CSSProperties;
muteIcon?: React.ReactNode;
speakerIcon?: React.ReactNode;
controlsContainerClassName?: string;
callNowButtonClassName?: string;
endCallButtonClassName?: string;
muteButtonClassName?: string;
speakerButtonClassName?: string;
personRoleTextClassName?: string;
personNameTextClassName?: string;
isMobile?: boolean;
onClose?: () => void;
mediaId?: string;
leadData?: GetInfoFormData;
agentData?: RuntimeAgentResponse;
autoCall?: boolean;
}
export interface CallInterfaceProps {
personName: string;
personRole: string;
personImage: string;
showClose?: boolean;
className?: string;
style?: React.CSSProperties;
containerClassName?: string;
containerStyle?: React.CSSProperties;
muteIcon?: React.ReactNode;
speakerIcon?: React.ReactNode;
personRoleTextClassName?: string;
personNameTextClassName?: string;
isConnected?: boolean;
isConnecting?: boolean;
isSpeaking?: boolean;
isMuted?: boolean;
isSpeakerOn?: boolean;
callDuration?: number;
onStartCall?: () => void;
onEndCall?: () => void;
onToggleMute?: () => void;
onToggleSpeaker?: () => void;
formatTime?: (duration: number) => string;
controlsContainerClassName?: string;
callNowButtonClassName?: string;
endCallButtonClassName?: string;
muteButtonClassName?: string;
speakerButtonClassName?: string;
isLoading?: boolean;
onClose?: () => void;
isMobile?: boolean;
autoCall?: boolean;
}
export interface StartCallProps {
personName: string;
personRole: string;
personImage: string;
onStartCall: () => void;
className?: string;
style?: React.CSSProperties;
containerClassName?: string;
containerStyle?: React.CSSProperties;
muteIcon?: React.ReactNode;
speakerIcon?: React.ReactNode;
}
export interface OngoingCallProps {
personName: string;
personRole: string;
personImage: string;
isConnected: boolean;
isConnecting: boolean;
isSpeaking: boolean;
isMuted: boolean;
isSpeakerOn: boolean;
callDuration: number;
onEndCall: () => void;
onToggleMute: () => void;
onToggleSpeaker: () => void;
formatTime: (duration: number) => string;
className?: string;
style?: React.CSSProperties;
containerClassName?: string;
containerStyle?: React.CSSProperties;
speakerIcon?: React.ReactNode;
muteIcon?: React.ReactNode;
}