Address review
This commit is contained in:
parent
0a07770c20
commit
6e6ed1b9a2
|
@ -38,6 +38,12 @@ export const CALENDAR_ENABLED = 'calendar.enabled';
|
||||||
*/
|
*/
|
||||||
export const CALL_INTEGRATION_ENABLED = 'call-integration.enabled';
|
export const CALL_INTEGRATION_ENABLED = 'call-integration.enabled';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flag indicating if car mode should be enabled.
|
||||||
|
* Default: enabled (true).
|
||||||
|
*/
|
||||||
|
export const CAR_MODE_ENABLED = 'car-mode.enabled';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flag indicating if close captions should be enabled.
|
* Flag indicating if close captions should be enabled.
|
||||||
* Default: enabled (true).
|
* Default: enabled (true).
|
||||||
|
|
|
@ -52,6 +52,7 @@ const _updateLastN = debounce(({ dispatch, getState }) => {
|
||||||
const config = state['features/base/config'];
|
const config = state['features/base/config'];
|
||||||
const { lastNLimits } = state['features/base/lastn'];
|
const { lastNLimits } = state['features/base/lastn'];
|
||||||
const participantCount = getParticipantCount(state);
|
const participantCount = getParticipantCount(state);
|
||||||
|
const { carMode } = state['features/video-layout'];
|
||||||
|
|
||||||
// Select the (initial) lastN value based on the following preference order.
|
// Select the (initial) lastN value based on the following preference order.
|
||||||
// 1. The last-n value from 'startLastN' if it is specified in config.js
|
// 1. The last-n value from 'startLastN' if it is specified in config.js
|
||||||
|
@ -68,8 +69,10 @@ const _updateLastN = debounce(({ dispatch, getState }) => {
|
||||||
|
|
||||||
if (typeof appState !== 'undefined' && appState !== 'active') {
|
if (typeof appState !== 'undefined' && appState !== 'active') {
|
||||||
lastNSelected = isLocalVideoTrackDesktop(state) ? 1 : 0;
|
lastNSelected = isLocalVideoTrackDesktop(state) ? 1 : 0;
|
||||||
|
} else if (carMode) {
|
||||||
|
lastNSelected = 0;
|
||||||
} else if (audioOnly) {
|
} else if (audioOnly) {
|
||||||
const { remoteScreenShares, tileViewEnabled, carMode } = state['features/video-layout'];
|
const { remoteScreenShares, tileViewEnabled } = state['features/video-layout'];
|
||||||
const largeVideoParticipantId = state['features/large-video'].participantId;
|
const largeVideoParticipantId = state['features/large-video'].participantId;
|
||||||
const largeVideoParticipant
|
const largeVideoParticipant
|
||||||
= largeVideoParticipantId ? getParticipantById(state, largeVideoParticipantId) : undefined;
|
= largeVideoParticipantId ? getParticipantById(state, largeVideoParticipantId) : undefined;
|
||||||
|
@ -77,7 +80,7 @@ const _updateLastN = debounce(({ dispatch, getState }) => {
|
||||||
// Use tileViewEnabled state from redux here instead of determining if client should be in tile
|
// Use tileViewEnabled state from redux here instead of determining if client should be in tile
|
||||||
// view since we make an exception only for screenshare when in audio-only mode. If the user unpins
|
// view since we make an exception only for screenshare when in audio-only mode. If the user unpins
|
||||||
// the screenshare, lastN will be set to 0 here. It will be set to 1 if screenshare has been auto pinned.
|
// the screenshare, lastN will be set to 0 here. It will be set to 1 if screenshare has been auto pinned.
|
||||||
if (!carMode && !tileViewEnabled && largeVideoParticipant && !largeVideoParticipant.local) {
|
if (!tileViewEnabled && largeVideoParticipant && !largeVideoParticipant.local) {
|
||||||
lastNSelected = (remoteScreenShares || []).includes(largeVideoParticipantId) ? 1 : 0;
|
lastNSelected = (remoteScreenShares || []).includes(largeVideoParticipantId) ? 1 : 0;
|
||||||
} else {
|
} else {
|
||||||
lastNSelected = 0;
|
lastNSelected = 0;
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { CAR_MODE_ENABLED, getFeatureFlag } from '../../../base/flags';
|
||||||
import { translate } from '../../../base/i18n';
|
import { translate } from '../../../base/i18n';
|
||||||
import { IconCar } from '../../../base/icons';
|
import { IconCar } from '../../../base/icons';
|
||||||
import { connect } from '../../../base/redux';
|
import { connect } from '../../../base/redux';
|
||||||
|
@ -25,4 +26,21 @@ class OpenCarmodeButton extends AbstractButton<AbstractButtonProps, any, any> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default translate(connect()(OpenCarmodeButton));
|
/**
|
||||||
|
* Maps part of the Redux state to the props of this component.
|
||||||
|
*
|
||||||
|
* @param {Object} state - The Redux state.
|
||||||
|
* @param {AbstractButtonProps} ownProps - The properties explicitly passed to the component instance.
|
||||||
|
* @private
|
||||||
|
* @returns {Object}
|
||||||
|
*/
|
||||||
|
function _mapStateToProps(state: Object, ownProps: AbstractButtonProps): Object {
|
||||||
|
const enabled = getFeatureFlag(state, CAR_MODE_ENABLED, true);
|
||||||
|
const { visible = enabled } = ownProps;
|
||||||
|
|
||||||
|
return {
|
||||||
|
visible
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export default translate(connect(_mapStateToProps)(OpenCarmodeButton));
|
||||||
|
|
|
@ -11,14 +11,14 @@ export const SCREEN_SHARE_REMOTE_PARTICIPANTS_UPDATED
|
||||||
= 'SCREEN_SHARE_REMOTE_PARTICIPANTS_UPDATED';
|
= 'SCREEN_SHARE_REMOTE_PARTICIPANTS_UPDATED';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The type of the action which sets the list of known remote virtual screen share participant IDs.
|
* The type of the action which tells whether we are in carmode.
|
||||||
*
|
*
|
||||||
* @returns {{
|
* @returns {{
|
||||||
* type: VIRTUAL_SCREENSHARE_REMOTE_PARTICIPANTS_UPDATED,
|
* type: SET_CAR_MODE,
|
||||||
* participantIds: Array<string>
|
* enabled: boolean
|
||||||
* }}
|
* }}
|
||||||
*/
|
*/
|
||||||
export const VIRTUAL_SCREENSHARE_REMOTE_PARTICIPANTS_UPDATED = 'VIRTUAL_SCREENSHARE_REMOTE_PARTICIPANTS_UPDATED';
|
export const SET_CAR_MODE = ' SET_CAR_MODE';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The type of the action which enables or disables the feature for showing
|
* The type of the action which enables or disables the feature for showing
|
||||||
|
@ -32,11 +32,11 @@ export const VIRTUAL_SCREENSHARE_REMOTE_PARTICIPANTS_UPDATED = 'VIRTUAL_SCREENSH
|
||||||
export const SET_TILE_VIEW = 'SET_TILE_VIEW';
|
export const SET_TILE_VIEW = 'SET_TILE_VIEW';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The type of the action which tells whether we are in carmode.
|
* The type of the action which sets the list of known remote virtual screen share participant IDs.
|
||||||
*
|
*
|
||||||
* @returns {{
|
* @returns {{
|
||||||
* type: SET_CAR_MODE,
|
* type: VIRTUAL_SCREENSHARE_REMOTE_PARTICIPANTS_UPDATED,
|
||||||
* enabled: boolean
|
* participantIds: Array<string>
|
||||||
* }}
|
* }}
|
||||||
*/
|
*/
|
||||||
export const SET_CAR_MODE = ' SET_CAR_MODE';
|
export const VIRTUAL_SCREENSHARE_REMOTE_PARTICIPANTS_UPDATED = 'VIRTUAL_SCREENSHARE_REMOTE_PARTICIPANTS_UPDATED';
|
||||||
|
|
|
@ -10,6 +10,14 @@ import {
|
||||||
} from './actionTypes';
|
} from './actionTypes';
|
||||||
|
|
||||||
const DEFAULT_STATE = {
|
const DEFAULT_STATE = {
|
||||||
|
/**
|
||||||
|
* Whether we are in carmode.
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
carMode: false,
|
||||||
|
|
||||||
remoteScreenShares: [],
|
remoteScreenShares: [],
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,15 +30,7 @@ const DEFAULT_STATE = {
|
||||||
* @public
|
* @public
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
*/
|
*/
|
||||||
tileViewEnabled: undefined,
|
tileViewEnabled: undefined
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether we are in carmode.
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
* @type {boolean}
|
|
||||||
*/
|
|
||||||
carMode: false
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const STORE_NAME = 'features/video-layout';
|
const STORE_NAME = 'features/video-layout';
|
||||||
|
@ -44,17 +44,17 @@ ReducerRegistry.register(STORE_NAME, (state = DEFAULT_STATE, action) => {
|
||||||
remoteScreenShares: action.participantIds
|
remoteScreenShares: action.participantIds
|
||||||
};
|
};
|
||||||
|
|
||||||
case SET_TILE_VIEW:
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
tileViewEnabled: action.enabled
|
|
||||||
};
|
|
||||||
|
|
||||||
case SET_CAR_MODE:
|
case SET_CAR_MODE:
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
carMode: action.enabled
|
carMode: action.enabled
|
||||||
};
|
};
|
||||||
|
|
||||||
|
case SET_TILE_VIEW:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
tileViewEnabled: action.enabled
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
return state;
|
return state;
|
||||||
|
|
Loading…
Reference in New Issue