Initial group calling support
This commit is contained in:
parent
e398520db0
commit
022c4bd0f4
31 changed files with 2530 additions and 414 deletions
|
@ -3,11 +3,8 @@
|
|||
|
||||
import { createSelector } from 'reselect';
|
||||
|
||||
import { CallingStateType } from '../ducks/calling';
|
||||
import { CallState } from '../../types/Calling';
|
||||
import { getOwn } from '../../util/getOwn';
|
||||
|
||||
const getActiveCallState = (state: CallingStateType) => state.activeCallState;
|
||||
import { CallingStateType, DirectCallStateType } from '../ducks/calling';
|
||||
import { CallMode, CallState } from '../../types/Calling';
|
||||
|
||||
const getCallsByConversation = (state: CallingStateType) =>
|
||||
state.callsByConversation;
|
||||
|
@ -16,18 +13,14 @@ const getCallsByConversation = (state: CallingStateType) =>
|
|||
// UI are ready to handle this.
|
||||
export const getIncomingCall = createSelector(
|
||||
getCallsByConversation,
|
||||
callsByConversation =>
|
||||
Object.values(callsByConversation).find(
|
||||
call => call.isIncoming && call.callState === CallState.Ringing
|
||||
)
|
||||
(callsByConversation): undefined | DirectCallStateType => {
|
||||
const result = Object.values(callsByConversation).find(
|
||||
call =>
|
||||
call.callMode === CallMode.Direct &&
|
||||
call.isIncoming &&
|
||||
call.callState === CallState.Ringing
|
||||
);
|
||||
// TypeScript needs a little help to be sure that this is a direct call.
|
||||
return result?.callMode === CallMode.Direct ? result : undefined;
|
||||
}
|
||||
);
|
||||
|
||||
export const getActiveCall = createSelector(
|
||||
getActiveCallState,
|
||||
getCallsByConversation,
|
||||
(activeCallState, callsByConversation) =>
|
||||
activeCallState &&
|
||||
getOwn(callsByConversation, activeCallState.conversationId)
|
||||
);
|
||||
|
||||
export const isCallActive = createSelector(getActiveCall, Boolean);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue