Rocket.Chat.ReactNative/app/actions/videoConf.ts

82 lines
1.9 KiB
TypeScript

import { Action } from 'redux';
import { ICallInfo } from '../reducers/videoConf';
import { VIDEO_CONF } from './actionsTypes';
interface IHandleVideoConfIncomingWebsocketMessages extends Action {
data: any;
}
export type TCallProps = { mic: boolean; cam: boolean; direct: boolean; rid: string; uid: string };
type TInitCallAction = Action & { payload: TCallProps };
type TSetCallingAction = Action & { payload: boolean };
type TCancelCallAction = Action & { payload: { callId?: string } };
type TAcceptCallAction = Action & { payload: { callId: string } };
export interface IVideoConfGenericAction extends Action {
payload: ICallInfo;
}
export type TActionVideoConf = IHandleVideoConfIncomingWebsocketMessages &
IVideoConfGenericAction &
TSetCallingAction &
Action &
TInitCallAction &
TCancelCallAction &
TAcceptCallAction;
export function handleVideoConfIncomingWebsocketMessages(data: any): IHandleVideoConfIncomingWebsocketMessages {
return {
type: VIDEO_CONF.HANDLE_INCOMING_WEBSOCKET_MESSAGES,
data
};
}
export function setVideoConfCall(payload: ICallInfo): IVideoConfGenericAction {
return {
type: VIDEO_CONF.SET,
payload
};
}
export function removeVideoConfCall(payload: ICallInfo): IVideoConfGenericAction {
return {
type: VIDEO_CONF.REMOVE,
payload
};
}
export function clearVideoConfCalls(): Action {
return {
type: VIDEO_CONF.CLEAR
};
}
export function initVideoCall(payload: TCallProps): TInitCallAction {
return {
type: VIDEO_CONF.INIT_CALL,
payload
};
}
export function cancelCall(payload: { callId?: string }): TCancelCallAction {
return {
type: VIDEO_CONF.CANCEL_CALL,
payload
};
}
export function acceptCall(payload: { callId: string }): TAcceptCallAction {
return {
type: VIDEO_CONF.ACCEPT_CALL,
payload
};
}
export function setCalling(payload: boolean): TSetCallingAction {
return {
type: VIDEO_CONF.SET_CALLING,
payload
};
}