ref(TS) Convert some files to TS (#12364)
This commit is contained in:
parent
dd6478b3cf
commit
2a321d6b1f
|
@ -20,4 +20,6 @@ declare global {
|
|||
}
|
||||
|
||||
const config: IConfig;
|
||||
|
||||
const JitsiMeetJS: any;
|
||||
}
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { getLocationContextRoot } from '../base/util';
|
||||
import { getLocationContextRoot } from '../base/util/uri';
|
||||
|
||||
import { addTrackStateToURL } from './functions.any';
|
||||
import { IStore } from './types';
|
||||
|
||||
/**
|
||||
* Redirects to another page generated by replacing the path in the original URL
|
||||
|
@ -14,9 +11,9 @@ import { addTrackStateToURL } from './functions.any';
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function redirectWithStoredParams(pathname: string) {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
const { locationURL } = getState()['features/base/connection'];
|
||||
const newLocationURL = new URL(locationURL.href);
|
||||
const newLocationURL = new URL(locationURL?.href ?? '');
|
||||
|
||||
newLocationURL.pathname = pathname;
|
||||
window.location.assign(newLocationURL.toString());
|
||||
|
@ -35,7 +32,7 @@ export function redirectWithStoredParams(pathname: string) {
|
|||
* window.location.hash.
|
||||
* @returns {Function}
|
||||
*/
|
||||
export function redirectToStaticPage(pathname: string, hashParam: ?string) {
|
||||
export function redirectToStaticPage(pathname: string, hashParam?: string) {
|
||||
return () => {
|
||||
const windowLocation = window.location;
|
||||
let newPathname = pathname;
|
||||
|
@ -63,11 +60,12 @@ export function redirectToStaticPage(pathname: string, hashParam: ?string) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function reloadWithStoredParams() {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
const state = getState();
|
||||
const { locationURL } = state['features/base/connection'];
|
||||
|
||||
// Preserve the local tracks muted states.
|
||||
// @ts-ignore
|
||||
const newURL = addTrackStateToURL(locationURL, state);
|
||||
const windowLocation = window.location;
|
||||
const oldSearchString = windowLocation.search;
|
|
@ -1,44 +1,35 @@
|
|||
// @flow
|
||||
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
// @ts-expect-error
|
||||
import { API_ID } from '../../../modules/API';
|
||||
import { setRoom } from '../base/conference';
|
||||
import { setRoom } from '../base/conference/actions';
|
||||
import {
|
||||
configWillLoad,
|
||||
createFakeConfig,
|
||||
loadConfigError,
|
||||
restoreConfig,
|
||||
setConfig,
|
||||
storeConfig
|
||||
} from '../base/config';
|
||||
import { setLocationURL } from '../base/connection';
|
||||
} from '../base/config/actions';
|
||||
import { createFakeConfig, restoreConfig } from '../base/config/functions.web';
|
||||
import { setLocationURL } from '../base/connection/actions.web';
|
||||
import { loadConfig } from '../base/lib-jitsi-meet/functions.web';
|
||||
import { inIframe } from '../base/util/iframeUtils';
|
||||
import { parseURLParams } from '../base/util/parseURLParams';
|
||||
import {
|
||||
appendURLParam,
|
||||
getBackendSafeRoomName,
|
||||
parseURIString,
|
||||
parseURLParams
|
||||
} from '../base/util';
|
||||
import { inIframe } from '../base/util/iframeUtils';
|
||||
parseURIString
|
||||
} from '../base/util/uri';
|
||||
import { isVpaasMeeting } from '../jaas/functions';
|
||||
import {
|
||||
NOTIFICATION_TIMEOUT_TYPE,
|
||||
clearNotifications,
|
||||
showNotification
|
||||
} from '../notifications';
|
||||
import { setFatalError } from '../overlay';
|
||||
import { clearNotifications, showNotification } from '../notifications/actions';
|
||||
import { NOTIFICATION_TIMEOUT_TYPE } from '../notifications/constants';
|
||||
import { setFatalError } from '../overlay/actions';
|
||||
|
||||
import {
|
||||
redirectToStaticPage,
|
||||
redirectWithStoredParams,
|
||||
reloadWithStoredParams
|
||||
} from './actions.any';
|
||||
import { getDefaultURL, getName } from './functions';
|
||||
import { getDefaultURL, getName } from './functions.web';
|
||||
import logger from './logger';
|
||||
|
||||
|
||||
declare var interfaceConfig: Object;
|
||||
import { IStore } from './types';
|
||||
|
||||
export * from './actions.any';
|
||||
|
||||
|
@ -52,8 +43,8 @@ export * from './actions.any';
|
|||
* scheme, or a mere room name.
|
||||
* @returns {Function}
|
||||
*/
|
||||
export function appNavigate(uri: ?string) {
|
||||
return async (dispatch: Dispatch<any>, getState: Function) => {
|
||||
export function appNavigate(uri?: string) {
|
||||
return async (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
let location = parseURIString(uri);
|
||||
|
||||
// If the specified location (URI) does not identify a host, use the app's
|
||||
|
@ -96,7 +87,7 @@ export function appNavigate(uri: ?string) {
|
|||
let url = `${baseURL}config.js`;
|
||||
|
||||
// XXX In order to support multiple shards, tell the room to the deployment.
|
||||
room && (url = appendURLParam(url, 'room', getBackendSafeRoomName(room)));
|
||||
room && (url = appendURLParam(url, 'room', getBackendSafeRoomName(room) ?? ''));
|
||||
|
||||
const { release } = parseURLParams(location, true, 'search');
|
||||
|
||||
|
@ -113,7 +104,7 @@ export function appNavigate(uri: ?string) {
|
|||
try {
|
||||
config = await loadConfig(url);
|
||||
dispatch(storeConfig(baseURL, config));
|
||||
} catch (error) {
|
||||
} catch (error: any) {
|
||||
config = restoreConfig(baseURL);
|
||||
|
||||
if (!config) {
|
||||
|
@ -155,8 +146,8 @@ export function appNavigate(uri: ?string) {
|
|||
* @param {boolean} options.feedbackSubmitted - Whether feedback was submitted.
|
||||
* @returns {Function}
|
||||
*/
|
||||
export function maybeRedirectToWelcomePage(options: Object = {}) {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
export function maybeRedirectToWelcomePage(options: { feedbackSubmitted?: boolean; showThankYou?: boolean; } = {}) {
|
||||
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
|
||||
const {
|
||||
enableClosePage
|
||||
|
@ -168,6 +159,7 @@ export function maybeRedirectToWelcomePage(options: Object = {}) {
|
|||
const isOpenedInIframe = inIframe();
|
||||
|
||||
if (isOpenedInIframe) {
|
||||
// @ts-ignore
|
||||
window.location = 'about:blank';
|
||||
} else {
|
||||
dispatch(redirectToStaticPage('/'));
|
||||
|
@ -182,8 +174,8 @@ export function maybeRedirectToWelcomePage(options: Object = {}) {
|
|||
|
||||
// save whether current user is guest or not, and pass auth token,
|
||||
// before navigating to close page
|
||||
window.sessionStorage.setItem('guest', !jwt);
|
||||
window.sessionStorage.setItem('jwt', jwt);
|
||||
window.sessionStorage.setItem('guest', (!jwt).toString());
|
||||
window.sessionStorage.setItem('jwt', jwt ?? '');
|
||||
|
||||
let path = 'close.html';
|
||||
|
||||
|
@ -228,7 +220,7 @@ export function maybeRedirectToWelcomePage(options: Object = {}) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function reloadNow() {
|
||||
return (dispatch: Dispatch<Function>, getState: Function) => {
|
||||
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
dispatch(setFatalError(undefined));
|
||||
|
||||
const state = getState();
|
|
@ -1,7 +1,8 @@
|
|||
import { MEDIA_TYPE } from '../base/media';
|
||||
import { toState } from '../base/redux';
|
||||
import { isLocalCameraTrackMuted, isLocalTrackMuted } from '../base/tracks';
|
||||
import { addHashParamsToURL } from '../base/util';
|
||||
import { IStateful } from '../base/app/types';
|
||||
import { MEDIA_TYPE } from '../base/media/constants';
|
||||
import { toState } from '../base/redux/functions';
|
||||
import { isLocalCameraTrackMuted, isLocalTrackMuted } from '../base/tracks/functions';
|
||||
import { addHashParamsToURL } from '../base/util/uri';
|
||||
|
||||
/**
|
||||
* Adds the current track state to the passed URL.
|
||||
|
@ -10,7 +11,7 @@ import { addHashParamsToURL } from '../base/util';
|
|||
* @param {Function|Object} stateful - The redux store or {@code getState} function.
|
||||
* @returns {URL} - Returns the modified URL.
|
||||
*/
|
||||
export function addTrackStateToURL(url, stateful) {
|
||||
export function addTrackStateToURL(url: string, stateful: IStateful) {
|
||||
const state = toState(stateful);
|
||||
const tracks = state['features/base/tracks'];
|
||||
const isVideoMuted = isLocalCameraTrackMuted(tracks);
|
|
@ -1,12 +1,9 @@
|
|||
// @flow
|
||||
|
||||
import { toState } from '../base/redux';
|
||||
import { getServerURL } from '../base/settings';
|
||||
import { IStateful } from '../base/app/types';
|
||||
import { toState } from '../base/redux/functions';
|
||||
import { getServerURL } from '../base/settings/functions.web';
|
||||
|
||||
export * from './functions.any';
|
||||
|
||||
declare var interfaceConfig: Object;
|
||||
|
||||
/**
|
||||
* Retrieves the default URL for the app. This can either come from a prop to
|
||||
* the root App component or be configured in the settings.
|
||||
|
@ -15,7 +12,7 @@ declare var interfaceConfig: Object;
|
|||
* function.
|
||||
* @returns {string} - Default URL for the app.
|
||||
*/
|
||||
export function getDefaultURL(stateful: Function | Object) {
|
||||
export function getDefaultURL(stateful: IStateful) {
|
||||
const state = toState(stateful);
|
||||
const { href } = window.location;
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
// @flow
|
||||
|
||||
import { getLogger } from '../base/logging/functions';
|
||||
|
||||
export default getLogger('features/app');
|
|
@ -1,15 +1,15 @@
|
|||
// @flow
|
||||
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { checkIfCanJoin } from '../base/conference';
|
||||
import { openDialog } from '../base/dialog';
|
||||
import { IStore } from '../app/types';
|
||||
import { checkIfCanJoin } from '../base/conference/actions';
|
||||
import { IJitsiConference } from '../base/conference/reducer';
|
||||
import { openDialog } from '../base/dialog/actions';
|
||||
|
||||
import {
|
||||
STOP_WAIT_FOR_OWNER,
|
||||
UPGRADE_ROLE_FINISHED,
|
||||
UPGRADE_ROLE_STARTED, WAIT_FOR_OWNER
|
||||
} from './actionTypes';
|
||||
// eslint-disable-next-line lines-around-comment
|
||||
// @ts-ignore
|
||||
import { LoginDialog, WaitForOwnerDialog } from './components';
|
||||
import logger from './logger';
|
||||
|
||||
|
@ -28,8 +28,8 @@ import logger from './logger';
|
|||
export function authenticateAndUpgradeRole(
|
||||
id: string,
|
||||
password: string,
|
||||
conference: Object) {
|
||||
return (dispatch: Dispatch<any>) => {
|
||||
conference: IJitsiConference) {
|
||||
return (dispatch: IStore['dispatch']) => {
|
||||
const process
|
||||
= conference.authenticateAndUpgradeRole({
|
||||
id,
|
||||
|
@ -45,7 +45,7 @@ export function authenticateAndUpgradeRole(
|
|||
dispatch(_upgradeRoleStarted(process));
|
||||
process.then(
|
||||
/* onFulfilled */ () => dispatch(_upgradeRoleFinished(process, 1)),
|
||||
/* onRejected */ error => {
|
||||
/* onRejected */ (error: any) => {
|
||||
// The lack of an error signals a cancellation.
|
||||
if (error.authenticationError || error.connectionError) {
|
||||
logger.error('authenticateAndUpgradeRole failed', error);
|
||||
|
@ -78,8 +78,8 @@ export function authenticateAndUpgradeRole(
|
|||
* }}
|
||||
*/
|
||||
function _upgradeRoleFinished(
|
||||
thenableWithCancel,
|
||||
progressOrError: number | Object) {
|
||||
thenableWithCancel: Object,
|
||||
progressOrError: number | any) {
|
||||
let error;
|
||||
let progress;
|
||||
|
||||
|
@ -121,7 +121,7 @@ function _upgradeRoleFinished(
|
|||
* thenableWithCancel: Object
|
||||
* }}
|
||||
*/
|
||||
function _upgradeRoleStarted(thenableWithCancel) {
|
||||
function _upgradeRoleStarted(thenableWithCancel: Object) {
|
||||
return {
|
||||
type: UPGRADE_ROLE_STARTED,
|
||||
thenableWithCancel
|
||||
|
@ -159,7 +159,7 @@ export function stopWaitForOwner() {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function waitForOwner() {
|
||||
return (dispatch: Dispatch<any>) =>
|
||||
return (dispatch: IStore['dispatch']) =>
|
||||
dispatch({
|
||||
type: WAIT_FOR_OWNER,
|
||||
handler: () => dispatch(checkIfCanJoin()),
|
|
@ -1,11 +1,12 @@
|
|||
// @flow
|
||||
|
||||
import { maybeRedirectToWelcomePage } from '../app/actions';
|
||||
import { maybeRedirectToWelcomePage } from '../app/actions.web';
|
||||
import { IStore } from '../app/types';
|
||||
import { hideDialog, openDialog } from '../base/dialog/actions';
|
||||
|
||||
import {
|
||||
CANCEL_LOGIN
|
||||
} from './actionTypes';
|
||||
// eslint-disable-next-line lines-around-comment
|
||||
// @ts-ignore
|
||||
import { LoginDialog, WaitForOwnerDialog } from './components';
|
||||
|
||||
export * from './actions.any';
|
||||
|
@ -30,7 +31,7 @@ export function cancelLogin() {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function cancelWaitForOwner() {
|
||||
return (dispatch: Function) => {
|
||||
return (dispatch: IStore['dispatch']) => {
|
||||
dispatch(maybeRedirectToWelcomePage());
|
||||
};
|
||||
}
|
||||
|
@ -55,7 +56,7 @@ export function hideLoginDialog() {
|
|||
*
|
||||
* @returns {Function}.
|
||||
*/
|
||||
export function openAuthDialog(room: String, onAuthNow: ?Function) {
|
||||
export function openAuthDialog(room: String, onAuthNow?: Function) {
|
||||
return openDialog(WaitForOwnerDialog, {
|
||||
room,
|
||||
onAuthNow
|
|
@ -5,6 +5,7 @@ import { WithTranslation } from 'react-i18next';
|
|||
// @ts-ignore
|
||||
import { connect } from '../../../../../connection';
|
||||
import { IState, IStore } from '../../../app/types';
|
||||
import { IJitsiConference } from '../../../base/conference/reducer';
|
||||
import { IConfig } from '../../../base/config/configType';
|
||||
import { toJid } from '../../../base/connection/functions';
|
||||
import { translate, translateToHTML } from '../../../base/i18n/functions';
|
||||
|
@ -15,7 +16,6 @@ import Input from '../../../base/ui/components/web/Input';
|
|||
import {
|
||||
authenticateAndUpgradeRole,
|
||||
cancelLogin
|
||||
// @ts-ignore
|
||||
} from '../../actions.web';
|
||||
|
||||
/**
|
||||
|
@ -27,7 +27,7 @@ interface Props extends WithTranslation {
|
|||
* {@link JitsiConference} That needs authentication - will hold a valid
|
||||
* value in XMPP login + guest access mode.
|
||||
*/
|
||||
_conference: Object;
|
||||
_conference: IJitsiConference;
|
||||
|
||||
/**
|
||||
* The server hosts specified in the global config.
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// @flow
|
||||
|
||||
import { getLogger } from '../base/logging/functions';
|
||||
|
||||
export default getLogger('features/authentication');
|
|
@ -1,42 +1,37 @@
|
|||
// @flow
|
||||
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import {
|
||||
createStartMutedConfigurationEvent,
|
||||
sendAnalytics
|
||||
} from '../../analytics';
|
||||
/* eslint-disable lines-around-comment */
|
||||
import { createStartMutedConfigurationEvent } from '../../analytics/AnalyticsEvents';
|
||||
import { sendAnalytics } from '../../analytics/functions';
|
||||
// @ts-ignore
|
||||
import { appNavigate } from '../../app/actions';
|
||||
import { endpointMessageReceived } from '../../subtitles';
|
||||
import { IState, IStore } from '../../app/types';
|
||||
import { endpointMessageReceived } from '../../subtitles/actions.any';
|
||||
// @ts-ignore
|
||||
import { getReplaceParticipant } from '../config/functions';
|
||||
import { JITSI_CONNECTION_CONFERENCE_KEY, disconnect } from '../connection';
|
||||
// @ts-ignore
|
||||
import { disconnect } from '../connection/actions';
|
||||
import { JITSI_CONNECTION_CONFERENCE_KEY } from '../connection/constants';
|
||||
import { JitsiConferenceEvents, JitsiE2ePingEvents } from '../lib-jitsi-meet';
|
||||
import {
|
||||
MEDIA_TYPE,
|
||||
setAudioMuted,
|
||||
setAudioUnmutePermissions,
|
||||
setVideoMuted,
|
||||
setVideoUnmutePermissions
|
||||
} from '../media';
|
||||
import { setAudioMuted, setAudioUnmutePermissions, setVideoMuted, setVideoUnmutePermissions } from '../media/actions';
|
||||
import { MEDIA_TYPE } from '../media/constants';
|
||||
import {
|
||||
dominantSpeakerChanged,
|
||||
getNormalizedDisplayName,
|
||||
participantConnectionStatusChanged,
|
||||
participantKicked,
|
||||
participantMutedUs,
|
||||
participantPresenceChanged,
|
||||
participantRoleChanged,
|
||||
participantUpdated
|
||||
} from '../participants';
|
||||
import { toState } from '../redux';
|
||||
} from '../participants/actions';
|
||||
import { getNormalizedDisplayName } from '../participants/functions';
|
||||
import { toState } from '../redux/functions';
|
||||
import {
|
||||
destroyLocalTracks,
|
||||
getLocalTracks,
|
||||
replaceLocalTrack,
|
||||
trackAdded,
|
||||
trackRemoved
|
||||
} from '../tracks';
|
||||
import { getBackendSafeRoomName } from '../util';
|
||||
} from '../tracks/actions.any';
|
||||
import { getLocalTracks } from '../tracks/functions';
|
||||
import { getBackendSafeRoomName } from '../util/uri';
|
||||
|
||||
import {
|
||||
AUTH_STATUS_CHANGED,
|
||||
|
@ -81,8 +76,7 @@ import {
|
|||
sendLocalParticipant
|
||||
} from './functions';
|
||||
import logger from './logger';
|
||||
|
||||
declare var APP: Object;
|
||||
import { IJitsiConference } from './reducer';
|
||||
|
||||
/**
|
||||
* Adds conference (event) listeners.
|
||||
|
@ -93,52 +87,53 @@ declare var APP: Object;
|
|||
* @private
|
||||
* @returns {void}
|
||||
*/
|
||||
function _addConferenceListeners(conference, dispatch, state) {
|
||||
function _addConferenceListeners(conference: IJitsiConference, dispatch: IStore['dispatch'], state: IState) {
|
||||
// A simple logger for conference errors received through
|
||||
// the listener. These errors are not handled now, but logged.
|
||||
conference.on(JitsiConferenceEvents.CONFERENCE_ERROR,
|
||||
error => logger.error('Conference error.', error));
|
||||
(error: Error) => logger.error('Conference error.', error));
|
||||
|
||||
// Dispatches into features/base/conference follow:
|
||||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.AUTH_STATUS_CHANGED,
|
||||
(authEnabled, authLogin) => dispatch(authStatusChanged(authEnabled, authLogin)));
|
||||
(authEnabled: boolean, authLogin: string) => dispatch(authStatusChanged(authEnabled, authLogin)));
|
||||
conference.on(
|
||||
JitsiConferenceEvents.CONFERENCE_FAILED,
|
||||
(...args) => dispatch(conferenceFailed(conference, ...args)));
|
||||
JitsiConferenceEvents.CONFERENCE_FAILED, // @ts-ignore
|
||||
(...args: any[]) => dispatch(conferenceFailed(conference, ...args)));
|
||||
conference.on(
|
||||
JitsiConferenceEvents.CONFERENCE_JOINED,
|
||||
(...args) => dispatch(conferenceJoined(conference, ...args)));
|
||||
JitsiConferenceEvents.CONFERENCE_JOINED, // @ts-ignore
|
||||
(...args: any[]) => dispatch(conferenceJoined(conference, ...args)));
|
||||
conference.on(
|
||||
JitsiConferenceEvents.CONFERENCE_UNIQUE_ID_SET,
|
||||
(...args) => dispatch(conferenceUniqueIdSet(conference, ...args)));
|
||||
JitsiConferenceEvents.CONFERENCE_UNIQUE_ID_SET, // @ts-ignore
|
||||
(...args: any[]) => dispatch(conferenceUniqueIdSet(conference, ...args)));
|
||||
conference.on(
|
||||
JitsiConferenceEvents.CONFERENCE_JOIN_IN_PROGRESS,
|
||||
(...args) => dispatch(conferenceJoinInProgress(conference, ...args)));
|
||||
JitsiConferenceEvents.CONFERENCE_JOIN_IN_PROGRESS, // @ts-ignore
|
||||
(...args: any[]) => dispatch(conferenceJoinInProgress(conference, ...args)));
|
||||
conference.on(
|
||||
JitsiConferenceEvents.CONFERENCE_LEFT,
|
||||
(...args) => {
|
||||
(...args: any[]) => {
|
||||
dispatch(conferenceTimestampChanged(0));
|
||||
// @ts-ignore
|
||||
dispatch(conferenceLeft(conference, ...args));
|
||||
});
|
||||
conference.on(JitsiConferenceEvents.SUBJECT_CHANGED,
|
||||
(...args) => dispatch(conferenceSubjectChanged(...args)));
|
||||
conference.on(JitsiConferenceEvents.SUBJECT_CHANGED, // @ts-ignore
|
||||
(...args: any[]) => dispatch(conferenceSubjectChanged(...args)));
|
||||
|
||||
conference.on(JitsiConferenceEvents.CONFERENCE_CREATED_TIMESTAMP,
|
||||
(...args) => dispatch(conferenceTimestampChanged(...args)));
|
||||
conference.on(JitsiConferenceEvents.CONFERENCE_CREATED_TIMESTAMP, // @ts-ignore
|
||||
(...args: any[]) => dispatch(conferenceTimestampChanged(...args)));
|
||||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.KICKED,
|
||||
(...args) => dispatch(kickedOut(conference, ...args)));
|
||||
JitsiConferenceEvents.KICKED, // @ts-ignore
|
||||
(...args: any[]) => dispatch(kickedOut(conference, ...args)));
|
||||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.PARTICIPANT_KICKED,
|
||||
(kicker, kicked) => dispatch(participantKicked(kicker, kicked)));
|
||||
(kicker: any, kicked: any) => dispatch(participantKicked(kicker, kicked)));
|
||||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.LOCK_STATE_CHANGED,
|
||||
(...args) => dispatch(lockStateChanged(conference, ...args)));
|
||||
JitsiConferenceEvents.LOCK_STATE_CHANGED, // @ts-ignore
|
||||
(...args: any[]) => dispatch(lockStateChanged(conference, ...args)));
|
||||
|
||||
// Dispatches into features/base/media follow:
|
||||
|
||||
|
@ -177,12 +172,12 @@ function _addConferenceListeners(conference, dispatch, state) {
|
|||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.AUDIO_UNMUTE_PERMISSIONS_CHANGED,
|
||||
disableAudioMuteChange => {
|
||||
(disableAudioMuteChange: boolean) => {
|
||||
dispatch(setAudioUnmutePermissions(disableAudioMuteChange));
|
||||
});
|
||||
conference.on(
|
||||
JitsiConferenceEvents.VIDEO_UNMUTE_PERMISSIONS_CHANGED,
|
||||
disableVideoMuteChange => {
|
||||
(disableVideoMuteChange: boolean) => {
|
||||
dispatch(setVideoUnmutePermissions(disableVideoMuteChange));
|
||||
});
|
||||
|
||||
|
@ -190,25 +185,25 @@ function _addConferenceListeners(conference, dispatch, state) {
|
|||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.TRACK_ADDED,
|
||||
t => t && !t.isLocal() && dispatch(trackAdded(t)));
|
||||
(t: any) => t && !t.isLocal() && dispatch(trackAdded(t)));
|
||||
conference.on(
|
||||
JitsiConferenceEvents.TRACK_REMOVED,
|
||||
t => t && !t.isLocal() && dispatch(trackRemoved(t)));
|
||||
(t: any) => t && !t.isLocal() && dispatch(trackRemoved(t)));
|
||||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.TRACK_MUTE_CHANGED,
|
||||
(track, participantThatMutedUs) => {
|
||||
(track: any, participantThatMutedUs: any) => {
|
||||
if (participantThatMutedUs) {
|
||||
dispatch(participantMutedUs(participantThatMutedUs, track));
|
||||
}
|
||||
});
|
||||
|
||||
conference.on(JitsiConferenceEvents.TRACK_UNMUTE_REJECTED, track => dispatch(destroyLocalTracks(track)));
|
||||
conference.on(JitsiConferenceEvents.TRACK_UNMUTE_REJECTED, (track: any) => dispatch(destroyLocalTracks(track)));
|
||||
|
||||
// Dispatches into features/base/participants follow:
|
||||
conference.on(
|
||||
JitsiConferenceEvents.DISPLAY_NAME_CHANGED,
|
||||
(id, displayName) => dispatch(participantUpdated({
|
||||
(id: string, displayName: string) => dispatch(participantUpdated({
|
||||
conference,
|
||||
id,
|
||||
name: getNormalizedDisplayName(displayName)
|
||||
|
@ -216,42 +211,42 @@ function _addConferenceListeners(conference, dispatch, state) {
|
|||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.DOMINANT_SPEAKER_CHANGED,
|
||||
(dominant, previous, silence) => {
|
||||
(dominant: string, previous: string[], silence: boolean | string) => {
|
||||
dispatch(dominantSpeakerChanged(dominant, previous, Boolean(silence), conference));
|
||||
});
|
||||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.ENDPOINT_MESSAGE_RECEIVED,
|
||||
(...args) => dispatch(endpointMessageReceived(...args)));
|
||||
JitsiConferenceEvents.ENDPOINT_MESSAGE_RECEIVED, // @ts-ignore
|
||||
(...args: any[]) => dispatch(endpointMessageReceived(...args)));
|
||||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.NON_PARTICIPANT_MESSAGE_RECEIVED,
|
||||
(...args) => dispatch(nonParticipantMessageReceived(...args)));
|
||||
JitsiConferenceEvents.NON_PARTICIPANT_MESSAGE_RECEIVED, // @ts-ignore
|
||||
(...args: any[]) => dispatch(nonParticipantMessageReceived(...args)));
|
||||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.PARTICIPANT_CONN_STATUS_CHANGED,
|
||||
(...args) => dispatch(participantConnectionStatusChanged(...args)));
|
||||
JitsiConferenceEvents.PARTICIPANT_CONN_STATUS_CHANGED, // @ts-ignore
|
||||
(...args: any[]) => dispatch(participantConnectionStatusChanged(...args)));
|
||||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.USER_JOINED,
|
||||
(id, user) => commonUserJoinedHandling({ dispatch }, conference, user));
|
||||
(_id: string, user: any) => commonUserJoinedHandling({ dispatch }, conference, user));
|
||||
conference.on(
|
||||
JitsiConferenceEvents.USER_LEFT,
|
||||
(id, user) => commonUserLeftHandling({ dispatch }, conference, user));
|
||||
(_id: string, user: any) => commonUserLeftHandling({ dispatch }, conference, user));
|
||||
conference.on(
|
||||
JitsiConferenceEvents.USER_ROLE_CHANGED,
|
||||
(...args) => dispatch(participantRoleChanged(...args)));
|
||||
JitsiConferenceEvents.USER_ROLE_CHANGED, // @ts-ignore
|
||||
(...args: any[]) => dispatch(participantRoleChanged(...args)));
|
||||
conference.on(
|
||||
JitsiConferenceEvents.USER_STATUS_CHANGED,
|
||||
(...args) => dispatch(participantPresenceChanged(...args)));
|
||||
JitsiConferenceEvents.USER_STATUS_CHANGED, // @ts-ignore
|
||||
(...args: any[]) => dispatch(participantPresenceChanged(...args)));
|
||||
|
||||
conference.on(
|
||||
JitsiE2ePingEvents.E2E_RTT_CHANGED,
|
||||
(...args) => dispatch(e2eRttChanged(...args)));
|
||||
JitsiE2ePingEvents.E2E_RTT_CHANGED, // @ts-ignore
|
||||
(...args: any[]) => dispatch(e2eRttChanged(...args)));
|
||||
|
||||
conference.on(
|
||||
JitsiConferenceEvents.BOT_TYPE_CHANGED,
|
||||
(id, botType) => dispatch(participantUpdated({
|
||||
(id: string, botType: string) => dispatch(participantUpdated({
|
||||
conference,
|
||||
id,
|
||||
botType
|
||||
|
@ -259,14 +254,14 @@ function _addConferenceListeners(conference, dispatch, state) {
|
|||
|
||||
conference.addCommandListener(
|
||||
AVATAR_URL_COMMAND,
|
||||
(data, id) => dispatch(participantUpdated({
|
||||
(data: { value: string; }, id: string) => dispatch(participantUpdated({
|
||||
conference,
|
||||
id,
|
||||
avatarURL: data.value
|
||||
})));
|
||||
conference.addCommandListener(
|
||||
EMAIL_COMMAND,
|
||||
(data, id) => dispatch(participantUpdated({
|
||||
(data: { value: string; }, id: string) => dispatch(participantUpdated({
|
||||
conference,
|
||||
id,
|
||||
email: data.value
|
||||
|
@ -287,7 +282,7 @@ function _addConferenceListeners(conference, dispatch, state) {
|
|||
* }
|
||||
* }}
|
||||
*/
|
||||
export function e2eRttChanged(participant, rtt) {
|
||||
export function e2eRttChanged(participant: Object, rtt: number) {
|
||||
return {
|
||||
type: E2E_RTT_CHANGED,
|
||||
e2eRtt: {
|
||||
|
@ -331,7 +326,7 @@ export function authStatusChanged(authEnabled: boolean, authLogin: string) {
|
|||
* }}
|
||||
* @public
|
||||
*/
|
||||
export function conferenceFailed(conference: Object, error: string, ...params: any) {
|
||||
export function conferenceFailed(conference: IJitsiConference, error: string, ...params: any) {
|
||||
return {
|
||||
type: CONFERENCE_FAILED,
|
||||
conference,
|
||||
|
@ -356,7 +351,7 @@ export function conferenceFailed(conference: Object, error: string, ...params: a
|
|||
* conference: JitsiConference
|
||||
* }}
|
||||
*/
|
||||
export function conferenceJoined(conference: Object) {
|
||||
export function conferenceJoined(conference: IJitsiConference) {
|
||||
return {
|
||||
type: CONFERENCE_JOINED,
|
||||
conference
|
||||
|
@ -373,7 +368,7 @@ export function conferenceJoined(conference: Object) {
|
|||
* conference: JitsiConference
|
||||
* }}
|
||||
*/
|
||||
export function conferenceJoinInProgress(conference: Object) {
|
||||
export function conferenceJoinInProgress(conference: IJitsiConference) {
|
||||
return {
|
||||
type: CONFERENCE_JOIN_IN_PROGRESS,
|
||||
conference
|
||||
|
@ -390,7 +385,7 @@ export function conferenceJoinInProgress(conference: Object) {
|
|||
* conference: JitsiConference
|
||||
* }}
|
||||
*/
|
||||
export function conferenceLeft(conference: Object) {
|
||||
export function conferenceLeft(conference: IJitsiConference) {
|
||||
return {
|
||||
type: CONFERENCE_LEFT,
|
||||
conference
|
||||
|
@ -438,7 +433,7 @@ export function conferenceTimestampChanged(conferenceTimestamp: number) {
|
|||
* conference: JitsiConference,
|
||||
* }}
|
||||
*/
|
||||
export function conferenceUniqueIdSet(conference: Object) {
|
||||
export function conferenceUniqueIdSet(conference: IJitsiConference) {
|
||||
return {
|
||||
type: CONFERENCE_UNIQUE_ID_SET,
|
||||
conference
|
||||
|
@ -454,8 +449,8 @@ export function conferenceUniqueIdSet(conference: Object) {
|
|||
* the local participant will (try to) join.
|
||||
* @returns {Function}
|
||||
*/
|
||||
export function _conferenceWillJoin(conference: Object) {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
export function _conferenceWillJoin(conference: IJitsiConference) {
|
||||
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
const localTracks
|
||||
= getLocalTracks(getState()['features/base/tracks'])
|
||||
.map(t => t.jitsiTrack);
|
||||
|
@ -479,7 +474,7 @@ export function _conferenceWillJoin(conference: Object) {
|
|||
* conference: JitsiConference
|
||||
* }}
|
||||
*/
|
||||
export function conferenceWillJoin(conference: Object) {
|
||||
export function conferenceWillJoin(conference: IJitsiConference) {
|
||||
return {
|
||||
type: CONFERENCE_WILL_JOIN,
|
||||
conference
|
||||
|
@ -499,7 +494,7 @@ export function conferenceWillJoin(conference: Object) {
|
|||
* conference: JitsiConference
|
||||
* }}
|
||||
*/
|
||||
export function conferenceWillLeave(conference: Object) {
|
||||
export function conferenceWillLeave(conference: IJitsiConference) {
|
||||
return {
|
||||
type: CONFERENCE_WILL_LEAVE,
|
||||
conference
|
||||
|
@ -514,7 +509,7 @@ export function conferenceWillLeave(conference: Object) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function createConference(overrideRoom?: string) {
|
||||
return (dispatch: Function, getState: Function) => {
|
||||
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
const state = getState();
|
||||
const { connection, locationURL } = state['features/base/connection'];
|
||||
|
||||
|
@ -530,8 +525,8 @@ export function createConference(overrideRoom?: string) {
|
|||
|
||||
// XXX: revisit this.
|
||||
// Hide the custom domain in the room name.
|
||||
const tmp = overrideRoom || room;
|
||||
let _room = getBackendSafeRoomName(tmp);
|
||||
const tmp: any = overrideRoom || room;
|
||||
let _room: any = getBackendSafeRoomName(tmp);
|
||||
|
||||
if (tmp.domain) {
|
||||
// eslint-disable-next-line no-new-wrappers
|
||||
|
@ -543,6 +538,7 @@ export function createConference(overrideRoom?: string) {
|
|||
|
||||
const conference = connection.initJitsiConference(_room, getConferenceOptions(state));
|
||||
|
||||
// @ts-ignore
|
||||
connection[JITSI_CONNECTION_CONFERENCE_KEY] = conference;
|
||||
|
||||
conference[JITSI_CONFERENCE_URL_KEY] = locationURL;
|
||||
|
@ -568,14 +564,15 @@ export function createConference(overrideRoom?: string) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function checkIfCanJoin() {
|
||||
return (dispatch: Function, getState: Function) => {
|
||||
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
const { authRequired, password }
|
||||
= getState()['features/base/conference'];
|
||||
|
||||
const replaceParticipant = getReplaceParticipant(getState());
|
||||
|
||||
// @ts-ignore
|
||||
authRequired && dispatch(_conferenceWillJoin(authRequired));
|
||||
authRequired && authRequired.join(password, replaceParticipant);
|
||||
authRequired?.join(password, replaceParticipant);
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -598,7 +595,7 @@ export function dataChannelOpened() {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function endConference() {
|
||||
return async (dispatch: Dispatch<any>, getState: Function) => {
|
||||
return async (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
const { conference } = getConferenceState(toState(getState));
|
||||
|
||||
conference?.end();
|
||||
|
@ -633,7 +630,7 @@ export function kickedOut(conference: Object, participant: Object) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function leaveConference() {
|
||||
return async (dispatch: Dispatch<any>) => {
|
||||
return async (dispatch: IStore['dispatch']) => {
|
||||
|
||||
// FIXME: these should be unified.
|
||||
if (navigator.product === 'ReactNative') {
|
||||
|
@ -771,7 +768,7 @@ export function setFollowMe(enabled: boolean) {
|
|||
* muted: boolean
|
||||
* }}
|
||||
*/
|
||||
export function setStartReactionsMuted(muted: boolean, updateBackend: boolean = false) {
|
||||
export function setStartReactionsMuted(muted: boolean, updateBackend = false) {
|
||||
return {
|
||||
type: SET_START_REACTIONS_MUTED,
|
||||
muted,
|
||||
|
@ -791,10 +788,10 @@ export function setStartReactionsMuted(muted: boolean, updateBackend: boolean =
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function setPassword(
|
||||
conference: Object,
|
||||
conference: IJitsiConference,
|
||||
method: Function,
|
||||
password: string) {
|
||||
return (dispatch: Dispatch<any>, getState: Function): ?Promise<void> => {
|
||||
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
switch (method) {
|
||||
case conference.join: {
|
||||
let state = getState()['features/base/conference'];
|
||||
|
@ -832,7 +829,7 @@ export function setPassword(
|
|||
method,
|
||||
password
|
||||
}))
|
||||
.catch(error => dispatch({
|
||||
.catch((error: Error) => dispatch({
|
||||
type: SET_PASSWORD_FAILED,
|
||||
error
|
||||
}))
|
||||
|
@ -873,7 +870,7 @@ export function setObfuscatedRoom(obfuscatedRoom: string, obfuscatedRoomSource:
|
|||
* room: string
|
||||
* }}
|
||||
*/
|
||||
export function setRoom(room: ?string) {
|
||||
export function setRoom(room?: string) {
|
||||
return {
|
||||
type: SET_ROOM,
|
||||
room
|
||||
|
@ -891,10 +888,10 @@ export function setRoom(room: ?string) {
|
|||
*/
|
||||
export function setStartMutedPolicy(
|
||||
startAudioMuted: boolean, startVideoMuted: boolean) {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
const conference = getCurrentConference(getState());
|
||||
|
||||
conference && conference.setStartMutedPolicy({
|
||||
conference?.setStartMutedPolicy({
|
||||
audio: startAudioMuted,
|
||||
video: startVideoMuted
|
||||
});
|
||||
|
@ -911,7 +908,7 @@ export function setStartMutedPolicy(
|
|||
* @returns {void}
|
||||
*/
|
||||
export function setSubject(subject: string) {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
const { conference } = getState()['features/base/conference'];
|
||||
|
||||
if (conference) {
|
|
@ -18,7 +18,6 @@ import { toState } from '../redux/functions';
|
|||
import { getJitsiMeetGlobalNS } from '../util/helpers';
|
||||
import { getBackendSafePath, safeDecodeURIComponent } from '../util/uri';
|
||||
|
||||
// @ts-ignore
|
||||
import { setObfuscatedRoom } from './actions';
|
||||
import {
|
||||
AVATAR_URL_COMMAND,
|
||||
|
@ -86,7 +85,7 @@ export function _addLocalTracksToConference(
|
|||
* @returns {void}
|
||||
*/
|
||||
export function commonUserJoinedHandling(
|
||||
{ dispatch }: IStore,
|
||||
{ dispatch }: { dispatch: IStore['dispatch']; },
|
||||
conference: IJitsiConference,
|
||||
user: any) {
|
||||
const id = user.getId();
|
||||
|
@ -122,7 +121,7 @@ export function commonUserJoinedHandling(
|
|||
* @returns {void}
|
||||
*/
|
||||
export function commonUserLeftHandling(
|
||||
{ dispatch }: IStore,
|
||||
{ dispatch }: { dispatch: IStore['dispatch']; },
|
||||
conference: IJitsiConference,
|
||||
user: any) {
|
||||
const id = user.getId();
|
||||
|
|
|
@ -38,12 +38,15 @@ const DEFAULT_STATE = {
|
|||
};
|
||||
|
||||
export interface IJitsiConference {
|
||||
addCommandListener: Function;
|
||||
addTrack: Function;
|
||||
authenticateAndUpgradeRole: Function;
|
||||
avModerationApprove: Function;
|
||||
avModerationReject: Function;
|
||||
createVideoSIPGWSession: Function;
|
||||
disableAVModeration: Function;
|
||||
enableAVModeration: Function;
|
||||
end: Function;
|
||||
getBreakoutRooms: Function;
|
||||
getLocalTracks: Function;
|
||||
grantOwner: Function;
|
||||
|
@ -51,7 +54,11 @@ export interface IJitsiConference {
|
|||
isCallstatsEnabled: Function;
|
||||
isEndConferenceSupported: Function;
|
||||
isLobbySupported: Function;
|
||||
isStartAudioMuted: Function;
|
||||
isStartVideoMuted: Function;
|
||||
join: Function;
|
||||
kickParticipant: Function;
|
||||
lock: Function;
|
||||
muteParticipant: Function;
|
||||
myLobbyUserId: Function;
|
||||
myUserId: Function;
|
||||
|
@ -65,12 +72,15 @@ export interface IJitsiConference {
|
|||
sessionId: string;
|
||||
setDisplayName: Function;
|
||||
setLocalParticipantProperty: Function;
|
||||
setSubject: Function;
|
||||
}
|
||||
|
||||
export interface IConferenceState {
|
||||
authEnabled?: boolean;
|
||||
authLogin?: string;
|
||||
authRequired?: Object;
|
||||
authRequired?: {
|
||||
join: Function;
|
||||
};
|
||||
conference?: IJitsiConference;
|
||||
conferenceTimestamp?: number;
|
||||
e2eeSupported?: boolean;
|
||||
|
@ -207,7 +217,7 @@ function _conferenceFailed(state: IConferenceState, { conference, error }: { con
|
|||
return state;
|
||||
}
|
||||
|
||||
let authRequired;
|
||||
let authRequired: any;
|
||||
let membersOnly;
|
||||
let passwordRequired;
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
import { IStore } from '../../app/types';
|
||||
// eslint-disable-next-line lines-around-comment
|
||||
// @ts-ignore
|
||||
import { conferenceLeft, conferenceWillLeave } from '../conference/actions';
|
||||
import { getCurrentConference } from '../conference/functions';
|
||||
import JitsiMeetJS, { JitsiConnectionEvents } from '../lib-jitsi-meet';
|
||||
|
|
|
@ -19,6 +19,7 @@ export interface IConnectionState {
|
|||
disconnect: Function;
|
||||
getJid: () => string;
|
||||
getLogs: () => Object;
|
||||
initJitsiConference: Function;
|
||||
};
|
||||
error?: ConnectionFailedError;
|
||||
locationURL?: URL;
|
||||
|
|
|
@ -6,8 +6,6 @@ import { IStore } from '../../app/types';
|
|||
import { processExternalDeviceRequest } from '../../device-selection/functions';
|
||||
import { showNotification, showWarningNotification } from '../../notifications/actions';
|
||||
import { NOTIFICATION_TIMEOUT_TYPE } from '../../notifications/constants';
|
||||
// eslint-disable-next-line lines-around-comment
|
||||
// @ts-ignore
|
||||
import { replaceAudioTrackById, replaceVideoTrackById, setDeviceStatusWarning } from '../../prejoin/actions';
|
||||
import { isPrejoinPageVisible } from '../../prejoin/functions';
|
||||
import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../app/actionTypes';
|
||||
|
|
|
@ -4,7 +4,6 @@ import { AnyAction } from 'redux';
|
|||
|
||||
import { IStore } from '../../app/types';
|
||||
import { PREJOIN_INITIALIZED } from '../../prejoin/actionTypes';
|
||||
// @ts-ignore
|
||||
import { setPrejoinPageVisibility } from '../../prejoin/actions';
|
||||
import { APP_WILL_MOUNT } from '../app/actionTypes';
|
||||
import { setAudioOnly } from '../audio-only/actions';
|
||||
|
|
|
@ -229,7 +229,7 @@ export function createLocalTracksA(options: TrackOptions = {}) {
|
|||
* @param {JitsiLocalTrack|null} [track] - The local track that needs to be destroyed.
|
||||
* @returns {Function}
|
||||
*/
|
||||
export function destroyLocalTracks(track = null) {
|
||||
export function destroyLocalTracks(track: any = null) {
|
||||
if (track) {
|
||||
return (dispatch: IStore['dispatch']) => {
|
||||
dispatch(_disposeAndRemoveTracks([ track ]));
|
||||
|
|
|
@ -2,12 +2,10 @@
|
|||
import { IState, IStore } from '../../app/types';
|
||||
// @ts-ignore
|
||||
import { setPictureInPictureEnabled } from '../../mobile/picture-in-picture/functions';
|
||||
// @ts-ignore
|
||||
import { setAudioOnly } from '../audio-only';
|
||||
import { setAudioOnly } from '../audio-only/actions';
|
||||
import JitsiMeetJS from '../lib-jitsi-meet';
|
||||
|
||||
import { destroyLocalDesktopTrackIfExists, replaceLocalTrack } from './actions.any';
|
||||
// @ts-ignore
|
||||
import { getLocalVideoTrack, isLocalVideoTrackDesktop } from './functions';
|
||||
/* eslint-enable lines-around-comment */
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@ import {
|
|||
conferenceLeft,
|
||||
conferenceWillLeave,
|
||||
createConference
|
||||
// @ts-ignore
|
||||
} from '../base/conference/actions';
|
||||
import { CONFERENCE_LEAVE_REASONS } from '../base/conference/constants';
|
||||
import { getCurrentConference } from '../base/conference/functions';
|
||||
|
@ -24,8 +23,7 @@ import {
|
|||
} from '../base/tracks';
|
||||
// @ts-ignore
|
||||
import { createDesiredLocalTracks } from '../base/tracks/actions';
|
||||
// @ts-ignore
|
||||
import { clearNotifications, showNotification } from '../notifications';
|
||||
import { clearNotifications, showNotification } from '../notifications/actions';
|
||||
import { NOTIFICATION_TIMEOUT_TYPE } from '../notifications/constants';
|
||||
|
||||
import { _RESET_BREAKOUT_ROOMS, _UPDATE_ROOM_COUNTER } from './actionTypes';
|
||||
|
@ -224,7 +222,7 @@ export function moveToRoom(roomId?: string) {
|
|||
dispatch(clearNotifications());
|
||||
|
||||
// dispatch(setRoom(_roomId));
|
||||
dispatch(createConference(_roomId));
|
||||
dispatch(createConference(_roomId?.toString()));
|
||||
dispatch(setAudioMuted(audio.muted));
|
||||
dispatch(setVideoMuted(Boolean(video.muted)));
|
||||
dispatch(createDesiredLocalTracks());
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// @flow
|
||||
|
||||
import {
|
||||
MEDIA_PERMISSION_PROMPT_VISIBILITY_CHANGED,
|
||||
SET_FATAL_ERROR,
|
||||
|
@ -39,7 +37,7 @@ export function mediaPermissionPromptVisibilityChanged(isVisible: boolean, brows
|
|||
* fatalError: ?Error
|
||||
* }}
|
||||
*/
|
||||
export function setFatalError(fatalError: Object) {
|
||||
export function setFatalError(fatalError?: Object) {
|
||||
return {
|
||||
type: SET_FATAL_ERROR,
|
||||
fatalError
|
|
@ -1,15 +1,16 @@
|
|||
// @flow
|
||||
|
||||
declare var JitsiMeetJS: Object;
|
||||
declare var APP: Object;
|
||||
|
||||
/* eslint-disable lines-around-comment */
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
import { getDialOutStatusUrl, getDialOutUrl, updateConfig } from '../base/config';
|
||||
import { IStore } from '../app/types';
|
||||
import { updateConfig } from '../base/config/actions';
|
||||
// @ts-ignore
|
||||
import { getDialOutStatusUrl, getDialOutUrl } from '../base/config/functions';
|
||||
import { browser } from '../base/lib-jitsi-meet';
|
||||
// @ts-ignore
|
||||
import { createLocalTrack } from '../base/lib-jitsi-meet/functions';
|
||||
import { MEDIA_TYPE, isVideoMutedByUser } from '../base/media';
|
||||
import { updateSettings } from '../base/settings';
|
||||
import { MEDIA_TYPE } from '../base/media/constants';
|
||||
import { isVideoMutedByUser } from '../base/media/functions';
|
||||
import { updateSettings } from '../base/settings/actions';
|
||||
import {
|
||||
createLocalTracksF,
|
||||
getLocalAudioTrack,
|
||||
|
@ -17,10 +18,15 @@ import {
|
|||
getLocalVideoTrack,
|
||||
replaceLocalTrack,
|
||||
trackAdded
|
||||
// @ts-ignore
|
||||
} from '../base/tracks';
|
||||
// @ts-ignore
|
||||
import { openURLInBrowser } from '../base/util';
|
||||
// @ts-ignore
|
||||
import { executeDialOutRequest, executeDialOutStatusRequest, getDialInfoPageURL } from '../invite/functions';
|
||||
import { NOTIFICATION_TIMEOUT_TYPE, showErrorNotification } from '../notifications';
|
||||
import { showErrorNotification } from '../notifications/actions';
|
||||
import { NOTIFICATION_TIMEOUT_TYPE } from '../notifications/constants';
|
||||
import { INotificationProps } from '../notifications/types';
|
||||
|
||||
import {
|
||||
PREJOIN_INITIALIZED,
|
||||
|
@ -83,7 +89,7 @@ function pollForStatus(
|
|||
onSuccess: Function,
|
||||
onFail: Function,
|
||||
count = 0) {
|
||||
return async function(dispatch: Function, getState: Function) {
|
||||
return async function(dispatch: IStore['dispatch'], getState: IStore['getState']) {
|
||||
const state = getState();
|
||||
|
||||
try {
|
||||
|
@ -96,7 +102,7 @@ function pollForStatus(
|
|||
switch (res) {
|
||||
case DIAL_OUT_STATUS.INITIATED:
|
||||
case DIAL_OUT_STATUS.RINGING: {
|
||||
dispatch(setDialOutStatus(dialOutStatusToKeyMap[res]));
|
||||
dispatch(setDialOutStatus(dialOutStatusToKeyMap[res as keyof typeof dialOutStatusToKeyMap]));
|
||||
|
||||
if (count < STATUS_REQ_CAP) {
|
||||
return setTimeout(() => {
|
||||
|
@ -149,7 +155,7 @@ function pollForStatus(
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function dialOut(onSuccess: Function, onFail: Function) {
|
||||
return async function(dispatch: Function, getState: Function) {
|
||||
return async function(dispatch: IStore['dispatch'], getState: IStore['getState']) {
|
||||
const state = getState();
|
||||
const reqId = uuidv4();
|
||||
const url = getDialOutUrl(state);
|
||||
|
@ -168,8 +174,8 @@ export function dialOut(onSuccess: Function, onFail: Function) {
|
|||
await executeDialOutRequest(url, body, reqId);
|
||||
|
||||
dispatch(pollForStatus(reqId, onSuccess, onFail));
|
||||
} catch (err) {
|
||||
const notification = {
|
||||
} catch (err: any) {
|
||||
const notification: INotificationProps = {
|
||||
titleKey: 'prejoin.errorDialOut',
|
||||
titleArguments: undefined
|
||||
};
|
||||
|
@ -199,7 +205,7 @@ export function dialOut(onSuccess: Function, onFail: Function) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function initPrejoin(tracks: Object[], errors: Object) {
|
||||
return async function(dispatch: Function) {
|
||||
return async function(dispatch: IStore['dispatch']) {
|
||||
dispatch(setPrejoinDeviceErrors(errors));
|
||||
dispatch(prejoinInitialized());
|
||||
|
||||
|
@ -214,8 +220,8 @@ export function initPrejoin(tracks: Object[], errors: Object) {
|
|||
* @param {boolean} ignoreJoiningInProgress - If true we won't check the joiningInProgress flag.
|
||||
* @returns {Function}
|
||||
*/
|
||||
export function joinConference(options?: Object, ignoreJoiningInProgress: boolean = false) {
|
||||
return async function(dispatch: Function, getState: Function) {
|
||||
export function joinConference(options?: Object, ignoreJoiningInProgress = false) {
|
||||
return async function(dispatch: IStore['dispatch'], getState: IStore['getState']) {
|
||||
if (!ignoreJoiningInProgress) {
|
||||
const state = getState();
|
||||
const { joiningInProgress } = state['features/prejoin'];
|
||||
|
@ -251,7 +257,7 @@ export function joinConference(options?: Object, ignoreJoiningInProgress: boolea
|
|||
// anymore.
|
||||
localTracks = getLocalTracks(getState()['features/base/tracks']);
|
||||
|
||||
const jitsiTracks = localTracks.map(t => t.jitsiTrack);
|
||||
const jitsiTracks = localTracks.map((t: any) => t.jitsiTrack);
|
||||
|
||||
APP.conference.prejoinStart(jitsiTracks);
|
||||
};
|
||||
|
@ -278,7 +284,7 @@ export function setJoiningInProgress(value: boolean) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function joinConferenceWithoutAudio() {
|
||||
return async function(dispatch: Function, getState: Function) {
|
||||
return async function(dispatch: IStore['dispatch'], getState: IStore['getState']) {
|
||||
const state = getState();
|
||||
const { joiningInProgress } = state['features/prejoin'];
|
||||
|
||||
|
@ -329,7 +335,7 @@ export function makePrecallTest(conferenceOptions: Object) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function openDialInPage() {
|
||||
return function(dispatch: Function, getState: Function) {
|
||||
return function(dispatch: IStore['dispatch'], getState: IStore['getState']) {
|
||||
const dialInPage = getDialInfoPageURL(getState());
|
||||
|
||||
openURLInBrowser(dialInPage, true);
|
||||
|
@ -354,7 +360,7 @@ function prejoinInitialized() {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function replaceAudioTrackById(deviceId: string) {
|
||||
return async (dispatch: Function, getState: Function) => {
|
||||
return async (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
try {
|
||||
const tracks = getState()['features/base/tracks'];
|
||||
const newTrack = await createLocalTrack('audio', deviceId);
|
||||
|
@ -381,7 +387,7 @@ export function replaceAudioTrackById(deviceId: string) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function replaceVideoTrackById(deviceId: Object) {
|
||||
return async (dispatch: Function, getState: Function) => {
|
||||
return async (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
|
||||
try {
|
||||
const tracks = getState()['features/base/tracks'];
|
||||
const wasVideoMuted = isVideoMutedByUser(getState());
|
|
@ -1,5 +1,3 @@
|
|||
// @flow
|
||||
|
||||
import { getLogger } from '../base/logging/functions';
|
||||
|
||||
export default getLogger('features/prejoin');
|
Loading…
Reference in New Issue