1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import { IConfig } from '../base/config/configType';
- import { getBackendSafeRoomName } from '../base/util/uri';
-
- /**
- * Checks if the token for authentication is available.
- *
- * @param {Object} config - Configuration state object from store.
- * @returns {boolean}
- */
- export const isTokenAuthEnabled = (config: IConfig): boolean =>
- typeof config.tokenAuthUrl === 'string' && config.tokenAuthUrl.length > 0;
-
- /**
- * Returns the state that we can add as a parameter to the tokenAuthUrl.
- *
- * @param {URL} locationURL - The location URL.
- * @param {Object} options: - Config options {
- * audioMuted: boolean | undefined
- * audioOnlyEnabled: boolean | undefined,
- * skipPrejoin: boolean | undefined,
- * videoMuted: boolean | undefined
- * }.
- * @param {string?} roomName - The room name.
- * @param {string?} tenant - The tenant name if any.
- *
- * @returns {Object} The state object.
- */
- export const _getTokenAuthState = (
- locationURL: URL,
- options: {
- audioMuted: boolean | undefined;
- audioOnlyEnabled: boolean | undefined;
- skipPrejoin: boolean | undefined;
- videoMuted: boolean | undefined;
- },
- roomName: string | undefined,
- tenant: string | undefined): object => {
- const state = {
- room: roomName,
- roomSafe: getBackendSafeRoomName(roomName),
- tenant
- };
-
- const {
- audioMuted = false,
- audioOnlyEnabled = false,
- skipPrejoin = false,
- videoMuted = false
- } = options;
-
- if (audioMuted) {
-
- // @ts-ignore
- state['config.startWithAudioMuted'] = true;
- }
-
- if (audioOnlyEnabled) {
-
- // @ts-ignore
- state['config.startAudioOnly'] = true;
- }
-
- if (skipPrejoin) {
- // We have already shown the prejoin screen, no need to show it again after obtaining the token.
- // @ts-ignore
- state['config.prejoinConfig.enabled'] = false;
- }
-
- if (videoMuted) {
-
- // @ts-ignore
- state['config.startWithVideoMuted'] = true;
- }
-
- const params = new URLSearchParams(locationURL.hash);
-
- for (const [ key, value ] of params) {
- // we allow only config and interfaceConfig overrides in the state
- if (key.startsWith('config.') || key.startsWith('interfaceConfig.')) {
- // @ts-ignore
- state[key] = value;
- }
- }
-
- return state;
- };
|