ref: Convert files to TS (#11840)

This commit is contained in:
Robert Pintilii 2022-07-12 14:41:26 +03:00 committed by GitHub
parent df887d24a2
commit f31a7f31e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 69 additions and 49 deletions

View File

@ -5,6 +5,7 @@ import { IAppState } from '../base/app/reducer';
import { IAudioOnlyState } from '../base/audio-only/reducer';
import { IConferenceState } from '../base/conference/reducer';
import { IConfig } from '../base/config/configType';
import { IConnectionState } from '../base/connection/reducer';
export interface IStore {
getState: Function,
@ -19,4 +20,5 @@ export interface IState {
'features/base/audio-only': IAudioOnlyState,
'features/base/conference': IConferenceState,
'features/base/config': IConfig,
'features/base/connection': IConnectionState
}

View File

@ -1,7 +1,4 @@
/* eslint-disable import/order */
import ReducerRegistry from '../base/redux/ReducerRegistry';
// @ts-ignore
import { assign } from '../base/redux/functions';
import {

View File

@ -8,8 +8,7 @@ import { CONNECTION_WILL_CONNECT, SET_LOCATION_URL } from '../connection';
// @ts-ignore
import { JitsiConferenceErrors } from '../lib-jitsi-meet';
// @ts-ignore
import { assign, set } from '../redux';
import { assign, set } from '../redux/functions';
import ReducerRegistry from '../redux/ReducerRegistry';
import {
@ -58,6 +57,14 @@ export interface IConferenceState {
passwordRequired: boolean|undefined;
authEnabled?: boolean|undefined;
authLogin?: string|undefined;
subject?: string;
localSubject?: string;
conferenceTimestamp?: number;
authRequired?: Object;
followMeEnabled?: boolean;
startReactionsMuted?: boolean;
room?: Object;
pendingSubjectChange?: string;
}
/**

View File

@ -3,8 +3,7 @@ import _ from 'lodash';
import { CONFERENCE_INFO } from '../../conference/components/constants';
// @ts-ignore
import { equals } from '../redux';
import { equals } from '../redux/functions';
import ReducerRegistry from '../redux/ReducerRegistry';
import {

View File

@ -1,8 +1,11 @@
/* @flow */
/* eslint-disable import/order */
import { SET_ROOM } from '../conference';
import { SET_ROOM } from '../conference/actionTypes';
// @ts-ignore
import { JitsiConnectionErrors } from '../lib-jitsi-meet';
import { assign, set, ReducerRegistry } from '../redux';
import { assign, set } from '../redux/functions';
import ReducerRegistry from '../redux/ReducerRegistry';
import {
CONNECTION_DISCONNECTED,
@ -12,14 +15,26 @@ import {
SET_LOCATION_URL,
SHOW_CONNECTION_INFO
} from './actionTypes';
import type { ConnectionFailedError } from './actions.native';
// @ts-ignore
import { ConnectionFailedError } from './actions.native';
export interface IConnectionState {
connection?: Object;
connecting?: Object;
timeEstablished?: number;
error?: ConnectionFailedError;
passwordRequired?: Object;
locationURL?: URL;
showConnectionInfo?: boolean;
}
/**
* Reduces the Redux actions of the feature base/connection.
*/
ReducerRegistry.register(
'features/base/connection',
(state: Object = {}, action: Object) => {
(state: IConnectionState = {}, action: any) => {
switch (action.type) {
case CONNECTION_DISCONNECTED:
return _connectionDisconnected(state, action);
@ -50,14 +65,14 @@ ReducerRegistry.register(
* Reduces a specific Redux action CONNECTION_DISCONNECTED of the feature
* base/connection.
*
* @param {Object} state - The Redux state of the feature base/connection.
* @param {IConnectionState} state - The Redux state of the feature base/connection.
* @param {Action} action - The Redux action CONNECTION_DISCONNECTED to reduce.
* @private
* @returns {Object} The new state of the feature base/connection after the
* reduction of the specified action.
*/
function _connectionDisconnected(
state: Object,
state: IConnectionState,
{ connection }: { connection: Object }) {
const connection_ = _getCurrentConnection(state);
@ -76,14 +91,14 @@ function _connectionDisconnected(
* Reduces a specific Redux action CONNECTION_ESTABLISHED of the feature
* base/connection.
*
* @param {Object} state - The Redux state of the feature base/connection.
* @param {IConnectionState} state - The Redux state of the feature base/connection.
* @param {Action} action - The Redux action CONNECTION_ESTABLISHED to reduce.
* @private
* @returns {Object} The new state of the feature base/connection after the
* reduction of the specified action.
*/
function _connectionEstablished(
state: Object,
state: IConnectionState,
{ connection, timeEstablished }: {
connection: Object,
timeEstablished: number
@ -101,14 +116,14 @@ function _connectionEstablished(
* Reduces a specific Redux action CONNECTION_FAILED of the feature
* base/connection.
*
* @param {Object} state - The Redux state of the feature base/connection.
* @param {IConnectionState} state - The Redux state of the feature base/connection.
* @param {Action} action - The Redux action CONNECTION_FAILED to reduce.
* @private
* @returns {Object} The new state of the feature base/connection after the
* reduction of the specified action.
*/
function _connectionFailed(
state: Object,
state: IConnectionState,
{ connection, error }: {
connection: Object,
error: ConnectionFailedError
@ -133,14 +148,14 @@ function _connectionFailed(
* Reduces a specific Redux action CONNECTION_WILL_CONNECT of the feature
* base/connection.
*
* @param {Object} state - The Redux state of the feature base/connection.
* @param {IConnectionState} state - The Redux state of the feature base/connection.
* @param {Action} action - The Redux action CONNECTION_WILL_CONNECT to reduce.
* @private
* @returns {Object} The new state of the feature base/connection after the
* reduction of the specified action.
*/
function _connectionWillConnect(
state: Object,
state: IConnectionState,
{ connection }: { connection: Object }) {
return assign(state, {
connecting: connection,
@ -159,12 +174,12 @@ function _connectionWillConnect(
* The current (similar to getCurrentConference in base/conference/functions.any.js)
* connection which is {@code connection} or {@code connecting}.
*
* @param {Object} baseConnectionState - The current state of the
* @param {IConnectionState} baseConnectionState - The current state of the
* {@code 'base/connection'} feature.
* @returns {JitsiConnection} - The current {@code JitsiConnection} if any.
* @private
*/
function _getCurrentConnection(baseConnectionState: Object): ?Object {
function _getCurrentConnection(baseConnectionState: IConnectionState): IConnectionState|undefined {
return baseConnectionState.connection || baseConnectionState.connecting;
}
@ -172,15 +187,15 @@ function _getCurrentConnection(baseConnectionState: Object): ?Object {
* Reduces a specific redux action {@link SET_LOCATION_URL} of the feature
* base/connection.
*
* @param {Object} state - The redux state of the feature base/connection.
* @param {IConnectionState} state - The redux state of the feature base/connection.
* @param {Action} action - The redux action {@code SET_LOCATION_URL} to reduce.
* @private
* @returns {Object} The new state of the feature base/connection after the
* reduction of the specified action.
*/
function _setLocationURL(
state: Object,
{ locationURL }: { locationURL: ?URL }) {
state: IConnectionState,
{ locationURL }: { locationURL?: URL }) {
return set(state, 'locationURL', locationURL);
}
@ -188,12 +203,12 @@ function _setLocationURL(
* Reduces a specific redux action {@link SET_ROOM} of the feature
* base/connection.
*
* @param {Object} state - The redux state of the feature base/connection.
* @param {IConnectionState} state - The redux state of the feature base/connection.
* @private
* @returns {Object} The new state of the feature base/connection after the
* reduction of the specified action.
*/
function _setRoom(state: Object) {
function _setRoom(state: IConnectionState) {
return assign(state, {
error: undefined,
passwordRequired: undefined
@ -204,14 +219,14 @@ function _setRoom(state: Object) {
* Reduces a specific redux action {@link SHOW_CONNECTION_INFO} of the feature
* base/connection.
*
* @param {Object} state - The redux state of the feature base/connection.
* @param {IConnectionState} state - The redux state of the feature base/connection.
* @param {Action} action - The redux action {@code SHOW_CONNECTION_INFO} to reduce.
* @private
* @returns {Object} The new state of the feature base/connection after the
* reduction of the specified action.
*/
function _setShowConnectionInfo(
state: Object,
state: IConnectionState,
{ showConnectionInfo }: { showConnectionInfo: boolean }) {
return set(state, 'showConnectionInfo', showConnectionInfo);
}

View File

@ -1,22 +1,22 @@
// @flow
import _ from 'lodash';
import { connect as reduxConnect } from 'react-redux';
import { IStore } from '../../app/types';
/**
* Sets specific properties of a specific state to specific values and prevents
* unnecessary state changes.
*
* @param {Object} target - The state on which the specified properties are to
* @param {T} target - The state on which the specified properties are to
* be set.
* @param {Object} source - The map of properties to values which are to be set
* @param {T} source - The map of properties to values which are to be set
* on the specified target.
* @returns {Object} The specified target if the values of the specified
* @returns {T} The specified target if the values of the specified
* properties equal the specified values; otherwise, a new state constructed
* from the specified target by setting the specified properties to the
* specified values.
*/
export function assign(target: Object, source: Object) {
export function assign<T extends Object>(target: T, source: T): T {
let t = target;
for (const property in source) { // eslint-disable-line guard-for-in
@ -30,13 +30,13 @@ export function assign(target: Object, source: Object) {
* Wrapper function for the react-redux connect function to avoid having to
* declare function types for flow, but still let flow warn for other errors.
*
* @param {Function?} mapStateToProps - Redux mapStateToProps function.
* @param {any} mapStateToProps - Redux mapStateToProps function.
* @param {Function?} mapDispatchToProps - Redux mapDispatchToProps function.
* @returns {Connector}
*/
export function connect(
mapStateToProps?: Function, mapDispatchToProps?: Function) {
return reduxConnect<*, *, *, *, *, *>(mapStateToProps, mapDispatchToProps);
mapStateToProps?: any, mapDispatchToProps?: Function) {
return reduxConnect(mapStateToProps, mapDispatchToProps);
}
/**
@ -57,18 +57,18 @@ export function equals(a: any, b: any) {
* unnecessary state changes (when the specified {@code value} is equal to the
* value of the specified {@code property} of the specified {@code state}).
*
* @param {Object} state - The (Redux) state from which a new state is to be
* @param {T} state - The (Redux) state from which a new state is to be
* constructed by setting the specified {@code property} to the specified
* {@code value}.
* @param {string} property - The property of {@code state} which is to be
* assigned the specified {@code value} (in the new state).
* @param {*} value - The value to assign to the specified {@code property}.
* @returns {Object} The specified {@code state} if the value of the specified
* @returns {T} The specified {@code state} if the value of the specified
* {@code property} equals the specified <tt>value/tt>; otherwise, a new state
* constructed from the specified {@code state} by setting the specified
* {@code property} to the specified {@code value}.
*/
export function set(state: Object, property: string, value: any) {
export function set<T extends Object>(state: T, property: keyof T, value: any): T {
return _set(state, property, value, /* copyOnWrite */ true);
}
@ -79,7 +79,7 @@ export function set(state: Object, property: string, value: any) {
* unnecessary state changes (when the specified {@code value} is equal to the
* value of the specified {@code property} of the specified {@code state}).
*
* @param {Object} state - The (Redux) state from which a state is to be
* @param {T} state - The (Redux) state from which a state is to be
* constructed by setting the specified {@code property} to the specified
* {@code value}.
* @param {string} property - The property of {@code state} which is to be
@ -87,17 +87,17 @@ export function set(state: Object, property: string, value: any) {
* @param {*} value - The value to assign to the specified {@code property}.
* @param {boolean} copyOnWrite - If the specified {@code state} is to not be
* modified, {@code true}; otherwise, {@code false}.
* @returns {Object} The specified {@code state} if the value of the specified
* @returns {T} The specified {@code state} if the value of the specified
* {@code property} equals the specified <tt>value/tt> or {@code copyOnWrite}
* is truthy; otherwise, a new state constructed from the specified
* {@code state} by setting the specified {@code property} to the specified
* {@code value}.
*/
function _set(
state: Object,
property: string,
function _set<T extends Object>(
state: T,
property: keyof T,
value: any,
copyOnWrite: boolean) {
copyOnWrite: boolean): T {
// Delete state properties that are to be set to undefined. (It is a matter
// of personal preference, mostly.)
if (typeof value === 'undefined'
@ -130,12 +130,12 @@ function _set(
* be related to the redux state (e.g. The redux store, the redux
* {@code getState} function).
*
* @param {Function|Object} stateful - The entity such as the redux store or the
* @param {Function|IStore} stateful - The entity such as the redux store or the
* redux {@code getState} function from which the redux state is to be
* returned.
* @returns {Object} The redux state.
*/
export function toState(stateful: Function | Object) {
export function toState(stateful: Function | IStore) {
if (stateful) {
if (typeof stateful === 'function') {
return stateful();