jiti-meet/react/features/invite/reducer.js

86 lines
2.1 KiB
JavaScript
Raw Normal View History

// @flow
import { ReducerRegistry } from '../base/redux';
import {
2018-06-26 22:56:22 +00:00
ADD_PENDING_INVITE_REQUEST,
REMOVE_PENDING_INVITE_REQUESTS,
SET_CALLEE_INFO_VISIBLE,
UPDATE_DIAL_IN_NUMBERS_FAILED,
UPDATE_DIAL_IN_NUMBERS_SUCCESS
} from './actionTypes';
import logger from './logger';
const DEFAULT_STATE = {
2018-06-26 22:56:22 +00:00
/**
* The indicator which determines whether (the) {@code CalleeInfo} is
* visible.
*
* @type {boolean|undefined}
*/
calleeInfoVisible: false,
numbersEnabled: true,
numbersFetched: false,
2018-06-26 22:56:22 +00:00
pendingInviteRequests: []
};
ReducerRegistry.register('features/invite', (state = DEFAULT_STATE, action) => {
switch (action.type) {
2018-06-26 22:56:22 +00:00
case ADD_PENDING_INVITE_REQUEST:
return {
...state,
pendingInviteRequests: [
...state.pendingInviteRequests,
action.request
]
};
2018-06-26 22:56:22 +00:00
case REMOVE_PENDING_INVITE_REQUESTS:
return {
...state,
pendingInviteRequests: []
};
case SET_CALLEE_INFO_VISIBLE:
return {
...state,
calleeInfoVisible: action.calleeInfoVisible,
initialCalleeInfo: action.initialCalleeInfo
};
case UPDATE_DIAL_IN_NUMBERS_FAILED:
return {
...state,
error: action.error
};
case UPDATE_DIAL_IN_NUMBERS_SUCCESS: {
if (Array.isArray(action.dialInNumbers)) {
return {
...state,
conferenceID: action.conferenceID,
numbers: action.dialInNumbers,
sipUri: action.sipUri,
numbersEnabled: true,
numbersFetched: true
};
}
// this is the old format which is deprecated
logger.warn('Using deprecated API for retrieving phone numbers');
const { numbersEnabled } = action.dialInNumbers;
return {
...state,
conferenceID: action.conferenceID,
numbers: action.dialInNumbers,
numbersEnabled,
numbersFetched: true
};
}
}
return state;
});