fix(Prejoin): Allow changing 'Enable pre meeting screen' option while prejoin screen visible
This commit is contained in:
parent
35b76a2f7c
commit
d2619b4dd3
|
@ -15,9 +15,9 @@ export const PREJOIN_INITIALIZED = 'PREJOIN_INITIALIZED';
|
||||||
export const SET_DEVICE_STATUS = 'SET_DEVICE_STATUS';
|
export const SET_DEVICE_STATUS = 'SET_DEVICE_STATUS';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Action type to set the visibility of the prejoin page for the future.
|
* Action type to mark the fact that the 'skip prejoin' option was modified this session.
|
||||||
*/
|
*/
|
||||||
export const SET_SKIP_PREJOIN = 'SET_SKIP_PREJOIN';
|
export const SET_SKIP_PREJOIN_CHANGING = 'SET_SKIP_PREJOIN_CHANGING';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Action type to set the visibility of the prejoin page when client is forcefully reloaded.
|
* Action type to set the visibility of the prejoin page when client is forcefully reloaded.
|
||||||
|
|
|
@ -8,7 +8,6 @@ import { v4 as uuidv4 } from 'uuid';
|
||||||
import { getDialOutStatusUrl, getDialOutUrl, updateConfig } from '../base/config';
|
import { getDialOutStatusUrl, getDialOutUrl, updateConfig } from '../base/config';
|
||||||
import { browser, createLocalTrack } from '../base/lib-jitsi-meet';
|
import { browser, createLocalTrack } from '../base/lib-jitsi-meet';
|
||||||
import { isVideoMutedByUser, MEDIA_TYPE } from '../base/media';
|
import { isVideoMutedByUser, MEDIA_TYPE } from '../base/media';
|
||||||
import { updateSettings } from '../base/settings';
|
|
||||||
import {
|
import {
|
||||||
createLocalTracksF,
|
createLocalTracksF,
|
||||||
getLocalAudioTrack,
|
getLocalAudioTrack,
|
||||||
|
@ -28,7 +27,7 @@ import {
|
||||||
SET_DIALOUT_NUMBER,
|
SET_DIALOUT_NUMBER,
|
||||||
SET_DIALOUT_STATUS,
|
SET_DIALOUT_STATUS,
|
||||||
SET_PREJOIN_DISPLAY_NAME_REQUIRED,
|
SET_PREJOIN_DISPLAY_NAME_REQUIRED,
|
||||||
SET_SKIP_PREJOIN,
|
SET_SKIP_PREJOIN_CHANGING,
|
||||||
SET_SKIP_PREJOIN_RELOAD,
|
SET_SKIP_PREJOIN_RELOAD,
|
||||||
SET_JOIN_BY_PHONE_DIALOG_VISIBLITY,
|
SET_JOIN_BY_PHONE_DIALOG_VISIBLITY,
|
||||||
SET_PRECALL_TEST_RESULTS,
|
SET_PRECALL_TEST_RESULTS,
|
||||||
|
@ -228,15 +227,10 @@ export function joinConference(options?: Object, ignoreJoiningInProgress: boolea
|
||||||
}
|
}
|
||||||
|
|
||||||
const state = getState();
|
const state = getState();
|
||||||
const { userSelectedSkipPrejoin } = state['features/prejoin'];
|
|
||||||
let localTracks = getLocalTracks(state['features/base/tracks']);
|
let localTracks = getLocalTracks(state['features/base/tracks']);
|
||||||
|
|
||||||
options && dispatch(updateConfig(options));
|
options && dispatch(updateConfig(options));
|
||||||
|
|
||||||
userSelectedSkipPrejoin && dispatch(updateSettings({
|
|
||||||
userSelectedSkipPrejoin
|
|
||||||
}));
|
|
||||||
|
|
||||||
// Do not signal audio/video tracks if the user joins muted.
|
// Do not signal audio/video tracks if the user joins muted.
|
||||||
for (const track of localTracks) {
|
for (const track of localTracks) {
|
||||||
// Always add the audio track on Safari because of a known issue where audio playout doesn't happen
|
// Always add the audio track on Safari because of a known issue where audio playout doesn't happen
|
||||||
|
@ -484,14 +478,15 @@ export function setDialOutNumber(value: string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the visibility of the prejoin page for future uses.
|
* Sets a flag which signals that the option to skip the prejoin
|
||||||
|
* page on join has been modified during this session.
|
||||||
*
|
*
|
||||||
* @param {boolean} value - The visibility value.
|
* @param {boolean} value - The visibility value.
|
||||||
* @returns {Object}
|
* @returns {Object}
|
||||||
*/
|
*/
|
||||||
export function setSkipPrejoin(value: boolean) {
|
export function setSkipPrejoinIsChanging(value: boolean) {
|
||||||
return {
|
return {
|
||||||
type: SET_SKIP_PREJOIN,
|
type: SET_SKIP_PREJOIN_CHANGING,
|
||||||
value
|
value
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,16 +36,6 @@ export function isDisplayNameRequired(state: Object): boolean {
|
||||||
|| state['features/base/config'].requireDisplayName;
|
|| state['features/base/config'].requireDisplayName;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Selector for determining if the user has chosen to skip prejoin page.
|
|
||||||
*
|
|
||||||
* @param {Object} state - The state of the app.
|
|
||||||
* @returns {boolean}
|
|
||||||
*/
|
|
||||||
export function isPrejoinSkipped(state: Object) {
|
|
||||||
return state['features/prejoin'].userSelectedSkipPrejoin;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the text for the prejoin status bar.
|
* Returns the text for the prejoin status bar.
|
||||||
*
|
*
|
||||||
|
@ -160,6 +150,12 @@ export function isPrejoinPageEnabled(state: Object): boolean {
|
||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
export function isPrejoinPageVisible(state: Object): boolean {
|
export function isPrejoinPageVisible(state: Object): boolean {
|
||||||
|
// If the user has changed the setting for prejoin visibility on start
|
||||||
|
// let the visibility be controlled only by the 'showPrejoin' flag.
|
||||||
|
if (state['features/prejoin'].skipPrejoinChanging) {
|
||||||
|
return state['features/prejoin']?.showPrejoin;
|
||||||
|
}
|
||||||
|
|
||||||
return isPrejoinPageEnabled(state) && state['features/prejoin']?.showPrejoin;
|
return isPrejoinPageEnabled(state) && state['features/prejoin']?.showPrejoin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ import {
|
||||||
SET_PREJOIN_DEVICE_ERRORS,
|
SET_PREJOIN_DEVICE_ERRORS,
|
||||||
SET_PREJOIN_DISPLAY_NAME_REQUIRED,
|
SET_PREJOIN_DISPLAY_NAME_REQUIRED,
|
||||||
SET_PREJOIN_PAGE_VISIBILITY,
|
SET_PREJOIN_PAGE_VISIBILITY,
|
||||||
SET_SKIP_PREJOIN,
|
SET_SKIP_PREJOIN_CHANGING,
|
||||||
SET_SKIP_PREJOIN_RELOAD
|
SET_SKIP_PREJOIN_RELOAD
|
||||||
} from './actionTypes';
|
} from './actionTypes';
|
||||||
|
|
||||||
|
@ -30,9 +30,9 @@ const DEFAULT_STATE = {
|
||||||
name: '',
|
name: '',
|
||||||
rawError: '',
|
rawError: '',
|
||||||
showPrejoin: true,
|
showPrejoin: true,
|
||||||
|
skipPrejoinChanging: false,
|
||||||
skipPrejoinOnReload: false,
|
skipPrejoinOnReload: false,
|
||||||
showJoinByPhoneDialog: false,
|
showJoinByPhoneDialog: false
|
||||||
userSelectedSkipPrejoin: false
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,10 +59,10 @@ ReducerRegistry.register(
|
||||||
...state,
|
...state,
|
||||||
joiningInProgress: action.value
|
joiningInProgress: action.value
|
||||||
};
|
};
|
||||||
case SET_SKIP_PREJOIN: {
|
case SET_SKIP_PREJOIN_CHANGING: {
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
userSelectedSkipPrejoin: action.value
|
skipPrejoinChanging: action.value
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ import { openDialog } from '../base/dialog';
|
||||||
import { i18next } from '../base/i18n';
|
import { i18next } from '../base/i18n';
|
||||||
import { updateSettings } from '../base/settings';
|
import { updateSettings } from '../base/settings';
|
||||||
import { NOTIFICATION_TIMEOUT_TYPE, showNotification } from '../notifications';
|
import { NOTIFICATION_TIMEOUT_TYPE, showNotification } from '../notifications';
|
||||||
import { setPrejoinPageVisibility } from '../prejoin/actions';
|
import { setPrejoinPageVisibility, setSkipPrejoinIsChanging } from '../prejoin/actions';
|
||||||
import { setScreenshareFramerate } from '../screen-share/actions';
|
import { setScreenshareFramerate } from '../screen-share/actions';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
@ -96,9 +96,12 @@ export function submitMoreTab(newState: Object): Function {
|
||||||
if (showPrejoinPage && getState()['features/prejoin']?.showPrejoin) {
|
if (showPrejoinPage && getState()['features/prejoin']?.showPrejoin) {
|
||||||
dispatch(setPrejoinPageVisibility(false));
|
dispatch(setPrejoinPageVisibility(false));
|
||||||
}
|
}
|
||||||
|
batch(() => {
|
||||||
|
dispatch(setSkipPrejoinIsChanging(true));
|
||||||
dispatch(updateSettings({
|
dispatch(updateSettings({
|
||||||
userSelectedSkipPrejoin: !showPrejoinPage
|
userSelectedSkipPrejoin: !showPrejoinPage
|
||||||
}));
|
}));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newState.currentLanguage !== currentState.currentLanguage) {
|
if (newState.currentLanguage !== currentState.currentLanguage) {
|
||||||
|
|
Loading…
Reference in New Issue