diff --git a/react/features/app/actions.any.ts b/react/features/app/actions.any.ts index b72e08195c17..c59124611bed 100644 --- a/react/features/app/actions.any.ts +++ b/react/features/app/actions.any.ts @@ -108,7 +108,7 @@ export function maybeRedirectToTokenAuthUrl( const state = getState(); const config = state['features/base/config']; const { enabled: audioOnlyEnabled } = state['features/base/audio-only']; - const { startAudioOnly } = config; + const { hideConferenceTimer, startAudioOnly } = config; const { locationURL = { href: '' } as URL } = state['features/base/connection']; const audioMuted = isLocalTrackMuted(state['features/base/tracks'], MEDIA_TYPE.AUDIO); const videoMuted = isLocalTrackMuted(state['features/base/tracks'], MEDIA_TYPE.VIDEO); @@ -133,6 +133,7 @@ export function maybeRedirectToTokenAuthUrl( { audioMuted, audioOnlyEnabled: audioOnlyEnabled || startAudioOnly, + hideConferenceTimer, skipPrejoin: true, videoMuted }, diff --git a/react/features/app/getRouteToRender.web.ts b/react/features/app/getRouteToRender.web.ts index 4b354718e255..4a552bd5b45d 100644 --- a/react/features/app/getRouteToRender.web.ts +++ b/react/features/app/getRouteToRender.web.ts @@ -55,7 +55,7 @@ function _getWebConferenceRoute(state: IReduxState) { && !state['features/base/jwt'].jwt && room) { const { locationURL = { href: '' } as URL } = state['features/base/connection']; const { tenant } = parseURIString(locationURL.href) || {}; - const { startAudioOnly } = config; + const { hideConferenceTimer, startAudioOnly } = config; return getTokenAuthUrl( config, @@ -63,6 +63,7 @@ function _getWebConferenceRoute(state: IReduxState) { { audioMuted: false, audioOnlyEnabled: startAudioOnly, + hideConferenceTimer, skipPrejoin: false, videoMuted: false }, diff --git a/react/features/authentication/functions.any.ts b/react/features/authentication/functions.any.ts index 1025e4b4d7ed..e7e7629bd081 100644 --- a/react/features/authentication/functions.any.ts +++ b/react/features/authentication/functions.any.ts @@ -17,6 +17,7 @@ export const isTokenAuthEnabled = (config: IConfig): boolean => * @param {Object} options: - Config options { * audioMuted: boolean | undefined * audioOnlyEnabled: boolean | undefined, + * hideConferenceTimer: boolean | undefined, * skipPrejoin: boolean | undefined, * videoMuted: boolean | undefined * }. @@ -30,6 +31,7 @@ export const _getTokenAuthState = ( options: { audioMuted: boolean | undefined; audioOnlyEnabled: boolean | undefined; + hideConferenceTimer: boolean | undefined; skipPrejoin: boolean | undefined; videoMuted: boolean | undefined; }, @@ -44,6 +46,7 @@ export const _getTokenAuthState = ( const { audioMuted = false, audioOnlyEnabled = false, + hideConferenceTimer = false, skipPrejoin = false, videoMuted = false } = options; @@ -72,6 +75,12 @@ export const _getTokenAuthState = ( state['config.startWithVideoMuted'] = true; } + if (hideConferenceTimer) { + + // @ts-ignore + state['config.hideConferenceTimer'] = true; + } + const params = new URLSearchParams(locationURL.hash); for (const [ key, value ] of params) { diff --git a/react/features/authentication/functions.native.ts b/react/features/authentication/functions.native.ts index 64e17d4bcd26..c7e8329932be 100644 --- a/react/features/authentication/functions.native.ts +++ b/react/features/authentication/functions.native.ts @@ -18,6 +18,7 @@ export * from './functions.any'; * @param {Object} options: - Config options { * audioMuted: boolean | undefined * audioOnlyEnabled: boolean | undefined, + * hideConferenceTimer: boolean | undefined, * skipPrejoin: boolean | undefined, * videoMuted: boolean | undefined * }. @@ -34,6 +35,7 @@ export const getTokenAuthUrl = ( options: { audioMuted: boolean | undefined; audioOnlyEnabled: boolean | undefined; + hideConferenceTimer: boolean | undefined; skipPrejoin: boolean | undefined; videoMuted: boolean | undefined; }, @@ -44,6 +46,7 @@ export const getTokenAuthUrl = ( const { audioMuted = false, audioOnlyEnabled = false, + hideConferenceTimer = false, skipPrejoin = false, videoMuted = false } = options; @@ -60,6 +63,7 @@ export const getTokenAuthUrl = ( { audioMuted, audioOnlyEnabled, + hideConferenceTimer, skipPrejoin, videoMuted }, diff --git a/react/features/authentication/functions.web.ts b/react/features/authentication/functions.web.ts index d94b154bde74..9083247af61b 100644 --- a/react/features/authentication/functions.web.ts +++ b/react/features/authentication/functions.web.ts @@ -36,6 +36,7 @@ function _cryptoRandom() { * @param {Object} options: - Config options { * audioMuted: boolean | undefined * audioOnlyEnabled: boolean | undefined, + * hideConferenceTimer: boolean | undefined, * skipPrejoin: boolean | undefined, * videoMuted: boolean | undefined * }. @@ -52,6 +53,7 @@ export const getTokenAuthUrl = ( options: { audioMuted: boolean | undefined; audioOnlyEnabled: boolean | undefined; + hideConferenceTimer: boolean | undefined; skipPrejoin: boolean | undefined; videoMuted: boolean | undefined; }, @@ -62,6 +64,7 @@ export const getTokenAuthUrl = ( const { audioMuted = false, audioOnlyEnabled = false, + hideConferenceTimer = false, skipPrejoin = false, videoMuted = false } = options; @@ -78,6 +81,7 @@ export const getTokenAuthUrl = ( { audioMuted, audioOnlyEnabled, + hideConferenceTimer, skipPrejoin, videoMuted }, diff --git a/react/features/authentication/middleware.ts b/react/features/authentication/middleware.ts index 75a4597d5c7a..27d68410ae18 100644 --- a/react/features/authentication/middleware.ts +++ b/react/features/authentication/middleware.ts @@ -256,6 +256,7 @@ function _isWaitingForOwner({ getState }: IStore) { function _handleLogin({ dispatch, getState }: IStore) { const state = getState(); const config = state['features/base/config']; + const { hideConferenceTimer } = config; const room = state['features/base/conference'].room; const { locationURL = { href: '' } as URL } = state['features/base/connection']; const { tenant } = parseURIString(locationURL.href) || {}; @@ -281,6 +282,7 @@ function _handleLogin({ dispatch, getState }: IStore) { { audioMuted, audioOnlyEnabled, + hideConferenceTimer, skipPrejoin: true, videoMuted },