Compare commits
5 Commits
jitihouse/
...
rn-0.59
Author | SHA1 | Date |
---|---|---|
Saúl Ibarra Corretgé | f545dc417f | |
Saúl Ibarra Corretgé | 38c414baf0 | |
Saúl Ibarra Corretgé | 4e8697385d | |
Saúl Ibarra Corretgé | 31f97c666b | |
Saúl Ibarra Corretgé | f56cd37b9f |
|
@ -33,7 +33,6 @@
|
|||
[libs]
|
||||
node_modules/react-native/Libraries/react-native/react-native-interface.js
|
||||
node_modules/react-native/flow/
|
||||
node_modules/react-native/flow-github/
|
||||
|
||||
[options]
|
||||
emoji=true
|
||||
|
@ -83,4 +82,4 @@ module.file_ext=.jsx
|
|||
module.file_ext=.json
|
||||
|
||||
[version]
|
||||
^0.78.0
|
||||
^0.92.0
|
||||
|
|
|
@ -33,19 +33,6 @@ dependencies {
|
|||
}
|
||||
```
|
||||
|
||||
Also, enable 32bit mode for react-native, since the react-native version we currently depend on only supports 32bit apps. (If you have a 64bit device, it will not run unless this setting it set).
|
||||
|
||||
```gradle
|
||||
android {
|
||||
...
|
||||
defaultConfig {
|
||||
ndk {
|
||||
abiFilters "armeabi-v7a", "x86"
|
||||
}
|
||||
}
|
||||
...
|
||||
```
|
||||
|
||||
### Build and use your own SDK artifacts/binaries
|
||||
|
||||
<details>
|
||||
|
@ -69,10 +56,6 @@ To copy React Native to your local Maven repository, you can simply copy part of
|
|||
|
||||
$ cp -r ../node_modules/react-native/android/com /tmp/repo/
|
||||
|
||||
In the same way, copy the JavaScriptCore dependency:
|
||||
|
||||
$ cp -r ../node_modules/jsc-android/dist/org /tmp/repo/
|
||||
|
||||
Alternatively, you can use the scripts located in the android/scripts directory to publish these dependencies to your Maven repo.
|
||||
|
||||
Third-party React Native _modules_, which Jitsi Meet SDK for Android depends on, are download by NPM in source code form. These need to be assembled into Maven artifacts, and then published to your local Maven repository. The SDK project facilitates this.
|
||||
|
|
|
@ -22,17 +22,7 @@ android {
|
|||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
|
||||
ndk {
|
||||
abiFilters 'armeabi-v7a', 'x86'
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
// The project react-native does not provide 64-bit binaries at the
|
||||
// time of this writing. Unfortunately, packaging any 64-bit
|
||||
// binaries into the .apk will crash the app at runtime on 64-bit
|
||||
// platforms.
|
||||
exclude '/lib/mips64/**'
|
||||
exclude '/lib/arm64-v8a/**'
|
||||
exclude '/lib/x86_64/**'
|
||||
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,6 @@ allprojects {
|
|||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
maven { url "$rootDir/../node_modules/jsc-android/dist" }
|
||||
// React Native (JS, Obj-C sources, Android binaries) is installed from
|
||||
// npm.
|
||||
maven { url "$rootDir/../node_modules/react-native/android" }
|
||||
|
@ -42,12 +41,6 @@ allprojects {
|
|||
def version = new JsonSlurper().parseText(file.text).version
|
||||
details.useVersion version
|
||||
}
|
||||
if (details.requested.group == 'org.webkit'
|
||||
&& details.requested.name == 'android-jsc') {
|
||||
def file = new File("$rootDir/../node_modules/jsc-android/package.json")
|
||||
def version = new JsonSlurper().parseText(file.text).version
|
||||
details.useVersion "r${version.tokenize('.')[0]}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
CWD=$(dirname $0)
|
||||
MVN_REPO=$(realpath $1)
|
||||
JSC_VERSION="r"$(jq -r '.dependencies."jsc-android"' ${CWD}/../../package.json | cut -d . -f 1)
|
||||
|
||||
pushd ${CWD}/../../node_modules/jsc-android/dist/org/webkit/android-jsc/${JSC_VERSION}
|
||||
|
||||
mvn \
|
||||
deploy:deploy-file \
|
||||
-Durl=file://${MVN_REPO} \
|
||||
-Dfile=android-jsc-${JSC_VERSION}.aar \
|
||||
-Dpackaging=aar \
|
||||
-DgeneratePom=false \
|
||||
-DpomFile=android-jsc-${JSC_VERSION}.pom
|
||||
|
||||
popd
|
|
@ -24,7 +24,6 @@ dependencies {
|
|||
implementation "com.android.support:support-v4:${rootProject.ext.supportLibVersion}"
|
||||
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
||||
|
||||
implementation 'org.webkit:android-jsc:+'
|
||||
implementation 'com.amplitude:android-sdk:2.14.1'
|
||||
implementation 'com.dropbox.core:dropbox-core-sdk:3.0.8'
|
||||
api 'com.facebook.react:react-native:+'
|
||||
|
|
|
@ -15,17 +15,21 @@ import com.facebook.react.bridge.Promise;
|
|||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
|
||||
@ReactModule(name = AndroidSettingsModule.NAME)
|
||||
class AndroidSettingsModule
|
||||
extends ReactContextBaseJavaModule {
|
||||
|
||||
public static final String NAME = "AndroidSettings";
|
||||
|
||||
public AndroidSettingsModule(ReactApplicationContext reactContext) {
|
||||
super(reactContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "AndroidSettings";
|
||||
return NAME;
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
|
|
|
@ -23,13 +23,17 @@ import android.content.pm.PackageManager;
|
|||
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@ReactModule(name = AppInfoModule.NAME)
|
||||
class AppInfoModule
|
||||
extends ReactContextBaseJavaModule {
|
||||
|
||||
public static final String NAME = "AppInfo";
|
||||
|
||||
public AppInfoModule(ReactApplicationContext reactContext) {
|
||||
super(reactContext);
|
||||
}
|
||||
|
@ -74,6 +78,6 @@ class AppInfoModule
|
|||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "AppInfo";
|
||||
return NAME;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.WritableArray;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
|
@ -58,9 +59,12 @@ import java.util.concurrent.Executors;
|
|||
* Before a call has started and after it has ended the
|
||||
* {@code AudioModeModule.DEFAULT} mode should be used.
|
||||
*/
|
||||
@ReactModule(name = AudioModeModule.NAME)
|
||||
class AudioModeModule extends ReactContextBaseJavaModule
|
||||
implements AudioManager.OnAudioFocusChangeListener {
|
||||
|
||||
public static final String NAME = "AudioMode";
|
||||
|
||||
/**
|
||||
* Constants representing the audio mode.
|
||||
* - DEFAULT: Used before and after every call. It represents the default
|
||||
|
@ -89,16 +93,10 @@ class AudioModeModule extends ReactContextBaseJavaModule
|
|||
*/
|
||||
private static final int TYPE_USB_HEADSET = 22;
|
||||
|
||||
/**
|
||||
* The name of {@code AudioModeModule} to be used in the React Native
|
||||
* bridge.
|
||||
*/
|
||||
private static final String MODULE_NAME = "AudioMode";
|
||||
|
||||
/**
|
||||
* The {@code Log} tag {@code AudioModeModule} is to log messages with.
|
||||
*/
|
||||
static final String TAG = MODULE_NAME;
|
||||
static final String TAG = NAME;
|
||||
|
||||
/**
|
||||
* Converts any of the "DEVICE_" constants into the corresponding
|
||||
|
@ -373,7 +371,7 @@ class AudioModeModule extends ReactContextBaseJavaModule
|
|||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return MODULE_NAME;
|
||||
return NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -22,14 +22,18 @@ import com.facebook.react.bridge.ReactApplicationContext;
|
|||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
|
||||
/**
|
||||
* Module implementing an API for sending events from JavaScript to native code.
|
||||
*/
|
||||
@ReactModule(name = ExternalAPIModule.NAME)
|
||||
class ExternalAPIModule
|
||||
extends ReactContextBaseJavaModule {
|
||||
|
||||
private static final String TAG = ExternalAPIModule.class.getSimpleName();
|
||||
public static final String NAME = "ExternalAPI";
|
||||
|
||||
private static final String TAG = NAME;
|
||||
|
||||
/**
|
||||
* Initializes a new module instance. There shall be a single instance of
|
||||
|
@ -49,7 +53,7 @@ class ExternalAPIModule
|
|||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return "ExternalAPI";
|
||||
return NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -27,11 +27,15 @@ import com.facebook.react.bridge.Promise;
|
|||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
|
||||
@ReactModule(name = PictureInPictureModule.NAME)
|
||||
class PictureInPictureModule
|
||||
extends ReactContextBaseJavaModule {
|
||||
|
||||
private final static String TAG = "PictureInPicture";
|
||||
public static final String NAME = "PictureInPicture";
|
||||
|
||||
private static final String TAG = NAME;
|
||||
|
||||
static boolean isPictureInPictureSupported() {
|
||||
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O;
|
||||
|
@ -101,6 +105,6 @@ class PictureInPictureModule
|
|||
|
||||
@Override
|
||||
public String getName() {
|
||||
return TAG;
|
||||
return NAME;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ import com.facebook.react.bridge.ReactApplicationContext;
|
|||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.UiThreadUtil;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
|
||||
/**
|
||||
* Module implementing a simple API to enable a proximity sensor-controlled
|
||||
|
@ -31,14 +32,11 @@ import com.facebook.react.bridge.UiThreadUtil;
|
|||
* object it will dim the screen and disable touch controls. The functionality
|
||||
* is used with the conference audio-only mode.
|
||||
*/
|
||||
@ReactModule(name = ProximityModule.NAME)
|
||||
class ProximityModule
|
||||
extends ReactContextBaseJavaModule {
|
||||
|
||||
/**
|
||||
* The name of {@code ProximityModule} to be used in the React Native
|
||||
* bridge.
|
||||
*/
|
||||
private static final String MODULE_NAME = "Proximity";
|
||||
public static final String NAME = "Proximity";
|
||||
|
||||
/**
|
||||
* This type of wake lock (the one activated by the proximity sensor) has
|
||||
|
@ -74,7 +72,7 @@ class ProximityModule
|
|||
wakeLock
|
||||
= powerManager.newWakeLock(
|
||||
PROXIMITY_SCREEN_OFF_WAKE_LOCK,
|
||||
MODULE_NAME);
|
||||
"jitsi:"+NAME);
|
||||
} catch (Throwable ignored) {
|
||||
wakeLock = null;
|
||||
}
|
||||
|
@ -89,7 +87,7 @@ class ProximityModule
|
|||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return MODULE_NAME;
|
||||
return NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -18,6 +18,7 @@ import com.facebook.react.bridge.ReactApplicationContext;
|
|||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
|
||||
/**
|
||||
* The react-native side of Jitsi Meet's {@link ConnectionService}. Exposes
|
||||
|
@ -26,10 +27,13 @@ import com.facebook.react.bridge.ReadableMap;
|
|||
* @author Pawel Domas
|
||||
*/
|
||||
@RequiresApi(api = Build.VERSION_CODES.O)
|
||||
@ReactModule(name = RNConnectionService.NAME)
|
||||
class RNConnectionService
|
||||
extends ReactContextBaseJavaModule {
|
||||
|
||||
private final static String TAG = ConnectionService.TAG;
|
||||
public static final String NAME = "ConnectionService";
|
||||
|
||||
private static final String TAG = ConnectionService.TAG;
|
||||
|
||||
/**
|
||||
* Sets the audio route on all existing {@link android.telecom.Connection}s
|
||||
|
@ -146,7 +150,7 @@ class RNConnectionService
|
|||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "ConnectionService";
|
||||
return NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,6 +25,7 @@ import com.facebook.react.bridge.Promise;
|
|||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
@ -43,19 +44,16 @@ import java.util.concurrent.Executors;
|
|||
* Gathers rssi, signal in percentage, timestamp and the addresses of the wifi
|
||||
* device.
|
||||
*/
|
||||
@ReactModule(name = WiFiStatsModule.NAME)
|
||||
class WiFiStatsModule
|
||||
extends ReactContextBaseJavaModule {
|
||||
|
||||
/**
|
||||
* The name of {@code WiFiStatsModule} to be used in the React Native
|
||||
* bridge.
|
||||
*/
|
||||
private static final String MODULE_NAME = "WiFiStats";
|
||||
public static final String NAME = "WiFiStats";
|
||||
|
||||
/**
|
||||
* The {@code Log} tag {@code WiFiStatsModule} is to log messages with.
|
||||
*/
|
||||
static final String TAG = MODULE_NAME;
|
||||
static final String TAG = NAME;
|
||||
|
||||
/**
|
||||
* The scale used for the signal value. A level of the signal, given in the
|
||||
|
@ -87,7 +85,7 @@ class WiFiStatsModule
|
|||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return MODULE_NAME;
|
||||
return NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -22,6 +22,7 @@ import com.facebook.react.bridge.ReactMethod;
|
|||
import com.facebook.react.bridge.ReadableMap;
|
||||
|
||||
import com.amplitude.api.Amplitude;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
@ -29,9 +30,12 @@ import org.json.JSONObject;
|
|||
/**
|
||||
* Implements the react-native module for the Amplitude integration.
|
||||
*/
|
||||
@ReactModule(name = AmplitudeModule.NAME)
|
||||
public class AmplitudeModule
|
||||
extends ReactContextBaseJavaModule {
|
||||
|
||||
public static final String NAME = "Amplitude";
|
||||
|
||||
public AmplitudeModule(ReactApplicationContext reactContext) {
|
||||
super(reactContext);
|
||||
}
|
||||
|
@ -71,9 +75,8 @@ public class AmplitudeModule
|
|||
*/
|
||||
@ReactMethod
|
||||
public void logEvent(String instanceName, String eventType, String eventPropsString) {
|
||||
JSONObject eventProps = null;
|
||||
try {
|
||||
eventProps = new JSONObject(eventPropsString);
|
||||
JSONObject eventProps = new JSONObject(eventPropsString);
|
||||
Amplitude.getInstance(instanceName).logEvent(eventType, eventProps);
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
|
@ -82,6 +85,6 @@ public class AmplitudeModule
|
|||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Amplitude";
|
||||
return NAME;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|||
import com.dropbox.core.android.Auth;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
@ -27,9 +28,13 @@ import java.util.Map;
|
|||
/**
|
||||
* Implements the react-native module for the dropbox integration.
|
||||
*/
|
||||
@ReactModule(name = Dropbox.NAME)
|
||||
public class Dropbox
|
||||
extends ReactContextBaseJavaModule
|
||||
implements LifecycleEventListener {
|
||||
|
||||
public static final String NAME = "Dropbox";
|
||||
|
||||
private String appKey;
|
||||
|
||||
private String clientId;
|
||||
|
@ -131,7 +136,7 @@ public class Dropbox
|
|||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Dropbox";
|
||||
return NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -21,6 +21,7 @@ import com.facebook.react.bridge.Promise;
|
|||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
|
@ -32,9 +33,12 @@ import java.net.UnknownHostException;
|
|||
* [1]: https://tools.ietf.org/html/rfc6146
|
||||
* [2]: https://tools.ietf.org/html/rfc6052
|
||||
*/
|
||||
@ReactModule(name = NAT64AddrInfoModule.NAME)
|
||||
public class NAT64AddrInfoModule
|
||||
extends ReactContextBaseJavaModule {
|
||||
|
||||
public final static String NAME = "NAT64AddrInfo";
|
||||
|
||||
/**
|
||||
* The host for which the module wil try to resolve both IPv4 and IPv6
|
||||
* addresses in order to figure out the NAT64 prefix.
|
||||
|
@ -46,15 +50,10 @@ public class NAT64AddrInfoModule
|
|||
*/
|
||||
private final static long INFO_LIFETIME = 60 * 1000;
|
||||
|
||||
/**
|
||||
* The name of this module.
|
||||
*/
|
||||
private final static String MODULE_NAME = "NAT64AddrInfo";
|
||||
|
||||
/**
|
||||
* The {@code Log} tag {@code NAT64AddrInfoModule} is to log messages with.
|
||||
*/
|
||||
private final static String TAG = MODULE_NAME;
|
||||
private final static String TAG = NAME;
|
||||
|
||||
/**
|
||||
* The {@link NAT64AddrInfo} instance which holds NAT64 prefix/suffix.
|
||||
|
@ -119,6 +118,6 @@ public class NAT64AddrInfoModule
|
|||
|
||||
@Override
|
||||
public String getName() {
|
||||
return MODULE_NAME;
|
||||
return NAME;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// flow-typed signature: d71d314ca25fc6c20610a3ba80af9df0
|
||||
// flow-typed version: 9698a46399/jquery_v3.x.x/flow_>=v0.28.x
|
||||
// flow-typed signature: f26fda66e3a551aef37d3b0f53058e6a
|
||||
// flow-typed version: 44ad941b7a/jquery_v3.x.x/flow_>=v0.28.x
|
||||
|
||||
/* eslint-disable max-len, no-unused-vars, flowtype/no-weak-types */
|
||||
|
||||
|
@ -364,6 +364,13 @@ declare class JQueryGenericPromise<T> {
|
|||
failFilter?: (...reasons: any[]) => any,
|
||||
progressFilter?: (...progression: any[]) => any
|
||||
): JQueryPromise<void>;
|
||||
|
||||
/**
|
||||
* Add handlers to be called when the Deferred object is rejected.
|
||||
*
|
||||
* @param failFilter An function that is called when the Deferred is rejected.
|
||||
*/
|
||||
catch(failFilter: (...reasons: any[]) => any): JQueryPromise<T>;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -822,7 +829,7 @@ declare class JQueryStatic {
|
|||
*/
|
||||
get(
|
||||
url: string,
|
||||
data?: Object | string,
|
||||
data?: {} | string,
|
||||
success?: (data: any, textStatus: string, jqXHR: JQueryXHR) => any,
|
||||
dataType?: string
|
||||
): JQueryXHR;
|
||||
|
@ -845,7 +852,7 @@ declare class JQueryStatic {
|
|||
*/
|
||||
getJSON(
|
||||
url: string,
|
||||
data?: Object | string,
|
||||
data?: {} | string,
|
||||
success?: (data: any, textStatus: string, jqXHR: JQueryXHR) => any
|
||||
): JQueryXHR;
|
||||
/**
|
||||
|
@ -886,7 +893,7 @@ declare class JQueryStatic {
|
|||
*/
|
||||
post(
|
||||
url: string,
|
||||
data?: Object | string,
|
||||
data?: {} | string,
|
||||
success?: (data: any, textStatus: string, jqXHR: JQueryXHR) => any,
|
||||
dataType?: string
|
||||
): JQueryXHR;
|
||||
|
@ -967,7 +974,7 @@ declare class JQueryStatic {
|
|||
* @param html A string defining a single, standalone, HTML element (e.g. <div/> or <div></div>).
|
||||
* @param attributes An object of attributes, events, and methods to call on the newly-created element.
|
||||
*/
|
||||
(html: string, attributes: Object): JQuery;
|
||||
(html: string, attributes: {}): JQuery;
|
||||
|
||||
/**
|
||||
* Relinquish jQuery's control of the $ variable.
|
||||
|
@ -1425,7 +1432,7 @@ declare class JQuery {
|
|||
*/
|
||||
load(
|
||||
url: string,
|
||||
data?: string | Object,
|
||||
data?: string | {},
|
||||
complete?: (
|
||||
responseText: string,
|
||||
textStatus: string,
|
||||
|
@ -1482,7 +1489,7 @@ declare class JQuery {
|
|||
*
|
||||
* @param attributes An object of attribute-value pairs to set.
|
||||
*/
|
||||
attr(attributes: Object): JQuery;
|
||||
attr(attributes: {}): JQuery;
|
||||
/**
|
||||
* Get the value of an attribute for the first element in the set of matched elements.
|
||||
*
|
||||
|
@ -1532,7 +1539,7 @@ declare class JQuery {
|
|||
*
|
||||
* @param properties An object of property-value pairs to set.
|
||||
*/
|
||||
prop(properties: Object): JQuery;
|
||||
prop(properties: {}): JQuery;
|
||||
/**
|
||||
* Set one or more properties for the set of matched elements.
|
||||
*
|
||||
|
@ -1598,7 +1605,7 @@ declare class JQuery {
|
|||
/**
|
||||
* Get the current value of the first element in the set of matched elements.
|
||||
*/
|
||||
val(_: void): any;
|
||||
val(_: void): string | string[] | number;
|
||||
/**
|
||||
* Set the value of each element in the set of matched elements.
|
||||
*
|
||||
|
@ -1634,7 +1641,7 @@ declare class JQuery {
|
|||
*
|
||||
* @param properties An object of property-value pairs to set.
|
||||
*/
|
||||
css(properties: Object): JQuery;
|
||||
css(properties: {}): JQuery;
|
||||
/**
|
||||
* Get the value of style properties for the first element in the set of matched elements.
|
||||
*
|
||||
|
@ -1847,7 +1854,7 @@ declare class JQuery {
|
|||
* @param complete A function to call once the animation is complete.
|
||||
*/
|
||||
animate(
|
||||
properties: Object,
|
||||
properties: {},
|
||||
duration?: string | number,
|
||||
complete?: Function
|
||||
): JQuery;
|
||||
|
@ -1860,7 +1867,7 @@ declare class JQuery {
|
|||
* @param complete A function to call once the animation is complete.
|
||||
*/
|
||||
animate(
|
||||
properties: Object,
|
||||
properties: {},
|
||||
duration?: string | number,
|
||||
easing?: string,
|
||||
complete?: Function
|
||||
|
@ -1871,7 +1878,7 @@ declare class JQuery {
|
|||
* @param properties An object of CSS properties and values that the animation will move toward.
|
||||
* @param options A map of additional options to pass to the method.
|
||||
*/
|
||||
animate(properties: Object, options: JQueryAnimationOptions): JQuery;
|
||||
animate(properties: {}, options: JQueryAnimationOptions): JQuery;
|
||||
|
||||
/**
|
||||
* Set a timer to delay execution of subsequent items in the queue.
|
||||
|
@ -2920,14 +2927,14 @@ declare class JQuery {
|
|||
* @param eventType A string containing a JavaScript event type, such as click or submit.
|
||||
* @param extraParameters Additional parameters to pass along to the event handler.
|
||||
*/
|
||||
trigger(eventType: string, extraParameters?: any[] | Object): JQuery;
|
||||
trigger(eventType: string, extraParameters?: any[] | {}): JQuery;
|
||||
/**
|
||||
* Execute all handlers and behaviors attached to the matched elements for the given event type.
|
||||
*
|
||||
* @param event A jQuery.Event object.
|
||||
* @param extraParameters Additional parameters to pass along to the event handler.
|
||||
*/
|
||||
trigger(event: JQueryEventObject, extraParameters?: any[] | Object): JQuery;
|
||||
trigger(event: JQueryEventObject, extraParameters?: any[] | {}): JQuery;
|
||||
|
||||
/**
|
||||
* Execute all handlers attached to an element for an event.
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,329 +0,0 @@
|
|||
// flow-typed signature: c30aa20539f52183d4d30dd36d8ab9c2
|
||||
// flow-typed version: 886cf7c002/moment_v2.3.x/flow_>=v0.63.x
|
||||
|
||||
type moment$MomentOptions = {
|
||||
y?: number | string,
|
||||
year?: number | string,
|
||||
years?: number | string,
|
||||
M?: number | string,
|
||||
month?: number | string,
|
||||
months?: number | string,
|
||||
d?: number | string,
|
||||
day?: number | string,
|
||||
days?: number | string,
|
||||
date?: number | string,
|
||||
h?: number | string,
|
||||
hour?: number | string,
|
||||
hours?: number | string,
|
||||
m?: number | string,
|
||||
minute?: number | string,
|
||||
minutes?: number | string,
|
||||
s?: number | string,
|
||||
second?: number | string,
|
||||
seconds?: number | string,
|
||||
ms?: number | string,
|
||||
millisecond?: number | string,
|
||||
milliseconds?: number | string
|
||||
};
|
||||
|
||||
type moment$MomentObject = {
|
||||
years: number,
|
||||
months: number,
|
||||
date: number,
|
||||
hours: number,
|
||||
minutes: number,
|
||||
seconds: number,
|
||||
milliseconds: number
|
||||
};
|
||||
|
||||
type moment$MomentCreationData = {
|
||||
input: string,
|
||||
format: string,
|
||||
locale: Object,
|
||||
isUTC: boolean,
|
||||
strict: boolean
|
||||
};
|
||||
|
||||
type moment$CalendarFormat = string | ((moment: moment$Moment) => string);
|
||||
|
||||
type moment$CalendarFormats = {
|
||||
sameDay?: moment$CalendarFormat,
|
||||
nextDay?: moment$CalendarFormat,
|
||||
nextWeek?: moment$CalendarFormat,
|
||||
lastDay?: moment$CalendarFormat,
|
||||
lastWeek?: moment$CalendarFormat,
|
||||
sameElse?: moment$CalendarFormat
|
||||
};
|
||||
|
||||
declare class moment$LocaleData {
|
||||
months(moment: moment$Moment): string,
|
||||
monthsShort(moment: moment$Moment): string,
|
||||
monthsParse(month: string): number,
|
||||
weekdays(moment: moment$Moment): string,
|
||||
weekdaysShort(moment: moment$Moment): string,
|
||||
weekdaysMin(moment: moment$Moment): string,
|
||||
weekdaysParse(weekDay: string): number,
|
||||
longDateFormat(dateFormat: string): string,
|
||||
isPM(date: string): boolean,
|
||||
meridiem(hours: number, minutes: number, isLower: boolean): string,
|
||||
calendar(
|
||||
key:
|
||||
| "sameDay"
|
||||
| "nextDay"
|
||||
| "lastDay"
|
||||
| "nextWeek"
|
||||
| "prevWeek"
|
||||
| "sameElse",
|
||||
moment: moment$Moment
|
||||
): string,
|
||||
relativeTime(
|
||||
number: number,
|
||||
withoutSuffix: boolean,
|
||||
key: "s" | "m" | "mm" | "h" | "hh" | "d" | "dd" | "M" | "MM" | "y" | "yy",
|
||||
isFuture: boolean
|
||||
): string,
|
||||
pastFuture(diff: any, relTime: string): string,
|
||||
ordinal(number: number): string,
|
||||
preparse(str: string): any,
|
||||
postformat(str: string): any,
|
||||
week(moment: moment$Moment): string,
|
||||
invalidDate(): string,
|
||||
firstDayOfWeek(): number,
|
||||
firstDayOfYear(): number
|
||||
}
|
||||
declare class moment$MomentDuration {
|
||||
humanize(suffix?: boolean): string,
|
||||
milliseconds(): number,
|
||||
asMilliseconds(): number,
|
||||
seconds(): number,
|
||||
asSeconds(): number,
|
||||
minutes(): number,
|
||||
asMinutes(): number,
|
||||
hours(): number,
|
||||
asHours(): number,
|
||||
days(): number,
|
||||
asDays(): number,
|
||||
months(): number,
|
||||
asMonths(): number,
|
||||
years(): number,
|
||||
asYears(): number,
|
||||
add(value: number | moment$MomentDuration | Object, unit?: string): this,
|
||||
subtract(value: number | moment$MomentDuration | Object, unit?: string): this,
|
||||
as(unit: string): number,
|
||||
get(unit: string): number,
|
||||
toJSON(): string,
|
||||
toISOString(): string,
|
||||
isValid(): boolean
|
||||
}
|
||||
declare class moment$Moment {
|
||||
static ISO_8601: string,
|
||||
static (
|
||||
string?: string,
|
||||
format?: string | Array<string>,
|
||||
strict?: boolean
|
||||
): moment$Moment,
|
||||
static (
|
||||
string?: string,
|
||||
format?: string | Array<string>,
|
||||
locale?: string,
|
||||
strict?: boolean
|
||||
): moment$Moment,
|
||||
static (
|
||||
initDate: ?Object | number | Date | Array<number> | moment$Moment | string
|
||||
): moment$Moment,
|
||||
static unix(seconds: number): moment$Moment,
|
||||
static utc(): moment$Moment,
|
||||
static utc(number: number | Array<number>): moment$Moment,
|
||||
static utc(
|
||||
str: string,
|
||||
str2?: string | Array<string>,
|
||||
str3?: string
|
||||
): moment$Moment,
|
||||
static utc(moment: moment$Moment): moment$Moment,
|
||||
static utc(date: Date): moment$Moment,
|
||||
static parseZone(): moment$Moment,
|
||||
static parseZone(rawDate: string): moment$Moment,
|
||||
static parseZone(
|
||||
rawDate: string,
|
||||
format: string | Array<string>
|
||||
): moment$Moment,
|
||||
static parseZone(
|
||||
rawDate: string,
|
||||
format: string,
|
||||
strict: boolean
|
||||
): moment$Moment,
|
||||
static parseZone(
|
||||
rawDate: string,
|
||||
format: string,
|
||||
locale: string,
|
||||
strict: boolean
|
||||
): moment$Moment,
|
||||
isValid(): boolean,
|
||||
invalidAt(): 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
creationData(): moment$MomentCreationData,
|
||||
millisecond(number: number): this,
|
||||
milliseconds(number: number): this,
|
||||
millisecond(): number,
|
||||
milliseconds(): number,
|
||||
second(number: number): this,
|
||||
seconds(number: number): this,
|
||||
second(): number,
|
||||
seconds(): number,
|
||||
minute(number: number): this,
|
||||
minutes(number: number): this,
|
||||
minute(): number,
|
||||
minutes(): number,
|
||||
hour(number: number): this,
|
||||
hours(number: number): this,
|
||||
hour(): number,
|
||||
hours(): number,
|
||||
date(number: number): this,
|
||||
dates(number: number): this,
|
||||
date(): number,
|
||||
dates(): number,
|
||||
day(day: number | string): this,
|
||||
days(day: number | string): this,
|
||||
day(): number,
|
||||
days(): number,
|
||||
weekday(number: number): this,
|
||||
weekday(): number,
|
||||
isoWeekday(number: number): this,
|
||||
isoWeekday(): number,
|
||||
dayOfYear(number: number): this,
|
||||
dayOfYear(): number,
|
||||
week(number: number): this,
|
||||
weeks(number: number): this,
|
||||
week(): number,
|
||||
weeks(): number,
|
||||
isoWeek(number: number): this,
|
||||
isoWeeks(number: number): this,
|
||||
isoWeek(): number,
|
||||
isoWeeks(): number,
|
||||
month(number: number): this,
|
||||
months(number: number): this,
|
||||
month(): number,
|
||||
months(): number,
|
||||
quarter(number: number): this,
|
||||
quarter(): number,
|
||||
year(number: number): this,
|
||||
years(number: number): this,
|
||||
year(): number,
|
||||
years(): number,
|
||||
weekYear(number: number): this,
|
||||
weekYear(): number,
|
||||
isoWeekYear(number: number): this,
|
||||
isoWeekYear(): number,
|
||||
weeksInYear(): number,
|
||||
isoWeeksInYear(): number,
|
||||
get(string: string): number,
|
||||
set(unit: string, value: number): this,
|
||||
set(options: { [unit: string]: number }): this,
|
||||
static max(...dates: Array<moment$Moment>): moment$Moment,
|
||||
static max(dates: Array<moment$Moment>): moment$Moment,
|
||||
static min(...dates: Array<moment$Moment>): moment$Moment,
|
||||
static min(dates: Array<moment$Moment>): moment$Moment,
|
||||
add(
|
||||
value: number | moment$MomentDuration | moment$Moment | Object,
|
||||
unit?: string
|
||||
): this,
|
||||
subtract(
|
||||
value: number | moment$MomentDuration | moment$Moment | string | Object,
|
||||
unit?: string
|
||||
): this,
|
||||
startOf(unit: string): this,
|
||||
endOf(unit: string): this,
|
||||
local(): this,
|
||||
utc(): this,
|
||||
utcOffset(
|
||||
offset: number | string,
|
||||
keepLocalTime?: boolean,
|
||||
keepMinutes?: boolean
|
||||
): this,
|
||||
utcOffset(): number,
|
||||
format(format?: string): string,
|
||||
fromNow(removeSuffix?: boolean): string,
|
||||
from(
|
||||
value: moment$Moment | string | number | Date | Array<number>,
|
||||
removePrefix?: boolean
|
||||
): string,
|
||||
toNow(removePrefix?: boolean): string,
|
||||
to(
|
||||
value: moment$Moment | string | number | Date | Array<number>,
|
||||
removePrefix?: boolean
|
||||
): string,
|
||||
calendar(refTime?: any, formats?: moment$CalendarFormats): string,
|
||||
diff(
|
||||
date: moment$Moment | string | number | Date | Array<number>,
|
||||
format?: string,
|
||||
floating?: boolean
|
||||
): number,
|
||||
valueOf(): number,
|
||||
unix(): number,
|
||||
daysInMonth(): number,
|
||||
toDate(): Date,
|
||||
toArray(): Array<number>,
|
||||
toJSON(): string,
|
||||
toISOString(
|
||||
keepOffset?: boolean
|
||||
): string,
|
||||
toObject(): moment$MomentObject,
|
||||
isBefore(
|
||||
date?: moment$Moment | string | number | Date | Array<number>,
|
||||
units?: ?string
|
||||
): boolean,
|
||||
isSame(
|
||||
date?: moment$Moment | string | number | Date | Array<number>,
|
||||
units?: ?string
|
||||
): boolean,
|
||||
isAfter(
|
||||
date?: moment$Moment | string | number | Date | Array<number>,
|
||||
units?: ?string
|
||||
): boolean,
|
||||
isSameOrBefore(
|
||||
date?: moment$Moment | string | number | Date | Array<number>,
|
||||
units?: ?string
|
||||
): boolean,
|
||||
isSameOrAfter(
|
||||
date?: moment$Moment | string | number | Date | Array<number>,
|
||||
units?: ?string
|
||||
): boolean,
|
||||
isBetween(
|
||||
fromDate: moment$Moment | string | number | Date | Array<number>,
|
||||
toDate?: ?moment$Moment | string | number | Date | Array<number>,
|
||||
granularity?: ?string,
|
||||
inclusion?: ?string
|
||||
): boolean,
|
||||
isDST(): boolean,
|
||||
isDSTShifted(): boolean,
|
||||
isLeapYear(): boolean,
|
||||
clone(): moment$Moment,
|
||||
static isMoment(obj: any): boolean,
|
||||
static isDate(obj: any): boolean,
|
||||
static locale(locale: string, localeData?: Object): string,
|
||||
static updateLocale(locale: string, localeData?: ?Object): void,
|
||||
static locale(locales: Array<string>): string,
|
||||
locale(locale: string, customization?: Object | null): moment$Moment,
|
||||
locale(): string,
|
||||
static months(): Array<string>,
|
||||
static monthsShort(): Array<string>,
|
||||
static weekdays(): Array<string>,
|
||||
static weekdaysShort(): Array<string>,
|
||||
static weekdaysMin(): Array<string>,
|
||||
static months(): string,
|
||||
static monthsShort(): string,
|
||||
static weekdays(): string,
|
||||
static weekdaysShort(): string,
|
||||
static weekdaysMin(): string,
|
||||
static localeData(key?: string): moment$LocaleData,
|
||||
static duration(
|
||||
value: number | Object | string,
|
||||
unit?: string
|
||||
): moment$MomentDuration,
|
||||
static isDuration(obj: any): boolean,
|
||||
static normalizeUnits(unit: string): string,
|
||||
static invalid(object: any): moment$Moment
|
||||
}
|
||||
|
||||
declare module "moment" {
|
||||
declare module.exports: Class<moment$Moment>;
|
||||
}
|
|
@ -1,192 +1,276 @@
|
|||
// flow-typed signature: d4e793bc07ef1dc9906a244b12960f7b
|
||||
// flow-typed version: cf33ff8762/react-redux_v5.x.x/flow_>=v0.63.0
|
||||
// flow-typed signature: f06f00c3ad0cfedb90c0c6de04b219f3
|
||||
// flow-typed version: 3a6d556e4b/react-redux_v5.x.x/flow_>=v0.89.x
|
||||
|
||||
import type { Dispatch, Store } from "redux";
|
||||
/**
|
||||
The order of type arguments for connect() is as follows:
|
||||
|
||||
declare module "react-redux" {
|
||||
import type { ComponentType, ElementConfig } from 'react';
|
||||
connect<Props, OwnProps, StateProps, DispatchProps, State, Dispatch>(…)
|
||||
|
||||
declare export class Provider<S, A> extends React$Component<{
|
||||
store: Store<S, A>,
|
||||
children?: any
|
||||
}> {}
|
||||
In Flow v0.89 only the first two are mandatory to specify. Other 4 can be repaced with the new awesome type placeholder:
|
||||
|
||||
declare export function createProvider(
|
||||
storeKey?: string,
|
||||
subKey?: string
|
||||
): Provider<*, *>;
|
||||
connect<Props, OwnProps, _, _, _, _>(…)
|
||||
|
||||
/*
|
||||
But beware, in case of weird type errors somewhere in random places
|
||||
just type everything and get to a green field and only then try to
|
||||
remove the definitions you see bogus.
|
||||
|
||||
Decrypting the abbreviations:
|
||||
WC = Component being wrapped
|
||||
S = State
|
||||
A = Action
|
||||
D = Dispatch
|
||||
OP = OwnProps
|
||||
SP = StateProps
|
||||
DP = DispatchProps
|
||||
MP = Merge props
|
||||
MDP = Map dispatch to props object
|
||||
RSP = Returned state props
|
||||
RDP = Returned dispatch props
|
||||
RMP = Returned merge props
|
||||
CP = Props for returned component
|
||||
Com = React Component
|
||||
*/
|
||||
ST = Static properties of Com
|
||||
EFO = Extra factory options (used only in connectAdvanced)
|
||||
*/
|
||||
|
||||
declare type MapStateToProps<S: Object, SP: Object, RSP: Object> = (state: S, props: SP) => RSP;
|
||||
declare module "react-redux" {
|
||||
// ------------------------------------------------------------
|
||||
// Typings for connect()
|
||||
// ------------------------------------------------------------
|
||||
|
||||
declare type MapDispatchToProps<A, OP: Object, RDP: Object> = (dispatch: Dispatch<A>, ownProps: OP) => RDP;
|
||||
|
||||
declare type MergeProps<SP: Object, DP: Object, MP: Object, RMP: Object> = (
|
||||
stateProps: SP,
|
||||
dispatchProps: DP,
|
||||
ownProps: MP
|
||||
) => RMP;
|
||||
|
||||
declare type ConnectOptions<S: Object, OP: Object, RSP: Object, RMP: Object> = {|
|
||||
declare export type Options<S, OP, SP, MP> = {|
|
||||
pure?: boolean,
|
||||
withRef?: boolean,
|
||||
areStatesEqual?: (next: S, prev: S) => boolean,
|
||||
areOwnPropsEqual?: (next: OP, prev: OP) => boolean,
|
||||
areStatePropsEqual?: (next: RSP, prev: RSP) => boolean,
|
||||
areMergedPropsEqual?: (next: RMP, prev: RMP) => boolean,
|
||||
storeKey?: string
|
||||
areStatePropsEqual?: (next: SP, prev: SP) => boolean,
|
||||
areMergedPropsEqual?: (next: MP, prev: MP) => boolean,
|
||||
storeKey?: string,
|
||||
|};
|
||||
|
||||
declare type OmitDispatch<Component> = $Diff<Component, {dispatch: Dispatch<*>}>;
|
||||
declare type MapStateToProps<-S, -OP, +SP> =
|
||||
| ((state: S, ownProps: OP) => SP)
|
||||
// If you want to use the factory function but get a strange error
|
||||
// like "function is not an object" then just type the factory function
|
||||
// like this:
|
||||
// const factory: (State, OwnProps) => (State, OwnProps) => StateProps
|
||||
// and provide the StateProps type to the SP type parameter.
|
||||
| ((state: S, ownProps: OP) => (state: S, ownProps: OP) => SP);
|
||||
|
||||
declare export function connect<
|
||||
Com: ComponentType<*>,
|
||||
declare type Bind<D> = <A, R>((...A) => R) => (...A) => $Call<D, R>;
|
||||
|
||||
declare type MapDispatchToPropsFn<D, -OP, +DP> =
|
||||
| ((dispatch: D, ownProps: OP) => DP)
|
||||
// If you want to use the factory function but get a strange error
|
||||
// like "function is not an object" then just type the factory function
|
||||
// like this:
|
||||
// const factory: (Dispatch, OwnProps) => (Dispatch, OwnProps) => DispatchProps
|
||||
// and provide the DispatchProps type to the DP type parameter.
|
||||
| ((dispatch: D, ownProps: OP) => (dispatch: D, ownProps: OP) => DP);
|
||||
|
||||
declare class ConnectedComponent<OP, +WC> extends React$Component<OP> {
|
||||
static +WrappedComponent: WC;
|
||||
getWrappedInstance(): React$ElementRef<WC>;
|
||||
}
|
||||
// The connection of the Wrapped Component and the Connected Component
|
||||
// happens here in `MP: P`. It means that type wise MP belongs to P,
|
||||
// so to say MP >= P.
|
||||
declare type Connector<P, OP, MP: P> = <WC: React$ComponentType<P>>(
|
||||
WC,
|
||||
) => Class<ConnectedComponent<OP, WC>> & WC;
|
||||
|
||||
// No `mergeProps` argument
|
||||
|
||||
// Got error like inexact OwnProps is incompatible with exact object type?
|
||||
// Just make the OP parameter for `connect()` an exact object.
|
||||
declare type MergeOP<OP, D> = {| ...$Exact<OP>, dispatch: D |};
|
||||
declare type MergeOPSP<OP, SP, D> = {| ...$Exact<OP>, ...SP, dispatch: D |};
|
||||
declare type MergeOPDP<OP, DP> = {| ...$Exact<OP>, ...DP |};
|
||||
declare type MergeOPSPDP<OP, SP, DP> = {| ...$Exact<OP>, ...SP, ...DP |};
|
||||
|
||||
declare export function connect<-P, -OP, -SP, -DP, -S, -D>(
|
||||
mapStateToProps?: null | void,
|
||||
mapDispatchToProps?: null | void,
|
||||
mergeProps?: null | void,
|
||||
options?: ?Options<S, OP, {||}, MergeOP<OP, D>>,
|
||||
): Connector<P, OP, MergeOP<OP, D>>;
|
||||
|
||||
declare export function connect<-P, -OP, -SP, -DP, -S, -D>(
|
||||
// If you get error here try adding return type to your mapStateToProps function
|
||||
mapStateToProps: MapStateToProps<S, OP, SP>,
|
||||
mapDispatchToProps?: null | void,
|
||||
mergeProps?: null | void,
|
||||
options?: ?Options<S, OP, SP, MergeOPSP<OP, SP, D>>,
|
||||
): Connector<P, OP, MergeOPSP<OP, SP, D>>;
|
||||
|
||||
// In this case DP is an object of functions which has been bound to dispatch
|
||||
// by the given mapDispatchToProps function.
|
||||
declare export function connect<-P, -OP, -SP, -DP, S, D>(
|
||||
mapStateToProps: null | void,
|
||||
mapDispatchToProps: MapDispatchToPropsFn<D, OP, DP>,
|
||||
mergeProps?: null | void,
|
||||
options?: ?Options<S, OP, {||}, MergeOPDP<OP, DP>>,
|
||||
): Connector<P, OP, MergeOPDP<OP, DP>>;
|
||||
|
||||
// In this case DP is an object of action creators not yet bound to dispatch,
|
||||
// this difference is not important in the vanila redux,
|
||||
// but in case of usage with redux-thunk, the return type may differ.
|
||||
declare export function connect<-P, -OP, -SP, -DP, S, D>(
|
||||
mapStateToProps: null | void,
|
||||
mapDispatchToProps: DP,
|
||||
mergeProps?: null | void,
|
||||
options?: ?Options<S, OP, {||}, MergeOPDP<OP, DP>>,
|
||||
): Connector<P, OP, MergeOPDP<OP, $ObjMap<DP, Bind<D>>>>;
|
||||
|
||||
declare export function connect<-P, -OP, -SP, -DP, S, D>(
|
||||
// If you get error here try adding return type to your mapStateToProps function
|
||||
mapStateToProps: MapStateToProps<S, OP, SP>,
|
||||
mapDispatchToProps: MapDispatchToPropsFn<D, OP, DP>,
|
||||
mergeProps?: null | void,
|
||||
options?: ?Options<S, OP, SP, {| ...OP, ...SP, ...DP |}>,
|
||||
): Connector<P, OP, {| ...OP, ...SP, ...DP |}>;
|
||||
|
||||
declare export function connect<-P, -OP, -SP, -DP, S, D>(
|
||||
// If you get error here try adding return type to your mapStateToProps function
|
||||
mapStateToProps: MapStateToProps<S, OP, SP>,
|
||||
mapDispatchToProps: DP,
|
||||
mergeProps?: null | void,
|
||||
options?: ?Options<S, OP, SP, MergeOPSPDP<OP, SP, DP>>,
|
||||
): Connector<P, OP, MergeOPSPDP<OP, SP, $ObjMap<DP, Bind<D>>>>;
|
||||
|
||||
// With `mergeProps` argument
|
||||
|
||||
declare type MergeProps<+P, -OP, -SP, -DP> = (
|
||||
stateProps: SP,
|
||||
dispatchProps: DP,
|
||||
ownProps: OP,
|
||||
) => P;
|
||||
|
||||
declare export function connect<-P, -OP, -SP: {||}, -DP: {||}, S, D>(
|
||||
mapStateToProps: null | void,
|
||||
mapDispatchToProps: null | void,
|
||||
// If you get error here try adding return type to you mapStateToProps function
|
||||
mergeProps: MergeProps<P, OP, {||}, {| dispatch: D |}>,
|
||||
options?: ?Options<S, OP, {||}, P>,
|
||||
): Connector<P, OP, P>;
|
||||
|
||||
declare export function connect<-P, -OP, -SP, -DP: {||}, S, D>(
|
||||
mapStateToProps: MapStateToProps<S, OP, SP>,
|
||||
mapDispatchToProps: null | void,
|
||||
// If you get error here try adding return type to you mapStateToProps function
|
||||
mergeProps: MergeProps<P, OP, SP, {| dispatch: D |}>,
|
||||
options?: ?Options<S, OP, SP, P>,
|
||||
): Connector<P, OP, P>;
|
||||
|
||||
// In this case DP is an object of functions which has been bound to dispatch
|
||||
// by the given mapDispatchToProps function.
|
||||
declare export function connect<-P, -OP, -SP: {||}, -DP, S, D>(
|
||||
mapStateToProps: null | void,
|
||||
mapDispatchToProps: MapDispatchToPropsFn<D, OP, DP>,
|
||||
mergeProps: MergeProps<P, OP, {||}, DP>,
|
||||
options?: ?Options<S, OP, {||}, P>,
|
||||
): Connector<P, OP, P>;
|
||||
|
||||
// In this case DP is an object of action creators not yet bound to dispatch,
|
||||
// this difference is not important in the vanila redux,
|
||||
// but in case of usage with redux-thunk, the return type may differ.
|
||||
declare export function connect<-P, -OP, -SP: {||}, -DP, S, D>(
|
||||
mapStateToProps: null | void,
|
||||
mapDispatchToProps: DP,
|
||||
mergeProps: MergeProps<P, OP, {||}, $ObjMap<DP, Bind<D>>>,
|
||||
options?: ?Options<S, OP, {||}, P>,
|
||||
): Connector<P, OP, P>;
|
||||
|
||||
// In this case DP is an object of functions which has been bound to dispatch
|
||||
// by the given mapDispatchToProps function.
|
||||
declare export function connect<-P, -OP, -SP, -DP, S, D>(
|
||||
mapStateToProps: MapStateToProps<S, OP, SP>,
|
||||
mapDispatchToProps: MapDispatchToPropsFn<D, OP, DP>,
|
||||
mergeProps: MergeProps<P, OP, SP, DP>,
|
||||
options?: ?Options<S, OP, SP, P>,
|
||||
): Connector<P, OP, P>;
|
||||
|
||||
// In this case DP is an object of action creators not yet bound to dispatch,
|
||||
// this difference is not important in the vanila redux,
|
||||
// but in case of usage with redux-thunk, the return type may differ.
|
||||
declare export function connect<-P, -OP, -SP, -DP, S, D>(
|
||||
mapStateToProps: MapStateToProps<S, OP, SP>,
|
||||
mapDispatchToProps: DP,
|
||||
mergeProps: MergeProps<P, OP, SP, $ObjMap<DP, Bind<D>>>,
|
||||
options?: ?Options<S, OP, SP, P>,
|
||||
): Connector<P, OP, P>;
|
||||
|
||||
// ------------------------------------------------------------
|
||||
// Typings for Provider
|
||||
// ------------------------------------------------------------
|
||||
|
||||
declare export class Provider<Store> extends React$Component<{
|
||||
store: Store,
|
||||
children?: React$Node,
|
||||
}> {}
|
||||
|
||||
declare export function createProvider(
|
||||
storeKey?: string,
|
||||
subKey?: string,
|
||||
): Class<Provider<*>>;
|
||||
|
||||
// ------------------------------------------------------------
|
||||
// Typings for connectAdvanced()
|
||||
// ------------------------------------------------------------
|
||||
|
||||
declare type ConnectAdvancedOptions = {
|
||||
getDisplayName?: (name: string) => string,
|
||||
methodName?: string,
|
||||
renderCountProp?: string,
|
||||
shouldHandleStateChanges?: boolean,
|
||||
storeKey?: string,
|
||||
withRef?: boolean,
|
||||
};
|
||||
|
||||
declare type SelectorFactoryOptions<Com> = {
|
||||
getDisplayName: (name: string) => string,
|
||||
methodName: string,
|
||||
renderCountProp: ?string,
|
||||
shouldHandleStateChanges: boolean,
|
||||
storeKey: string,
|
||||
withRef: boolean,
|
||||
displayName: string,
|
||||
wrappedComponentName: string,
|
||||
WrappedComponent: Com,
|
||||
};
|
||||
|
||||
declare type MapStateToPropsEx<S: Object, SP: Object, RSP: Object> = (
|
||||
state: S,
|
||||
props: SP,
|
||||
) => RSP;
|
||||
|
||||
declare type SelectorFactory<
|
||||
Com: React$ComponentType<*>,
|
||||
Dispatch,
|
||||
S: Object,
|
||||
DP: Object,
|
||||
RSP: Object,
|
||||
CP: $Diff<OmitDispatch<ElementConfig<Com>>, RSP>
|
||||
>(
|
||||
mapStateToProps: MapStateToProps<S, DP, RSP>,
|
||||
mapDispatchToProps?: null
|
||||
): (component: Com) => ComponentType<CP & DP>;
|
||||
|
||||
declare export function connect<Com: ComponentType<*>>(
|
||||
mapStateToProps?: null,
|
||||
mapDispatchToProps?: null
|
||||
): (component: Com) => ComponentType<OmitDispatch<ElementConfig<Com>>>;
|
||||
|
||||
declare export function connect<
|
||||
Com: ComponentType<*>,
|
||||
A,
|
||||
S: Object,
|
||||
DP: Object,
|
||||
SP: Object,
|
||||
RSP: Object,
|
||||
RDP: Object,
|
||||
CP: $Diff<$Diff<ElementConfig<Com>, RSP>, RDP>
|
||||
>(
|
||||
mapStateToProps: MapStateToProps<S, SP, RSP>,
|
||||
mapDispatchToProps: MapDispatchToProps<A, DP, RDP>
|
||||
): (component: Com) => ComponentType<CP & SP & DP>;
|
||||
|
||||
declare export function connect<
|
||||
Com: ComponentType<*>,
|
||||
A,
|
||||
OP: Object,
|
||||
DP: Object,
|
||||
PR: Object,
|
||||
CP: $Diff<ElementConfig<Com>, DP>
|
||||
>(
|
||||
mapStateToProps?: null,
|
||||
mapDispatchToProps: MapDispatchToProps<A, OP, DP>
|
||||
): (Com) => ComponentType<CP & OP>;
|
||||
EFO: Object,
|
||||
CP: Object,
|
||||
> = (
|
||||
dispatch: Dispatch,
|
||||
factoryOptions: SelectorFactoryOptions<Com> & EFO,
|
||||
) => MapStateToPropsEx<S, OP, CP>;
|
||||
|
||||
declare export function connect<
|
||||
Com: ComponentType<*>,
|
||||
MDP: Object
|
||||
>(
|
||||
mapStateToProps?: null,
|
||||
mapDispatchToProps: MDP
|
||||
): (component: Com) => ComponentType<$Diff<ElementConfig<Com>, MDP>>;
|
||||
|
||||
declare export function connect<
|
||||
Com: ComponentType<*>,
|
||||
declare export function connectAdvanced<
|
||||
Com: React$ComponentType<*>,
|
||||
D,
|
||||
S: Object,
|
||||
SP: Object,
|
||||
RSP: Object,
|
||||
MDP: Object,
|
||||
CP: $Diff<ElementConfig<Com>, RSP>
|
||||
>(
|
||||
mapStateToProps: MapStateToProps<S, SP, RSP>,
|
||||
mapDispatchToPRops: MDP
|
||||
): (component: Com) => ComponentType<$Diff<CP, MDP> & SP>;
|
||||
|
||||
declare export function connect<
|
||||
Com: ComponentType<*>,
|
||||
A,
|
||||
S: Object,
|
||||
DP: Object,
|
||||
SP: Object,
|
||||
RSP: Object,
|
||||
RDP: Object,
|
||||
MP: Object,
|
||||
RMP: Object,
|
||||
CP: $Diff<ElementConfig<Com>, RMP>
|
||||
>(
|
||||
mapStateToProps: MapStateToProps<S, SP, RSP>,
|
||||
mapDispatchToProps: ?MapDispatchToProps<A, DP, RDP>,
|
||||
mergeProps: MergeProps<RSP, RDP, MP, RMP>
|
||||
): (component: Com) => ComponentType<CP & SP & DP & MP>;
|
||||
|
||||
declare export function connect<
|
||||
Com: ComponentType<*>,
|
||||
A,
|
||||
S: Object,
|
||||
DP: Object,
|
||||
SP: Object,
|
||||
RSP: Object,
|
||||
RDP: Object,
|
||||
MDP: Object,
|
||||
MP: Object,
|
||||
RMP: Object,
|
||||
CP: $Diff<ElementConfig<Com>, RMP>
|
||||
>(
|
||||
mapStateToProps: MapStateToProps<S, SP, RSP>,
|
||||
mapDispatchToProps: MDP,
|
||||
mergeProps: MergeProps<RSP, RDP, MP, RMP>
|
||||
): (component: Com) => ComponentType<CP & SP & DP & MP>;
|
||||
|
||||
declare export function connect<Com: ComponentType<*>,
|
||||
A,
|
||||
S: Object,
|
||||
DP: Object,
|
||||
SP: Object,
|
||||
RSP: Object,
|
||||
RDP: Object,
|
||||
MP: Object,
|
||||
RMP: Object
|
||||
>(
|
||||
mapStateToProps: ?MapStateToProps<S, SP, RSP>,
|
||||
mapDispatchToProps: ?MapDispatchToProps<A, DP, RDP>,
|
||||
mergeProps: ?MergeProps<RSP, RDP, MP, RMP>,
|
||||
options: ConnectOptions<S, SP & DP & MP, RSP, RMP>
|
||||
): (component: Com) => ComponentType<$Diff<ElementConfig<Com>, RMP> & SP & DP & MP>;
|
||||
|
||||
declare export function connect<Com: ComponentType<*>,
|
||||
A,
|
||||
S: Object,
|
||||
DP: Object,
|
||||
SP: Object,
|
||||
RSP: Object,
|
||||
RDP: Object,
|
||||
MDP: Object,
|
||||
MP: Object,
|
||||
RMP: Object
|
||||
>(
|
||||
mapStateToProps: ?MapStateToProps<S, SP, RSP>,
|
||||
mapDispatchToProps: ?MapDispatchToProps<A, DP, RDP>,
|
||||
mergeProps: MDP,
|
||||
options: ConnectOptions<S, SP & DP & MP, RSP, RMP>
|
||||
): (component: Com) => ComponentType<$Diff<ElementConfig<Com>, RMP> & SP & DP & MP>;
|
||||
OP: Object,
|
||||
CP: Object,
|
||||
EFO: Object,
|
||||
ST: { [_: $Keys<Com>]: any },
|
||||
>(
|
||||
selectorFactory: SelectorFactory<Com, D, S, OP, EFO, CP>,
|
||||
connectAdvancedOptions: ?(ConnectAdvancedOptions & EFO),
|
||||
): (component: Com) => React$ComponentType<OP> & $Shape<ST>;
|
||||
|
||||
declare export default {
|
||||
Provider: typeof Provider,
|
||||
createProvider: typeof createProvider,
|
||||
connect: typeof connect,
|
||||
connectAdvanced: typeof connectAdvanced,
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// flow-typed signature: df80bdd535bfed9cf3223e077f3b4543
|
||||
// flow-typed version: c4c8963c9c/redux_v4.x.x/flow_>=v0.55.x
|
||||
|
||||
declare module 'redux' {
|
||||
|
||||
/*
|
144
ios/Podfile.lock
144
ios/Podfile.lock
|
@ -7,41 +7,41 @@ PODS:
|
|||
- Fabric (~> 1.9.0)
|
||||
- DoubleConversion (1.1.6)
|
||||
- Fabric (1.9.0)
|
||||
- Firebase/Core (5.15.0):
|
||||
- Firebase/Core (5.18.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseAnalytics (= 5.4.0)
|
||||
- Firebase/CoreOnly (5.15.0):
|
||||
- FirebaseCore (= 5.1.10)
|
||||
- Firebase/DynamicLinks (5.15.0):
|
||||
- FirebaseAnalytics (= 5.7.0)
|
||||
- Firebase/CoreOnly (5.18.0):
|
||||
- FirebaseCore (= 5.3.1)
|
||||
- Firebase/DynamicLinks (5.18.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseDynamicLinks (= 3.3.0)
|
||||
- FirebaseAnalytics (5.4.0):
|
||||
- FirebaseCore (~> 5.1)
|
||||
- FirebaseInstanceID (~> 3.3)
|
||||
- GoogleAppMeasurement (= 5.4.0)
|
||||
- FirebaseDynamicLinks (= 3.4.1)
|
||||
- FirebaseAnalytics (5.7.0):
|
||||
- FirebaseCore (~> 5.3)
|
||||
- FirebaseInstanceID (~> 3.6)
|
||||
- GoogleAppMeasurement (= 5.7.0)
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 5.2)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2)
|
||||
- GoogleUtilities/Network (~> 5.2)
|
||||
- "GoogleUtilities/NSData+zlib (~> 5.2)"
|
||||
- nanopb (~> 0.3)
|
||||
- FirebaseAnalyticsInterop (1.1.0)
|
||||
- FirebaseCore (5.1.10):
|
||||
- FirebaseAnalyticsInterop (1.2.0)
|
||||
- FirebaseCore (5.3.1):
|
||||
- GoogleUtilities/Logger (~> 5.2)
|
||||
- FirebaseDynamicLinks (3.3.0):
|
||||
- FirebaseDynamicLinks (3.4.1):
|
||||
- FirebaseAnalytics (~> 5.1)
|
||||
- FirebaseAnalyticsInterop (~> 1.0)
|
||||
- FirebaseCore (~> 5.1)
|
||||
- FirebaseInstanceID (3.3.0):
|
||||
- FirebaseCore (~> 5.1)
|
||||
- GoogleUtilities/Environment (~> 5.3)
|
||||
- GoogleUtilities/UserDefaults (~> 5.3)
|
||||
- FirebaseCore (~> 5.2)
|
||||
- FirebaseInstanceID (3.7.0):
|
||||
- FirebaseCore (~> 5.2)
|
||||
- GoogleUtilities/Environment (~> 5.2)
|
||||
- GoogleUtilities/UserDefaults (~> 5.2)
|
||||
- FLAnimatedImage (1.0.12)
|
||||
- Folly (2016.10.31.00):
|
||||
- Folly (2018.10.22.00):
|
||||
- boost-for-react-native
|
||||
- DoubleConversion
|
||||
- glog
|
||||
- glog (0.3.5)
|
||||
- GoogleAppMeasurement (5.4.0):
|
||||
- GoogleAppMeasurement (5.7.0):
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 5.2)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2)
|
||||
- GoogleUtilities/Network (~> 5.2)
|
||||
|
@ -59,23 +59,23 @@ PODS:
|
|||
- GoogleToolboxForMac/Defines (= 2.2.0)
|
||||
- "GoogleToolboxForMac/NSString+URLArguments (= 2.2.0)"
|
||||
- "GoogleToolboxForMac/NSString+URLArguments (2.2.0)"
|
||||
- GoogleUtilities/AppDelegateSwizzler (5.3.7):
|
||||
- GoogleUtilities/AppDelegateSwizzler (5.4.1):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network
|
||||
- GoogleUtilities/Environment (5.3.7)
|
||||
- GoogleUtilities/Logger (5.3.7):
|
||||
- GoogleUtilities/Environment (5.4.1)
|
||||
- GoogleUtilities/Logger (5.4.1):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/MethodSwizzler (5.3.7):
|
||||
- GoogleUtilities/MethodSwizzler (5.4.1):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network (5.3.7):
|
||||
- GoogleUtilities/Network (5.4.1):
|
||||
- GoogleUtilities/Logger
|
||||
- "GoogleUtilities/NSData+zlib"
|
||||
- GoogleUtilities/Reachability
|
||||
- "GoogleUtilities/NSData+zlib (5.3.7)"
|
||||
- GoogleUtilities/Reachability (5.3.7):
|
||||
- "GoogleUtilities/NSData+zlib (5.4.1)"
|
||||
- GoogleUtilities/Reachability (5.4.1):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/UserDefaults (5.3.7):
|
||||
- GoogleUtilities/UserDefaults (5.4.1):
|
||||
- GoogleUtilities/Logger
|
||||
- GTMSessionFetcher/Core (1.2.1)
|
||||
- nanopb (0.3.901):
|
||||
|
@ -84,8 +84,8 @@ PODS:
|
|||
- nanopb/decode (0.3.901)
|
||||
- nanopb/encode (0.3.901)
|
||||
- ObjectiveDropboxOfficial (3.9.4)
|
||||
- React (0.57.8):
|
||||
- React/Core (= 0.57.8)
|
||||
- React (0.59.1):
|
||||
- React/Core (= 0.59.1)
|
||||
- react-native-background-timer (2.1.1):
|
||||
- React
|
||||
- react-native-calendar-events (1.6.4):
|
||||
|
@ -99,42 +99,50 @@ PODS:
|
|||
- React
|
||||
- react-native-webrtc (1.67.1):
|
||||
- React
|
||||
- React/Core (0.57.8):
|
||||
- yoga (= 0.57.8.React)
|
||||
- React/CxxBridge (0.57.8):
|
||||
- Folly (= 2016.10.31.00)
|
||||
- React/Core (0.59.1):
|
||||
- yoga (= 0.59.1.React)
|
||||
- React/CxxBridge (0.59.1):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- React/Core
|
||||
- React/cxxreact
|
||||
- React/cxxreact (0.57.8):
|
||||
- React/jsiexecutor
|
||||
- React/cxxreact (0.59.1):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- Folly (= 2016.10.31.00)
|
||||
- React/jschelpers
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React/jsinspector
|
||||
- React/DevSupport (0.57.8):
|
||||
- React/DevSupport (0.59.1):
|
||||
- React/Core
|
||||
- React/RCTWebSocket
|
||||
- React/fishhook (0.57.8)
|
||||
- React/jschelpers (0.57.8):
|
||||
- Folly (= 2016.10.31.00)
|
||||
- React/PrivateDatabase
|
||||
- React/jsinspector (0.57.8)
|
||||
- React/PrivateDatabase (0.57.8)
|
||||
- React/RCTActionSheet (0.57.8):
|
||||
- React/fishhook (0.59.1)
|
||||
- React/jsi (0.59.1):
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React/jsiexecutor (0.59.1):
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React/cxxreact
|
||||
- React/jsi
|
||||
- React/jsinspector (0.59.1)
|
||||
- React/RCTActionSheet (0.59.1):
|
||||
- React/Core
|
||||
- React/RCTAnimation (0.57.8):
|
||||
- React/RCTAnimation (0.59.1):
|
||||
- React/Core
|
||||
- React/RCTBlob (0.57.8):
|
||||
- React/RCTBlob (0.59.1):
|
||||
- React/Core
|
||||
- React/RCTImage (0.57.8):
|
||||
- React/RCTImage (0.59.1):
|
||||
- React/Core
|
||||
- React/RCTNetwork
|
||||
- React/RCTLinkingIOS (0.57.8):
|
||||
- React/RCTLinkingIOS (0.59.1):
|
||||
- React/Core
|
||||
- React/RCTNetwork (0.57.8):
|
||||
- React/RCTNetwork (0.59.1):
|
||||
- React/Core
|
||||
- React/RCTText (0.57.8):
|
||||
- React/RCTText (0.59.1):
|
||||
- React/Core
|
||||
- React/RCTWebSocket (0.57.8):
|
||||
- React/RCTWebSocket (0.59.1):
|
||||
- React/Core
|
||||
- React/fishhook
|
||||
- React/RCTBlob
|
||||
|
@ -148,11 +156,11 @@ PODS:
|
|||
- React/Core
|
||||
- RNVectorIcons (6.0.2):
|
||||
- React
|
||||
- SDWebImage/Core (4.4.3)
|
||||
- SDWebImage/GIF (4.4.3):
|
||||
- SDWebImage/Core (4.4.6)
|
||||
- SDWebImage/GIF (4.4.6):
|
||||
- FLAnimatedImage (~> 1.0)
|
||||
- SDWebImage/Core
|
||||
- yoga (0.57.8.React)
|
||||
- yoga (0.59.1.React)
|
||||
|
||||
DEPENDENCIES:
|
||||
- Amplitude-iOS (~> 4.0.4)
|
||||
|
@ -244,23 +252,23 @@ SPEC CHECKSUMS:
|
|||
Crashlytics: 07fb167b1694128c1c9a5a5cc319b0e9c3ca0933
|
||||
DoubleConversion: bb338842f62ab1d708ceb63ec3d999f0f3d98ecd
|
||||
Fabric: f988e33c97f08930a413e08123064d2e5f68d655
|
||||
Firebase: 8bb9268bff82374f2cbaaabb143e725743c316ae
|
||||
FirebaseAnalytics: c06f9d70577d79074214700a71fd5d39de5550fb
|
||||
FirebaseAnalyticsInterop: e5f21be9af6548372e2f0815834ff909bff395a2
|
||||
FirebaseCore: 35747502d9e8c6ee217385ad04446c7c2aaf9c5c
|
||||
FirebaseDynamicLinks: c713da5f75c324f38fb2d57164bbc1c461aa6739
|
||||
FirebaseInstanceID: e2fa4cb35ef5558c200f7f0ad8a53e212215f93e
|
||||
Firebase: 02f3281965c075426141a0ce1277e9de6649cab9
|
||||
FirebaseAnalytics: 23851fe602c872130a2c5c55040b302120346cc2
|
||||
FirebaseAnalyticsInterop: efbe45c8385ec626e29f9525e5ebd38520dfb6c1
|
||||
FirebaseCore: 52f851b30e11360f1e67cf04b1edfebf0a47a2d3
|
||||
FirebaseDynamicLinks: f209c3caccd82102caa0e91d393e3ccc593501fd
|
||||
FirebaseInstanceID: bd6fc5a258884e206fd5c474ebe4f5b00e21770e
|
||||
FLAnimatedImage: 4a0b56255d9b05f18b6dd7ee06871be5d3b89e31
|
||||
Folly: c89ac2d5c6ab169cd7397ef27485c44f35f742c7
|
||||
glog: e8acf0ebbf99759d3ff18c86c292a5898282dcde
|
||||
GoogleAppMeasurement: 98b71f5e04142793729a5ef23e5b96651ff4b70f
|
||||
Folly: de497beb10f102453a1afa9edbf8cf8a251890de
|
||||
glog: aefd1eb5dda2ab95ba0938556f34b98e2da3a60d
|
||||
GoogleAppMeasurement: 6cf307834da065863f9faf4c0de0a936d81dd832
|
||||
GoogleSignIn: 7ff245e1a7b26d379099d3243a562f5747e23d39
|
||||
GoogleToolboxForMac: ff31605b7d66400dcec09bed5861689aebadda4d
|
||||
GoogleUtilities: 111a012f4c3a29c9e7c954c082fafd6ee3c999c0
|
||||
GoogleUtilities: 1e25823cbf46540b4284f6ef8e17b3a68ee12bbc
|
||||
GTMSessionFetcher: 32aeca0aa144acea523e1c8e053089dec2cb98ca
|
||||
nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48
|
||||
ObjectiveDropboxOfficial: a5afefc83f6467c42c45f2253f583f2ad1ffc701
|
||||
React: adbac0757ce35e92fbd447ab98c810209d27d9b0
|
||||
React: 34a405ead72252839fdc4afc1f972a7ed984af84
|
||||
react-native-background-timer: 0d34748e53a972507c66963490c775321a88f6f2
|
||||
react-native-calendar-events: ee9573e355711ac679e071be70789542431f4ce3
|
||||
react-native-fast-image: 47487b71169aea34868e7b38bf870b6b3f2157c5
|
||||
|
@ -269,8 +277,8 @@ SPEC CHECKSUMS:
|
|||
RNGoogleSignin: 361174d9a3090d295b06257162b560d8efc8a6ed
|
||||
RNSound: 53d2fc9c6589bd68daba530262b7560393def3ac
|
||||
RNVectorIcons: d819334932bcda3332deb3d2c8ea4d069e0b98f9
|
||||
SDWebImage: c5594f1a19c48d526d321e548902b56b479cd508
|
||||
yoga: 74cdf036c30820443b25ade59916236b1e95ee93
|
||||
SDWebImage: 3f3f0c02f09798048c47a5ed0a13f17b063572d8
|
||||
yoga: 8fb47f180b19b0dadb285a09e4c74c8a41721d3a
|
||||
|
||||
PODFILE CHECKSUM: b300161e95d65c24b91368803afb8873f4b873cc
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
11
package.json
11
package.json
|
@ -49,7 +49,6 @@
|
|||
"jquery-i18next": "1.2.0",
|
||||
"js-md5": "0.6.1",
|
||||
"js-utils": "github:jitsi/js-utils#73a67a7a60d52f8e895f50939c8fcbd1f20fe7b5",
|
||||
"jsc-android": "224109.1.0",
|
||||
"jsrsasign": "8.0.12",
|
||||
"jwt-decode": "2.2.0",
|
||||
"lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#74f48e168eec4c05fd8600812cc00e6e34e9ab90",
|
||||
|
@ -58,12 +57,12 @@
|
|||
"moment": "2.19.4",
|
||||
"moment-duration-format": "2.2.2",
|
||||
"postis": "2.2.0",
|
||||
"react": "16.6.3",
|
||||
"react-dom": "16.6.3",
|
||||
"react": "16.8.3",
|
||||
"react-dom": "16.8.3",
|
||||
"react-emoji-render": "0.4.6",
|
||||
"react-i18next": "7.13.0",
|
||||
"react-linkify": "0.2.2",
|
||||
"react-native": "0.57.8",
|
||||
"react-native": "0.59.1",
|
||||
"react-native-background-timer": "2.1.1",
|
||||
"react-native-calendar-events": "1.6.4",
|
||||
"react-native-callstats": "3.57.1",
|
||||
|
@ -76,7 +75,7 @@
|
|||
"react-native-sound": "github:jitsi/react-native-sound#e4260ed7f641eeb0377d76eac7987aba72e1cf08",
|
||||
"react-native-swipeout": "2.3.6",
|
||||
"react-native-vector-icons": "6.0.2",
|
||||
"react-native-webrtc": "github:jitsi/react-native-webrtc#c1be0cb1c6e8a83dfd406e478082a5ff205a97ec",
|
||||
"react-native-webrtc": "github:jitsi/react-native-webrtc#032ee5c90e2c5ff27ab2f952217104772fcbd155",
|
||||
"react-redux": "5.0.7",
|
||||
"react-transition-group": "2.4.0",
|
||||
"redux": "4.0.0",
|
||||
|
@ -107,7 +106,7 @@
|
|||
"eslint-plugin-react": "7.11.1",
|
||||
"eslint-plugin-react-native": "3.3.0",
|
||||
"expose-loader": "0.7.5",
|
||||
"flow-bin": "0.78.0",
|
||||
"flow-bin": "0.92.0",
|
||||
"imports-loader": "0.7.1",
|
||||
"metro-react-native-babel-preset": "0.49.2",
|
||||
"node-sass": "4.10.0",
|
||||
|
|
|
@ -31,7 +31,7 @@ declare var APP: Object;
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function appNavigate(uri: ?string) {
|
||||
return (dispatch: Dispatch<*>, getState: Function) =>
|
||||
return (dispatch: Dispatch<any>, getState: Function) =>
|
||||
_appNavigateToOptionalLocation(dispatch, getState, parseURIString(uri));
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,7 @@ export function appNavigate(uri: ?string) {
|
|||
* @returns {Promise<void>}
|
||||
*/
|
||||
function _appNavigateToMandatoryLocation(
|
||||
dispatch: Dispatch<*>, getState: Function,
|
||||
dispatch: Dispatch<any>, getState: Function,
|
||||
newLocation: Object
|
||||
): Promise<void> {
|
||||
const { room } = newLocation;
|
||||
|
@ -111,7 +111,7 @@ function _appNavigateToMandatoryLocation(
|
|||
* @returns {void}
|
||||
*/
|
||||
function _appNavigateToOptionalLocation(
|
||||
dispatch: Dispatch<*>, getState: Function,
|
||||
dispatch: Dispatch<any>, getState: Function,
|
||||
location: Object) {
|
||||
// If the specified location (URI) does not identify a host, use the app's
|
||||
// default.
|
||||
|
@ -150,7 +150,7 @@ function _appNavigateToOptionalLocation(
|
|||
* @returns {Promise<Object>}
|
||||
*/
|
||||
function _loadConfig(
|
||||
dispatch: Dispatch<*>,
|
||||
dispatch: Dispatch<any>,
|
||||
getState: Function,
|
||||
{ contextRoot, host, protocol, room }) {
|
||||
// XXX As the mobile/React Native app does not employ config on the
|
||||
|
@ -211,7 +211,7 @@ function _loadConfig(
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function redirectWithStoredParams(pathname: string) {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const { locationURL } = getState()['features/base/connection'];
|
||||
const newLocationURL = new URL(locationURL.href);
|
||||
|
||||
|
@ -248,7 +248,7 @@ export function reloadNow() {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function reloadWithStoredParams() {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const { locationURL } = getState()['features/base/connection'];
|
||||
const windowLocation = window.location;
|
||||
const oldSearchString = windowLocation.search;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* type: CANCEL_LOGIN
|
||||
* }
|
||||
*/
|
||||
export const CANCEL_LOGIN = Symbol('CANCEL_LOGIN');
|
||||
export const CANCEL_LOGIN = 'CANCEL_LOGIN';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that the cyclic operation of waiting
|
||||
|
@ -16,7 +16,7 @@ export const CANCEL_LOGIN = Symbol('CANCEL_LOGIN');
|
|||
* type: STOP_WAIT_FOR_OWNER
|
||||
* }
|
||||
*/
|
||||
export const STOP_WAIT_FOR_OWNER = Symbol('STOP_WAIT_FOR_OWNER');
|
||||
export const STOP_WAIT_FOR_OWNER = 'STOP_WAIT_FOR_OWNER';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which informs that the authentication and role
|
||||
|
@ -33,7 +33,7 @@ export const STOP_WAIT_FOR_OWNER = Symbol('STOP_WAIT_FOR_OWNER');
|
|||
* thenableWithCancel: Object
|
||||
* }
|
||||
*/
|
||||
export const UPGRADE_ROLE_FINISHED = Symbol('UPGRADE_ROLE_FINISHED');
|
||||
export const UPGRADE_ROLE_FINISHED = 'UPGRADE_ROLE_FINISHED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that the process of authenticating
|
||||
|
@ -44,7 +44,7 @@ export const UPGRADE_ROLE_FINISHED = Symbol('UPGRADE_ROLE_FINISHED');
|
|||
* thenableWithCancel: Object
|
||||
* }
|
||||
*/
|
||||
export const UPGRADE_ROLE_STARTED = Symbol('UPGRADE_ROLE_STARTED');
|
||||
export const UPGRADE_ROLE_STARTED = 'UPGRADE_ROLE_STARTED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action that sets delayed handler which will check if
|
||||
|
@ -57,4 +57,4 @@ export const UPGRADE_ROLE_STARTED = Symbol('UPGRADE_ROLE_STARTED');
|
|||
* timeoutMs: number
|
||||
* }
|
||||
*/
|
||||
export const WAIT_FOR_OWNER = Symbol('WAIT_FOR_OWNER');
|
||||
export const WAIT_FOR_OWNER = 'WAIT_FOR_OWNER';
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { appNavigate } from '../app';
|
||||
import { checkIfCanJoin, conferenceLeft } from '../base/conference';
|
||||
import { connectionFailed } from '../base/connection';
|
||||
|
@ -33,7 +35,7 @@ export function authenticateAndUpgradeRole(
|
|||
id: string,
|
||||
password: string,
|
||||
conference: Object) {
|
||||
return (dispatch: Dispatch, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const { password: roomPassword }
|
||||
= getState()['features/base/conference'];
|
||||
const process
|
||||
|
@ -73,7 +75,7 @@ export function authenticateAndUpgradeRole(
|
|||
* }}
|
||||
*/
|
||||
export function cancelLogin() {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
dispatch({ type: CANCEL_LOGIN });
|
||||
|
||||
// XXX The error associated with CONNECTION_FAILED was marked as
|
||||
|
@ -100,7 +102,7 @@ export function cancelLogin() {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function cancelWaitForOwner() {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
dispatch(stopWaitForOwner());
|
||||
|
||||
// XXX The error associated with CONFERENCE_FAILED was marked as
|
||||
|
@ -228,7 +230,7 @@ function _upgradeRoleStarted(thenableWithCancel) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function waitForOwner() {
|
||||
return (dispatch: Dispatch) =>
|
||||
return (dispatch: Dispatch<any>) =>
|
||||
dispatch({
|
||||
type: WAIT_FOR_OWNER,
|
||||
handler: () => dispatch(checkIfCanJoin()),
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
import React, { Component } from 'react';
|
||||
import { Text, TextInput, View } from 'react-native';
|
||||
import { connect as reduxConnect } from 'react-redux';
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { connect, toJid } from '../../base/connection';
|
||||
import {
|
||||
|
@ -59,7 +60,7 @@ type Props = {
|
|||
/**
|
||||
* Redux store dispatch method.
|
||||
*/
|
||||
dispatch: Dispatch<*>,
|
||||
dispatch: Dispatch<any>,
|
||||
|
||||
/**
|
||||
* Invoked to obtain translated strings.
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
import React, { Component } from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { ConfirmDialog } from '../../base/dialog';
|
||||
import { translate } from '../../base/i18n';
|
||||
|
@ -21,7 +22,7 @@ type Props = {
|
|||
/**
|
||||
* Redux store dispatch function.
|
||||
*/
|
||||
dispatch: Dispatch<*>,
|
||||
dispatch: Dispatch<any>,
|
||||
|
||||
/**
|
||||
* Invoked to obtain translated strings.
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { appNavigate } from '../app';
|
||||
import {
|
||||
CONFERENCE_FAILED,
|
||||
|
@ -160,7 +162,7 @@ function _clearExistingWaitForOwnerTimeout(
|
|||
* @param {Object} store - The redux store.
|
||||
* @returns {void}
|
||||
*/
|
||||
function _hideLoginDialog({ dispatch }: { dispatch: Dispatch<*> }) {
|
||||
function _hideLoginDialog({ dispatch }: { dispatch: Dispatch<any> }) {
|
||||
dispatch(hideDialog(LoginDialog));
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* app: App
|
||||
* }
|
||||
*/
|
||||
export const APP_WILL_MOUNT = Symbol('APP_WILL_MOUNT');
|
||||
export const APP_WILL_MOUNT = 'APP_WILL_MOUNT';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that a specific App will unmount (in
|
||||
|
@ -18,4 +18,4 @@ export const APP_WILL_MOUNT = Symbol('APP_WILL_MOUNT');
|
|||
* app: App
|
||||
* }
|
||||
*/
|
||||
export const APP_WILL_UNMOUNT = Symbol('APP_WILL_UNMOUNT');
|
||||
export const APP_WILL_UNMOUNT = 'APP_WILL_UNMOUNT';
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from './actionTypes';
|
||||
|
||||
declare var APP;
|
||||
|
@ -14,7 +16,7 @@ declare var APP;
|
|||
* }}
|
||||
*/
|
||||
export function appWillMount(app: Object) {
|
||||
return (dispatch: Dispatch<*>) => {
|
||||
return (dispatch: Dispatch<any>) => {
|
||||
dispatch({
|
||||
type: APP_WILL_MOUNT,
|
||||
app
|
||||
|
|
|
@ -122,8 +122,11 @@ class ColorSchemeRegistry {
|
|||
} else if (typeof styleValue === 'function') {
|
||||
// The value is a function, which indicates that it's a
|
||||
// dynamic, schemed color we need to resolve.
|
||||
// $FlowExpectedError
|
||||
const value = styleValue();
|
||||
|
||||
schemedStyle[styleName]
|
||||
= this._getColor(stateful, componentName, styleValue());
|
||||
= this._getColor(stateful, componentName, value);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,4 +8,4 @@
|
|||
* colorScheme: Object
|
||||
* }
|
||||
*/
|
||||
export const SET_COLOR_SCHEME = Symbol('SET_COLOR_SCHEME');
|
||||
export const SET_COLOR_SCHEME = 'SET_COLOR_SCHEME';
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* authLogin: string
|
||||
* }
|
||||
*/
|
||||
export const AUTH_STATUS_CHANGED = Symbol('AUTH_STATUS_CHANGED');
|
||||
export const AUTH_STATUS_CHANGED = 'AUTH_STATUS_CHANGED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that a specific conference failed.
|
||||
|
@ -19,7 +19,7 @@ export const AUTH_STATUS_CHANGED = Symbol('AUTH_STATUS_CHANGED');
|
|||
* error: Error
|
||||
* }
|
||||
*/
|
||||
export const CONFERENCE_FAILED = Symbol('CONFERENCE_FAILED');
|
||||
export const CONFERENCE_FAILED = 'CONFERENCE_FAILED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that a specific conference was
|
||||
|
@ -30,7 +30,7 @@ export const CONFERENCE_FAILED = Symbol('CONFERENCE_FAILED');
|
|||
* conference: JitsiConference
|
||||
* }
|
||||
*/
|
||||
export const CONFERENCE_JOINED = Symbol('CONFERENCE_JOINED');
|
||||
export const CONFERENCE_JOINED = 'CONFERENCE_JOINED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that a specific conference was left.
|
||||
|
@ -40,7 +40,7 @@ export const CONFERENCE_JOINED = Symbol('CONFERENCE_JOINED');
|
|||
* conference: JitsiConference
|
||||
* }
|
||||
*/
|
||||
export const CONFERENCE_LEFT = Symbol('CONFERENCE_LEFT');
|
||||
export const CONFERENCE_LEFT = 'CONFERENCE_LEFT';
|
||||
|
||||
/**
|
||||
* The type of (redux) action, which indicates conference subject changes.
|
||||
|
@ -50,7 +50,7 @@ export const CONFERENCE_LEFT = Symbol('CONFERENCE_LEFT');
|
|||
* subject: string
|
||||
* }
|
||||
*/
|
||||
export const CONFERENCE_SUBJECT_CHANGED = Symbol('CONFERENCE_SUBJECT_CHANGED');
|
||||
export const CONFERENCE_SUBJECT_CHANGED = 'CONFERENCE_SUBJECT_CHANGED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that a specific conference will be
|
||||
|
@ -61,7 +61,7 @@ export const CONFERENCE_SUBJECT_CHANGED = Symbol('CONFERENCE_SUBJECT_CHANGED');
|
|||
* conference: JitsiConference
|
||||
* }
|
||||
*/
|
||||
export const CONFERENCE_WILL_JOIN = Symbol('CONFERENCE_WILL_JOIN');
|
||||
export const CONFERENCE_WILL_JOIN = 'CONFERENCE_WILL_JOIN';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that a specific conference will be
|
||||
|
@ -72,7 +72,7 @@ export const CONFERENCE_WILL_JOIN = Symbol('CONFERENCE_WILL_JOIN');
|
|||
* conference: JitsiConference
|
||||
* }
|
||||
*/
|
||||
export const CONFERENCE_WILL_LEAVE = Symbol('CONFERENCE_WILL_LEAVE');
|
||||
export const CONFERENCE_WILL_LEAVE = 'CONFERENCE_WILL_LEAVE';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that the data channel with the
|
||||
|
@ -82,7 +82,7 @@ export const CONFERENCE_WILL_LEAVE = Symbol('CONFERENCE_WILL_LEAVE');
|
|||
* type: DATA_CHANNEL_OPENED
|
||||
* }
|
||||
*/
|
||||
export const DATA_CHANNEL_OPENED = Symbol('DATA_CHANNEL_OPENED');
|
||||
export const DATA_CHANNEL_OPENED = 'DATA_CHANNEL_OPENED';
|
||||
|
||||
/**
|
||||
* The type of action which signals that the user has been kicked out from
|
||||
|
@ -93,7 +93,7 @@ export const DATA_CHANNEL_OPENED = Symbol('DATA_CHANNEL_OPENED');
|
|||
* conference: JitsiConference
|
||||
* }
|
||||
*/
|
||||
export const KICKED_OUT = Symbol('KICKED_OUT');
|
||||
export const KICKED_OUT = 'KICKED_OUT';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that the lock state of a specific
|
||||
|
@ -105,7 +105,7 @@ export const KICKED_OUT = Symbol('KICKED_OUT');
|
|||
* locked: boolean
|
||||
* }
|
||||
*/
|
||||
export const LOCK_STATE_CHANGED = Symbol('LOCK_STATE_CHANGED');
|
||||
export const LOCK_STATE_CHANGED = 'LOCK_STATE_CHANGED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which sets the peer2peer flag for the current
|
||||
|
@ -116,7 +116,7 @@ export const LOCK_STATE_CHANGED = Symbol('LOCK_STATE_CHANGED');
|
|||
* p2p: boolean
|
||||
* }
|
||||
*/
|
||||
export const P2P_STATUS_CHANGED = Symbol('P2P_STATUS_CHANGED');
|
||||
export const P2P_STATUS_CHANGED = 'P2P_STATUS_CHANGED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which sets the audio-only flag for the current
|
||||
|
@ -127,7 +127,7 @@ export const P2P_STATUS_CHANGED = Symbol('P2P_STATUS_CHANGED');
|
|||
* audioOnly: boolean
|
||||
* }
|
||||
*/
|
||||
export const SET_AUDIO_ONLY = Symbol('SET_AUDIO_ONLY');
|
||||
export const SET_AUDIO_ONLY = 'SET_AUDIO_ONLY';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which sets the desktop sharing enabled flag for
|
||||
|
@ -139,7 +139,7 @@ export const SET_AUDIO_ONLY = Symbol('SET_AUDIO_ONLY');
|
|||
* }
|
||||
*/
|
||||
export const SET_DESKTOP_SHARING_ENABLED
|
||||
= Symbol('SET_DESKTOP_SHARING_ENABLED');
|
||||
= 'SET_DESKTOP_SHARING_ENABLED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which updates the current known status of the
|
||||
|
@ -150,7 +150,7 @@ export const SET_DESKTOP_SHARING_ENABLED
|
|||
* enabled: boolean
|
||||
* }
|
||||
*/
|
||||
export const SET_FOLLOW_ME = Symbol('SET_FOLLOW_ME');
|
||||
export const SET_FOLLOW_ME = 'SET_FOLLOW_ME';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which sets the video channel's lastN (value).
|
||||
|
@ -160,7 +160,7 @@ export const SET_FOLLOW_ME = Symbol('SET_FOLLOW_ME');
|
|||
* lastN: number
|
||||
* }
|
||||
*/
|
||||
export const SET_LASTN = Symbol('SET_LASTN');
|
||||
export const SET_LASTN = 'SET_LASTN';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which sets the maximum video height that should be
|
||||
|
@ -173,7 +173,7 @@ export const SET_LASTN = Symbol('SET_LASTN');
|
|||
* }
|
||||
*/
|
||||
export const SET_MAX_RECEIVER_VIDEO_QUALITY
|
||||
= Symbol('SET_MAX_RECEIVER_VIDEO_QUALITY');
|
||||
= 'SET_MAX_RECEIVER_VIDEO_QUALITY';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which sets the password to join or lock a specific
|
||||
|
@ -186,7 +186,7 @@ export const SET_MAX_RECEIVER_VIDEO_QUALITY
|
|||
* password: string
|
||||
* }
|
||||
*/
|
||||
export const SET_PASSWORD = Symbol('SET_PASSWORD');
|
||||
export const SET_PASSWORD = 'SET_PASSWORD';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that setting a password on a
|
||||
|
@ -197,7 +197,7 @@ export const SET_PASSWORD = Symbol('SET_PASSWORD');
|
|||
* error: string
|
||||
* }
|
||||
*/
|
||||
export const SET_PASSWORD_FAILED = Symbol('SET_PASSWORD_FAILED');
|
||||
export const SET_PASSWORD_FAILED = 'SET_PASSWORD_FAILED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals for pending subject changes.
|
||||
|
@ -207,7 +207,7 @@ export const SET_PASSWORD_FAILED = Symbol('SET_PASSWORD_FAILED');
|
|||
* subject: string
|
||||
* }
|
||||
*/
|
||||
export const SET_PENDING_SUBJECT_CHANGE = Symbol('SET_PENDING_SUBJECT_CHANGE');
|
||||
export const SET_PENDING_SUBJECT_CHANGE = 'SET_PENDING_SUBJECT_CHANGE';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which sets the preferred maximum video height that
|
||||
|
@ -219,7 +219,7 @@ export const SET_PENDING_SUBJECT_CHANGE = Symbol('SET_PENDING_SUBJECT_CHANGE');
|
|||
* }
|
||||
*/
|
||||
export const SET_PREFERRED_RECEIVER_VIDEO_QUALITY
|
||||
= Symbol('SET_PREFERRED_RECEIVER_VIDEO_QUALITY');
|
||||
= 'SET_PREFERRED_RECEIVER_VIDEO_QUALITY';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which sets the name of the room of the
|
||||
|
@ -230,7 +230,7 @@ export const SET_PREFERRED_RECEIVER_VIDEO_QUALITY
|
|||
* room: string
|
||||
* }
|
||||
*/
|
||||
export const SET_ROOM = Symbol('SET_ROOM');
|
||||
export const SET_ROOM = 'SET_ROOM';
|
||||
|
||||
/**
|
||||
* The type of (redux) action, which indicates if a SIP gateway is enabled on
|
||||
|
@ -241,7 +241,7 @@ export const SET_ROOM = Symbol('SET_ROOM');
|
|||
* isSIPGatewayEnabled: boolean
|
||||
* }
|
||||
*/
|
||||
export const SET_SIP_GATEWAY_ENABLED = Symbol('SET_SIP_GATEWAY_ENABLED');
|
||||
export const SET_SIP_GATEWAY_ENABLED = 'SET_SIP_GATEWAY_ENABLED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which updates the current known status of the
|
||||
|
@ -253,4 +253,4 @@ export const SET_SIP_GATEWAY_ENABLED = Symbol('SET_SIP_GATEWAY_ENABLED');
|
|||
* startVideoMutedPolicy: boolean
|
||||
* }
|
||||
*/
|
||||
export const SET_START_MUTED_POLICY = Symbol('SET_START_MUTED_POLICY');
|
||||
export const SET_START_MUTED_POLICY = 'SET_START_MUTED_POLICY';
|
||||
|
|
|
@ -299,7 +299,7 @@ export function conferenceSubjectChanged(subject: string) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
function _conferenceWillJoin(conference: Object) {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const localTracks
|
||||
= getLocalTracks(getState()['features/base/tracks'])
|
||||
.map(t => t.jitsiTrack);
|
||||
|
@ -565,7 +565,7 @@ export function setFollowMe(enabled: boolean) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function setLastN(lastN: ?number) {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
if (typeof lastN === 'undefined') {
|
||||
const config = getState()['features/base/config'];
|
||||
|
||||
|
@ -618,7 +618,7 @@ export function setPassword(
|
|||
conference: Object,
|
||||
method: Function,
|
||||
password: string) {
|
||||
return (dispatch: Dispatch<*>, getState: Function): ?Promise<void> => {
|
||||
return (dispatch: Dispatch<any>, getState: Function): ?Promise<void> => {
|
||||
switch (method) {
|
||||
case conference.join: {
|
||||
let state = getState()['features/base/conference'];
|
||||
|
@ -721,7 +721,7 @@ export function setRoom(room: ?string) {
|
|||
*/
|
||||
export function setStartMutedPolicy(
|
||||
startAudioMuted: boolean, startVideoMuted: boolean) {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const conference = getCurrentConference(getState());
|
||||
|
||||
conference && conference.setStartMutedPolicy({
|
||||
|
@ -740,7 +740,7 @@ export function setStartMutedPolicy(
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function toggleAudioOnly() {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const { audioOnly } = getState()['features/base/conference'];
|
||||
|
||||
return dispatch(setAudioOnly(!audioOnly, true));
|
||||
|
@ -754,7 +754,7 @@ export function toggleAudioOnly() {
|
|||
* @returns {void}
|
||||
*/
|
||||
export function setSubject(subject: string = '') {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const { conference } = getState()['features/base/conference'];
|
||||
|
||||
if (conference) {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* locationURL: URL
|
||||
* }
|
||||
*/
|
||||
export const CONFIG_WILL_LOAD = Symbol('CONFIG_WILL_LOAD');
|
||||
export const CONFIG_WILL_LOAD = 'CONFIG_WILL_LOAD';
|
||||
|
||||
/**
|
||||
* The redux action which signals that a configuration (commonly known in Jitsi
|
||||
|
@ -19,7 +19,7 @@ export const CONFIG_WILL_LOAD = Symbol('CONFIG_WILL_LOAD');
|
|||
* locationURL: URL
|
||||
* }
|
||||
*/
|
||||
export const LOAD_CONFIG_ERROR = Symbol('LOAD_CONFIG_ERROR');
|
||||
export const LOAD_CONFIG_ERROR = 'LOAD_CONFIG_ERROR';
|
||||
|
||||
/**
|
||||
* The redux action which sets the configuration represented by the feature
|
||||
|
@ -32,4 +32,4 @@ export const LOAD_CONFIG_ERROR = Symbol('LOAD_CONFIG_ERROR');
|
|||
* config: Object
|
||||
* }
|
||||
*/
|
||||
export const SET_CONFIG = Symbol('SET_CONFIG');
|
||||
export const SET_CONFIG = 'SET_CONFIG';
|
||||
|
|
|
@ -59,7 +59,7 @@ export function loadConfigError(error: Error, locationURL: URL) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function setConfig(config: Object = {}) {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const { locationURL } = getState()['features/base/connection'];
|
||||
|
||||
// Now that the loading of the config was successful override the values
|
||||
|
@ -99,7 +99,7 @@ export function setConfig(config: Object = {}) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function storeConfig(baseURL: string, config: Object) {
|
||||
return (dispatch: Dispatch<*>) => {
|
||||
return (dispatch: Dispatch<any>) => {
|
||||
// Try to store the configuration in localStorage. If the deployment
|
||||
// specified 'getroom' as a function, for example, it does not make
|
||||
// sense to and it will not be stored.
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* message: string
|
||||
* }
|
||||
*/
|
||||
export const CONNECTION_DISCONNECTED = Symbol('CONNECTION_DISCONNECTED');
|
||||
export const CONNECTION_DISCONNECTED = 'CONNECTION_DISCONNECTED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that a connection was successfully
|
||||
|
@ -19,7 +19,7 @@ export const CONNECTION_DISCONNECTED = Symbol('CONNECTION_DISCONNECTED');
|
|||
* timeEstablished: number,
|
||||
* }
|
||||
*/
|
||||
export const CONNECTION_ESTABLISHED = Symbol('CONNECTION_ESTABLISHED');
|
||||
export const CONNECTION_ESTABLISHED = 'CONNECTION_ESTABLISHED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that a connection failed.
|
||||
|
@ -30,7 +30,7 @@ export const CONNECTION_ESTABLISHED = Symbol('CONNECTION_ESTABLISHED');
|
|||
* error: Object | string
|
||||
* }
|
||||
*/
|
||||
export const CONNECTION_FAILED = Symbol('CONNECTION_FAILED');
|
||||
export const CONNECTION_FAILED = 'CONNECTION_FAILED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that a connection will connect.
|
||||
|
@ -40,7 +40,7 @@ export const CONNECTION_FAILED = Symbol('CONNECTION_FAILED');
|
|||
* connection: JitsiConnection
|
||||
* }
|
||||
*/
|
||||
export const CONNECTION_WILL_CONNECT = Symbol('CONNECTION_WILL_CONNECT');
|
||||
export const CONNECTION_WILL_CONNECT = 'CONNECTION_WILL_CONNECT';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which sets the location URL of the application,
|
||||
|
@ -51,4 +51,4 @@ export const CONNECTION_WILL_CONNECT = Symbol('CONNECTION_WILL_CONNECT');
|
|||
* locationURL: ?URL
|
||||
* }
|
||||
*/
|
||||
export const SET_LOCATION_URL = Symbol('SET_LOCATION_URL');
|
||||
export const SET_LOCATION_URL = 'SET_LOCATION_URL';
|
||||
|
|
|
@ -76,7 +76,7 @@ export type ConnectionFailedError = {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function connect(id: ?string, password: ?string) {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const state = getState();
|
||||
const options = _constructOptions(state);
|
||||
const { issuer, jwt } = state['features/base/jwt'];
|
||||
|
@ -322,7 +322,7 @@ function _constructOptions(state) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function disconnect() {
|
||||
return (dispatch: Dispatch<*>, getState: Function): Promise<void> => {
|
||||
return (dispatch: Dispatch<any>, getState: Function): Promise<void> => {
|
||||
const state = getState();
|
||||
|
||||
// The conference we have already joined or are joining.
|
||||
|
|
|
@ -19,7 +19,7 @@ export {
|
|||
* @returns {Promise<JitsiConnection>}
|
||||
*/
|
||||
export function connect() {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
// XXX Lib-jitsi-meet does not accept uppercase letters.
|
||||
const room = getState()['features/base/conference'].room.toLowerCase();
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* deviceId: string,
|
||||
* }
|
||||
*/
|
||||
export const SET_AUDIO_INPUT_DEVICE = Symbol('SET_AUDIO_INPUT_DEVICE');
|
||||
export const SET_AUDIO_INPUT_DEVICE = 'SET_AUDIO_INPUT_DEVICE';
|
||||
|
||||
/**
|
||||
* The type of Redux action which signals that the currently used video
|
||||
|
@ -18,7 +18,7 @@ export const SET_AUDIO_INPUT_DEVICE = Symbol('SET_AUDIO_INPUT_DEVICE');
|
|||
* deviceId: string,
|
||||
* }
|
||||
*/
|
||||
export const SET_VIDEO_INPUT_DEVICE = Symbol('SET_VIDEO_INPUT_DEVICE');
|
||||
export const SET_VIDEO_INPUT_DEVICE = 'SET_VIDEO_INPUT_DEVICE';
|
||||
|
||||
/**
|
||||
* The type of Redux action which signals that the list of known available
|
||||
|
@ -29,4 +29,4 @@ export const SET_VIDEO_INPUT_DEVICE = Symbol('SET_VIDEO_INPUT_DEVICE');
|
|||
* devices: Array<MediaDeviceInfo>,
|
||||
* }
|
||||
*/
|
||||
export const UPDATE_DEVICE_LIST = Symbol('UPDATE_DEVICE_LIST');
|
||||
export const UPDATE_DEVICE_LIST = 'UPDATE_DEVICE_LIST';
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* type: HIDE_DIALOG
|
||||
* }
|
||||
*/
|
||||
export const HIDE_DIALOG = Symbol('HIDE_DIALOG');
|
||||
export const HIDE_DIALOG = 'HIDE_DIALOG';
|
||||
|
||||
/**
|
||||
* The type of Redux action which begins a request to open a dialog.
|
||||
|
@ -17,4 +17,4 @@ export const HIDE_DIALOG = Symbol('HIDE_DIALOG');
|
|||
* }
|
||||
*
|
||||
*/
|
||||
export const OPEN_DIALOG = Symbol('OPEN_DIALOG');
|
||||
export const OPEN_DIALOG = 'OPEN_DIALOG';
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
/* @flow */
|
||||
// @flow
|
||||
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { HIDE_DIALOG, OPEN_DIALOG } from './actionTypes';
|
||||
import { isDialogOpen } from './functions';
|
||||
|
@ -53,7 +55,7 @@ export function openDialog(component: Object, componentProps: ?Object) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function toggleDialog(component: Object, componentProps: ?Object) {
|
||||
return (dispatch: Dispatch, getState: Function) => {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
if (isDialogOpen(getState, component)) {
|
||||
dispatch(hideDialog(component));
|
||||
} else {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import { Component } from 'react';
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { hideDialog } from '../actions';
|
||||
import type { DialogProps } from '../constants';
|
||||
|
@ -8,13 +9,12 @@ import type { DialogProps } from '../constants';
|
|||
/**
|
||||
* The type of the React {@code Component} props of {@link AbstractDialog}.
|
||||
*/
|
||||
export type Props = {
|
||||
...DialogProps,
|
||||
export type Props = DialogProps & {
|
||||
|
||||
/**
|
||||
* Used to show/hide the dialog on cancel.
|
||||
*/
|
||||
dispatch: Dispatch<*>
|
||||
dispatch: Dispatch<any>
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -16,8 +16,7 @@ import AbstractDialog, {
|
|||
} from '../AbstractDialog';
|
||||
import { brandedDialog as styles } from './styles';
|
||||
|
||||
export type Props = {
|
||||
...AbstractProps,
|
||||
export type Props = AbstractProps & {
|
||||
|
||||
/**
|
||||
* The color-schemed stylesheet of the feature.
|
||||
|
|
|
@ -10,8 +10,7 @@ import {
|
|||
brandedDialog
|
||||
} from './styles';
|
||||
|
||||
type Props = {
|
||||
...BaseProps,
|
||||
type Props = BaseProps & {
|
||||
|
||||
/**
|
||||
* The color-schemed stylesheet of the feature.
|
||||
|
@ -83,7 +82,7 @@ class BaseSubmitDialog<P: Props, S: *> extends BaseDialog<P, S> {
|
|||
|
||||
_onCancel: () => void;
|
||||
|
||||
_onSubmit: ?string => boolean;
|
||||
_onSubmit: () => boolean;
|
||||
|
||||
_renderHTML: string => Object | string
|
||||
|
||||
|
|
|
@ -107,4 +107,5 @@ function _mapStateToProps(state) {
|
|||
};
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect(_mapStateToProps)(BottomSheet);
|
||||
|
|
|
@ -13,8 +13,7 @@ import { type Props as BaseProps } from './BaseDialog';
|
|||
import BaseSubmitDialog from './BaseSubmitDialog';
|
||||
import { brandedDialog } from './styles';
|
||||
|
||||
type Props = {
|
||||
...BaseProps,
|
||||
type Props = BaseProps & {
|
||||
|
||||
/**
|
||||
* The color-schemed stylesheet of the feature.
|
||||
|
|
|
@ -21,4 +21,5 @@ class CustomDialog extends BaseDialog<Props, *> {
|
|||
}
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect(_abstractMapStateToProps)(CustomDialog);
|
||||
|
|
|
@ -9,9 +9,7 @@ import { _abstractMapStateToProps } from '../../functions';
|
|||
import { type Props as BaseProps } from './BaseDialog';
|
||||
import BaseSubmitDialog from './BaseSubmitDialog';
|
||||
|
||||
type Props = {
|
||||
...BaseProps,
|
||||
|
||||
type Props = BaseProps & {
|
||||
t: Function
|
||||
}
|
||||
|
||||
|
|
|
@ -18,8 +18,7 @@ import {
|
|||
inputDialog as styles
|
||||
} from './styles';
|
||||
|
||||
type Props = {
|
||||
...BaseProps,
|
||||
type Props = BaseProps & {
|
||||
|
||||
/**
|
||||
* The color-schemed stylesheet of the feature.
|
||||
|
|
|
@ -10,8 +10,7 @@ import StatelessDialog from './StatelessDialog';
|
|||
/**
|
||||
* The type of the React {@code Component} props of {@link Dialog}.
|
||||
*/
|
||||
type Props = {
|
||||
...AbstractDialogProps,
|
||||
type Props = AbstractDialogProps & {
|
||||
|
||||
/**
|
||||
* Whether the dialog is modal. This means clicking on the blanket will
|
||||
|
@ -44,7 +43,7 @@ class Dialog extends AbstractDialog<Props, State> {
|
|||
* @param {Object} props - The read-only properties with which the new
|
||||
* instance is to be initialized.
|
||||
*/
|
||||
constructor(props) {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
|
||||
// Bind event handlers so they are only bound once per instance.
|
||||
|
@ -65,6 +64,7 @@ class Dialog extends AbstractDialog<Props, State> {
|
|||
onSubmit: this._onSubmit
|
||||
};
|
||||
|
||||
// $FlowExpectedError
|
||||
delete props.dispatch;
|
||||
|
||||
return <StatelessDialog { ...props } />;
|
||||
|
@ -84,4 +84,5 @@ class Dialog extends AbstractDialog<Props, State> {
|
|||
_onSubmit: (?string) => void;
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect()(Dialog);
|
||||
|
|
|
@ -5,27 +5,27 @@ export type DialogProps = {
|
|||
/**
|
||||
* Whether cancel button is disabled. Enabled by default.
|
||||
*/
|
||||
cancelDisabled: boolean,
|
||||
cancelDisabled: ?boolean,
|
||||
|
||||
/**
|
||||
* Optional i18n key to change the cancel button title.
|
||||
*/
|
||||
cancelKey: string,
|
||||
cancelKey: ?string,
|
||||
|
||||
/**
|
||||
* The React {@code Component} children which represents the dialog's body.
|
||||
*/
|
||||
children: React$Node,
|
||||
children: ?React$Node,
|
||||
|
||||
/**
|
||||
* Is ok button enabled/disabled. Enabled by default.
|
||||
*/
|
||||
okDisabled: boolean,
|
||||
okDisabled: ?boolean,
|
||||
|
||||
/**
|
||||
* Optional i18n key to change the ok button title.
|
||||
*/
|
||||
okKey: string,
|
||||
okKey: ?string,
|
||||
|
||||
/**
|
||||
* The handler for onCancel event.
|
||||
|
@ -47,14 +47,14 @@ export type DialogProps = {
|
|||
/**
|
||||
* Key to use for showing a title.
|
||||
*/
|
||||
titleKey: string,
|
||||
titleKey: ?string,
|
||||
|
||||
/**
|
||||
* The string to use as a title instead of {@code titleKey}. If a truthy
|
||||
* value is specified, it takes precedence over {@code titleKey} i.e.
|
||||
* the latter is unused.
|
||||
*/
|
||||
titleString: string
|
||||
titleString: ?string
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -7,4 +7,4 @@
|
|||
* jwt: string
|
||||
* }
|
||||
*/
|
||||
export const SET_JWT = Symbol('SET_JWT');
|
||||
export const SET_JWT = 'SET_JWT';
|
||||
|
|
|
@ -9,4 +9,4 @@
|
|||
* knownDomains: Array<string>
|
||||
* }
|
||||
*/
|
||||
export const ADD_KNOWN_DOMAINS = Symbol('ADD_KNOWN_DOMAINS');
|
||||
export const ADD_KNOWN_DOMAINS = 'ADD_KNOWN_DOMAINS';
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* type: LIB_DID_DISPOSE
|
||||
* }
|
||||
*/
|
||||
export const LIB_DID_DISPOSE = Symbol('LIB_DID_DISPOSE');
|
||||
export const LIB_DID_DISPOSE = 'LIB_DID_DISPOSE';
|
||||
|
||||
/**
|
||||
* The type of Redux action which signals that {@link JitsiMeetJS.init()} was
|
||||
|
@ -15,7 +15,7 @@ export const LIB_DID_DISPOSE = Symbol('LIB_DID_DISPOSE');
|
|||
* type: LIB_DID_INIT
|
||||
* }
|
||||
*/
|
||||
export const LIB_DID_INIT = Symbol('LIB_DID_INIT');
|
||||
export const LIB_DID_INIT = 'LIB_DID_INIT';
|
||||
|
||||
/**
|
||||
* Action to signal that lib-jitsi-meet initialized failed with error.
|
||||
|
@ -25,7 +25,7 @@ export const LIB_DID_INIT = Symbol('LIB_DID_INIT');
|
|||
* error: Error
|
||||
* }
|
||||
*/
|
||||
export const LIB_INIT_ERROR = Symbol('LIB_INIT_ERROR');
|
||||
export const LIB_INIT_ERROR = 'LIB_INIT_ERROR';
|
||||
|
||||
/**
|
||||
* The type of Redux action which signals that {@link JitsiMeetJS} will be
|
||||
|
@ -35,7 +35,7 @@ export const LIB_INIT_ERROR = Symbol('LIB_INIT_ERROR');
|
|||
* type: LIB_WILL_DISPOSE
|
||||
* }
|
||||
*/
|
||||
export const LIB_WILL_DISPOSE = Symbol('LIB_WILL_DISPOSE');
|
||||
export const LIB_WILL_DISPOSE = 'LIB_WILL_DISPOSE';
|
||||
|
||||
/**
|
||||
* The type of Redux action which signals that {@link JitsiMeetJS.init()} will
|
||||
|
@ -45,4 +45,4 @@ export const LIB_WILL_DISPOSE = Symbol('LIB_WILL_DISPOSE');
|
|||
* type: LIB_WILL_INIT
|
||||
* }
|
||||
*/
|
||||
export const LIB_WILL_INIT = Symbol('LIB_WILL_INIT');
|
||||
export const LIB_WILL_INIT = 'LIB_WILL_INIT';
|
||||
|
|
|
@ -20,7 +20,7 @@ declare var APP: Object;
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function disposeLib() {
|
||||
return (dispatch: Dispatch<*>) => {
|
||||
return (dispatch: Dispatch<any>) => {
|
||||
dispatch({ type: LIB_WILL_DISPOSE });
|
||||
|
||||
// TODO Currently, lib-jitsi-meet doesn't have the functionality to
|
||||
|
@ -36,7 +36,7 @@ export function disposeLib() {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function initLib() {
|
||||
return (dispatch: Dispatch<*>, getState: Function): void => {
|
||||
return (dispatch: Dispatch<any>, getState: Function): void => {
|
||||
const config = getState()['features/base/config'];
|
||||
|
||||
if (!config) {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* logCollector: Logger.LogCollector
|
||||
* }
|
||||
*/
|
||||
export const SET_LOG_COLLECTOR = Symbol('SET_LOG_COLLECTOR');
|
||||
export const SET_LOG_COLLECTOR = 'SET_LOG_COLLECTOR';
|
||||
|
||||
/**
|
||||
* The type of redux action which sets the configuration of the feature
|
||||
|
@ -18,4 +18,4 @@ export const SET_LOG_COLLECTOR = Symbol('SET_LOG_COLLECTOR');
|
|||
* config: Object
|
||||
* }
|
||||
*/
|
||||
export const SET_LOGGING_CONFIG = Symbol('SET_LOGGING_CONFIG');
|
||||
export const SET_LOGGING_CONFIG = 'SET_LOGGING_CONFIG';
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* muted: boolean
|
||||
* }
|
||||
*/
|
||||
export const SET_AUDIO_MUTED = Symbol('SET_AUDIO_MUTED');
|
||||
export const SET_AUDIO_MUTED = 'SET_AUDIO_MUTED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action to adjust the availability of the local audio.
|
||||
|
@ -16,7 +16,7 @@ export const SET_AUDIO_MUTED = Symbol('SET_AUDIO_MUTED');
|
|||
* muted: boolean
|
||||
* }
|
||||
*/
|
||||
export const SET_AUDIO_AVAILABLE = Symbol('SET_AUDIO_AVAILABLE');
|
||||
export const SET_AUDIO_AVAILABLE = 'SET_AUDIO_AVAILABLE';
|
||||
|
||||
/**
|
||||
* The type of (redux) action to set the facing mode of the local video camera
|
||||
|
@ -27,7 +27,7 @@ export const SET_AUDIO_AVAILABLE = Symbol('SET_AUDIO_AVAILABLE');
|
|||
* cameraFacingMode: CAMERA_FACING_MODE
|
||||
* }
|
||||
*/
|
||||
export const SET_CAMERA_FACING_MODE = Symbol('SET_CAMERA_FACING_MODE');
|
||||
export const SET_CAMERA_FACING_MODE = 'SET_CAMERA_FACING_MODE';
|
||||
|
||||
/**
|
||||
* The type of (redux) action to adjust the availability of the local video.
|
||||
|
@ -37,7 +37,7 @@ export const SET_CAMERA_FACING_MODE = Symbol('SET_CAMERA_FACING_MODE');
|
|||
* available: boolean
|
||||
* }
|
||||
*/
|
||||
export const SET_VIDEO_AVAILABLE = Symbol('SET_VIDEO_AVAILABLE');
|
||||
export const SET_VIDEO_AVAILABLE = 'SET_VIDEO_AVAILABLE';
|
||||
|
||||
/**
|
||||
* The type of (redux) action to set the muted state of the local video.
|
||||
|
@ -47,7 +47,7 @@ export const SET_VIDEO_AVAILABLE = Symbol('SET_VIDEO_AVAILABLE');
|
|||
* muted: boolean
|
||||
* }
|
||||
*/
|
||||
export const SET_VIDEO_MUTED = Symbol('SET_VIDEO_MUTED');
|
||||
export const SET_VIDEO_MUTED = 'SET_VIDEO_MUTED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action to store the last video {@link Transform} applied
|
||||
|
@ -59,7 +59,7 @@ export const SET_VIDEO_MUTED = Symbol('SET_VIDEO_MUTED');
|
|||
* transform: Transform
|
||||
* }
|
||||
*/
|
||||
export const STORE_VIDEO_TRANSFORM = Symbol('STORE_VIDEO_TRANSFORM');
|
||||
export const STORE_VIDEO_TRANSFORM = 'STORE_VIDEO_TRANSFORM';
|
||||
|
||||
/**
|
||||
* The type of (redux) action to toggle the local video camera facing mode. In
|
||||
|
@ -71,4 +71,4 @@ export const STORE_VIDEO_TRANSFORM = Symbol('STORE_VIDEO_TRANSFORM');
|
|||
* type: TOGGLE_CAMERA_FACING_MODE
|
||||
* }
|
||||
*/
|
||||
export const TOGGLE_CAMERA_FACING_MODE = Symbol('TOGGLE_CAMERA_FACING_MODE');
|
||||
export const TOGGLE_CAMERA_FACING_MODE = 'TOGGLE_CAMERA_FACING_MODE';
|
||||
|
|
|
@ -99,7 +99,7 @@ export function setVideoMuted(
|
|||
muted: boolean,
|
||||
authority: number = VIDEO_MUTISM_AUTHORITY.USER,
|
||||
ensureTrack: boolean = false) {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const oldValue = getState()['features/base/media'].video.muted;
|
||||
|
||||
// eslint-disable-next-line no-bitwise
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/* @flow */
|
||||
|
||||
import React, { Component } from 'react';
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { trackVideoStarted } from '../../tracks';
|
||||
|
||||
|
@ -15,7 +16,7 @@ export type Props = {
|
|||
/**
|
||||
* The Redux dispatch function.
|
||||
*/
|
||||
dispatch: Dispatch<*>,
|
||||
dispatch: Dispatch<any>,
|
||||
|
||||
/**
|
||||
* Callback to invoke when the {@link Video} of {@code AbstractVideoTrack}
|
||||
|
|
|
@ -29,4 +29,5 @@ class VideoTrack extends AbstractVideoTrack<Props> {
|
|||
}
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect()(VideoTrack);
|
||||
|
|
|
@ -5,6 +5,8 @@ import { PanResponder, PixelRatio, View } from 'react-native';
|
|||
import { connect } from 'react-redux';
|
||||
import { type Dispatch } from 'redux';
|
||||
|
||||
import type { PanResponderInstance } from 'PanResponder';
|
||||
|
||||
import { storeVideoTransform } from '../../actions';
|
||||
import styles from './styles';
|
||||
|
||||
|
@ -117,7 +119,7 @@ class VideoTransform extends Component<Props, State> {
|
|||
/**
|
||||
* The gesture handler object.
|
||||
*/
|
||||
gestureHandlers: PanResponder;
|
||||
gestureHandlers: PanResponderInstance;
|
||||
|
||||
/**
|
||||
* The initial distance of the fingers on pinch start.
|
||||
|
@ -190,7 +192,7 @@ class VideoTransform extends Component<Props, State> {
|
|||
*
|
||||
* @inheritdoc
|
||||
*/
|
||||
componentDidUpdate(prevProps, prevState) {
|
||||
componentDidUpdate(prevProps: Props, prevState: State) {
|
||||
if (prevProps.streamId !== this.props.streamId) {
|
||||
this._storeTransform(prevProps.streamId, prevState.transform);
|
||||
this._restoreTransform(this.props.streamId);
|
||||
|
@ -687,7 +689,7 @@ class VideoTransform extends Component<Props, State> {
|
|||
* _onUnmount: Function
|
||||
* }}
|
||||
*/
|
||||
function _mapDispatchToProps(dispatch: Dispatch<*>) {
|
||||
function _mapDispatchToProps(dispatch: Dispatch<any>) {
|
||||
return {
|
||||
/**
|
||||
* Dispatches actions to store the last applied transform to a video.
|
||||
|
@ -725,4 +727,5 @@ function _mapStateToProps(state) {
|
|||
};
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect(_mapStateToProps, _mapDispatchToProps)(VideoTransform);
|
||||
|
|
|
@ -11,8 +11,7 @@ import Video from './Video';
|
|||
/**
|
||||
* The type of the React {@code Component} props of {@link VideoTrack}.
|
||||
*/
|
||||
type Props = {
|
||||
...AbstractVideoTrackProps,
|
||||
type Props = AbstractVideoTrackProps & {
|
||||
|
||||
/**
|
||||
* CSS classes to add to the video element.
|
||||
|
@ -64,4 +63,5 @@ class VideoTrack extends AbstractVideoTrack<Props> {
|
|||
_onVideoPlaying: () => void;
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect()(VideoTrack);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* }
|
||||
* }
|
||||
*/
|
||||
export const DOMINANT_SPEAKER_CHANGED = Symbol('DOMINANT_SPEAKER_CHANGED');
|
||||
export const DOMINANT_SPEAKER_CHANGED = 'DOMINANT_SPEAKER_CHANGED';
|
||||
|
||||
/**
|
||||
* Create an action for removing a participant from the conference.
|
||||
|
@ -18,7 +18,7 @@ export const DOMINANT_SPEAKER_CHANGED = Symbol('DOMINANT_SPEAKER_CHANGED');
|
|||
* id: string
|
||||
* }
|
||||
*/
|
||||
export const KICK_PARTICIPANT = Symbol('KICK_PARTICIPANT');
|
||||
export const KICK_PARTICIPANT = 'KICK_PARTICIPANT';
|
||||
|
||||
/**
|
||||
* Create an action for muting a remote participant.
|
||||
|
@ -28,7 +28,7 @@ export const KICK_PARTICIPANT = Symbol('KICK_PARTICIPANT');
|
|||
* id: string
|
||||
* }
|
||||
*/
|
||||
export const MUTE_REMOTE_PARTICIPANT = Symbol('MUTE_REMOTE_PARTICIPANT');
|
||||
export const MUTE_REMOTE_PARTICIPANT = 'MUTE_REMOTE_PARTICIPANT';
|
||||
|
||||
/**
|
||||
* Create an action for when the local participant's display name is updated.
|
||||
|
@ -40,7 +40,7 @@ export const MUTE_REMOTE_PARTICIPANT = Symbol('MUTE_REMOTE_PARTICIPANT');
|
|||
* }
|
||||
*/
|
||||
export const PARTICIPANT_DISPLAY_NAME_CHANGED
|
||||
= Symbol('PARTICIPANT_DISPLAY_NAME_CHANGED');
|
||||
= 'PARTICIPANT_DISPLAY_NAME_CHANGED';
|
||||
|
||||
/**
|
||||
* Action to signal that ID of participant has changed. This happens when
|
||||
|
@ -53,7 +53,7 @@ export const PARTICIPANT_DISPLAY_NAME_CHANGED
|
|||
* oldValue: string
|
||||
* }
|
||||
*/
|
||||
export const PARTICIPANT_ID_CHANGED = Symbol('PARTICIPANT_ID_CHANGED');
|
||||
export const PARTICIPANT_ID_CHANGED = 'PARTICIPANT_ID_CHANGED';
|
||||
|
||||
/**
|
||||
* Action to signal that a participant has joined.
|
||||
|
@ -63,7 +63,7 @@ export const PARTICIPANT_ID_CHANGED = Symbol('PARTICIPANT_ID_CHANGED');
|
|||
* participant: Participant
|
||||
* }
|
||||
*/
|
||||
export const PARTICIPANT_JOINED = Symbol('PARTICIPANT_JOINED');
|
||||
export const PARTICIPANT_JOINED = 'PARTICIPANT_JOINED';
|
||||
|
||||
/**
|
||||
* Action to handle case when participant lefts.
|
||||
|
@ -75,7 +75,7 @@ export const PARTICIPANT_JOINED = Symbol('PARTICIPANT_JOINED');
|
|||
* }
|
||||
* }
|
||||
*/
|
||||
export const PARTICIPANT_LEFT = Symbol('PARTICIPANT_LEFT');
|
||||
export const PARTICIPANT_LEFT = 'PARTICIPANT_LEFT';
|
||||
|
||||
/**
|
||||
* Action to handle case when info about participant changes.
|
||||
|
@ -85,7 +85,7 @@ export const PARTICIPANT_LEFT = Symbol('PARTICIPANT_LEFT');
|
|||
* participant: Participant
|
||||
* }
|
||||
*/
|
||||
export const PARTICIPANT_UPDATED = Symbol('PARTICIPANT_UPDATED');
|
||||
export const PARTICIPANT_UPDATED = 'PARTICIPANT_UPDATED';
|
||||
|
||||
/**
|
||||
* The type of the Redux action which pins a conference participant.
|
||||
|
@ -97,7 +97,7 @@ export const PARTICIPANT_UPDATED = Symbol('PARTICIPANT_UPDATED');
|
|||
* }
|
||||
* }
|
||||
*/
|
||||
export const PIN_PARTICIPANT = Symbol('PIN_PARTICIPANT');
|
||||
export const PIN_PARTICIPANT = 'PIN_PARTICIPANT';
|
||||
|
||||
/**
|
||||
* Action to signal that a hidden participant has joined.
|
||||
|
@ -107,7 +107,7 @@ export const PIN_PARTICIPANT = Symbol('PIN_PARTICIPANT');
|
|||
* participant: Participant
|
||||
* }
|
||||
*/
|
||||
export const HIDDEN_PARTICIPANT_JOINED = Symbol('HIDDEN_PARTICIPANT_JOINED');
|
||||
export const HIDDEN_PARTICIPANT_JOINED = 'HIDDEN_PARTICIPANT_JOINED';
|
||||
|
||||
/**
|
||||
* Action to handle case when hidden participant leaves.
|
||||
|
@ -119,4 +119,4 @@ export const HIDDEN_PARTICIPANT_JOINED = Symbol('HIDDEN_PARTICIPANT_JOINED');
|
|||
* }
|
||||
* }
|
||||
*/
|
||||
export const HIDDEN_PARTICIPANT_LEFT = Symbol('HIDDEN_PARTICIPANT_LEFT');
|
||||
export const HIDDEN_PARTICIPANT_LEFT = 'HIDDEN_PARTICIPANT_LEFT';
|
||||
|
|
|
@ -20,7 +20,7 @@ export type Item = {
|
|||
/**
|
||||
* An optional react element to append to the end of the Item.
|
||||
*/
|
||||
elementAfter?: ?ComponentType<any>,
|
||||
elementAfter?: ?React$Node,
|
||||
|
||||
/**
|
||||
* Unique ID of the item.
|
||||
|
|
|
@ -20,7 +20,7 @@ export type Props = {
|
|||
/**
|
||||
* React Elements to display within the component.
|
||||
*/
|
||||
children: React$Node | Object,
|
||||
children: React$Node,
|
||||
|
||||
/**
|
||||
* The event handler/listener to be invoked when this
|
||||
|
|
|
@ -32,7 +32,7 @@ type Props = {
|
|||
/**
|
||||
* Children of the component.
|
||||
*/
|
||||
children?: ?React$Element<*>,
|
||||
children?: React$Node,
|
||||
|
||||
/**
|
||||
* item containing data to be rendered
|
||||
|
@ -70,6 +70,44 @@ export default class AvatarListItem extends Component<Props> {
|
|||
this._renderItemLine = this._renderItemLine.bind(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to render the content in the avatar container.
|
||||
*
|
||||
* @returns {React$Element}
|
||||
*/
|
||||
_getAvatarContent() {
|
||||
const {
|
||||
avatarSize = AVATAR_SIZE,
|
||||
avatarTextStyle
|
||||
} = this.props;
|
||||
const { avatar, title } = this.props.item;
|
||||
const isAvatarURL = Boolean(avatar && avatar.match(/^http[s]*:\/\//i));
|
||||
|
||||
if (isAvatarURL) {
|
||||
return (
|
||||
<Avatar
|
||||
size = { avatarSize }
|
||||
uri = { avatar } />
|
||||
);
|
||||
}
|
||||
|
||||
if (avatar && !isAvatarURL) {
|
||||
return (
|
||||
<Icon name = { avatar } />
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Text
|
||||
style = { [
|
||||
styles.avatarContent,
|
||||
avatarTextStyle
|
||||
] }>
|
||||
{ title.substr(0, 1).toUpperCase() }
|
||||
</Text>
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements {@code Component#render}.
|
||||
*
|
||||
|
@ -78,10 +116,9 @@ export default class AvatarListItem extends Component<Props> {
|
|||
render() {
|
||||
const {
|
||||
avatarSize = AVATAR_SIZE,
|
||||
avatarStyle,
|
||||
avatarTextStyle
|
||||
avatarStyle
|
||||
} = this.props;
|
||||
const { avatar, colorBase, lines, title } = this.props.item;
|
||||
const { colorBase, lines, title } = this.props.item;
|
||||
const avatarStyles = {
|
||||
...styles.avatar,
|
||||
...this._getAvatarColor(colorBase),
|
||||
|
@ -91,8 +128,6 @@ export default class AvatarListItem extends Component<Props> {
|
|||
width: avatarSize
|
||||
};
|
||||
|
||||
const isAvatarURL = Boolean(avatar && avatar.match(/^http[s]*:\/\//i));
|
||||
|
||||
return (
|
||||
<Container
|
||||
onClick = { this.props.onPress }
|
||||
|
@ -100,26 +135,7 @@ export default class AvatarListItem extends Component<Props> {
|
|||
underlayColor = { UNDERLAY_COLOR }>
|
||||
<Container style = { styles.avatarContainer }>
|
||||
<Container style = { avatarStyles }>
|
||||
{
|
||||
isAvatarURL && <Avatar
|
||||
size = { avatarSize }
|
||||
uri = { avatar } />
|
||||
}
|
||||
|
||||
{
|
||||
Boolean(avatar && !isAvatarURL) && <Icon
|
||||
name = { avatar } />
|
||||
}
|
||||
|
||||
{
|
||||
!avatar && <Text
|
||||
style = { [
|
||||
styles.avatarContent,
|
||||
avatarTextStyle
|
||||
] }>
|
||||
{ title.substr(0, 1).toUpperCase() }
|
||||
</Text>
|
||||
}
|
||||
{ this._getAvatarContent() }
|
||||
</Container>
|
||||
</Container>
|
||||
<Container style = { styles.listItemDetails }>
|
||||
|
|
|
@ -68,4 +68,5 @@ function _mapStateToProps(state) {
|
|||
};
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect(_mapStateToProps)(BackButton);
|
||||
|
|
|
@ -165,4 +165,5 @@ function _mapStateToProps(state) {
|
|||
};
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect(_mapStateToProps)(Header);
|
||||
|
|
|
@ -283,4 +283,5 @@ class PagedList extends Component<Props, State> {
|
|||
}
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect()(PagedList);
|
||||
|
|
|
@ -242,4 +242,5 @@ function _mapStateToProps(state) {
|
|||
};
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect(_mapStateToProps)(translate(Watermarks));
|
||||
|
|
|
@ -32,14 +32,8 @@ class MiddlewareRegistry {
|
|||
* @returns {Middleware}
|
||||
*/
|
||||
applyMiddleware(...additional: Array<Middleware<*, *>>) {
|
||||
// XXX The explicit definition of the local variable middlewares is to
|
||||
// satisfy flow.
|
||||
const middlewares = [
|
||||
...this._elements,
|
||||
...additional
|
||||
];
|
||||
|
||||
return applyMiddleware(...middlewares);
|
||||
// $FlowExpectedError
|
||||
return applyMiddleware(...this._elements, ...additional);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -38,6 +38,7 @@ class ReducerRegistry {
|
|||
* @returns {Function}
|
||||
*/
|
||||
combineReducers(additional: NameReducerMap<*, *> = {}) {
|
||||
// $FlowExpectedError
|
||||
return combineReducers({
|
||||
...this._elements,
|
||||
...additional
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import type { Store } from 'redux';
|
||||
|
||||
const logger = require('jitsi-meet-logger').getLogger(__filename);
|
||||
|
||||
/**
|
||||
|
@ -16,7 +18,8 @@ const logger = require('jitsi-meet-logger').getLogger(__filename);
|
|||
* invoked only if {@code prevSelection} and {@code selection} are different.
|
||||
* Immutable!
|
||||
*/
|
||||
type Listener = (selection: any, store: Store, prevSelection: any) => void;
|
||||
type Listener
|
||||
= (selection: any, store: Store<*, *>, prevSelection: any) => void;
|
||||
|
||||
/**
|
||||
* The type selector supported for registration with
|
||||
|
@ -65,7 +68,10 @@ class StateListenerRegistry {
|
|||
*/
|
||||
_selectorListeners: Set<SelectorListener> = new Set();
|
||||
|
||||
_listener: (Store) => void;
|
||||
_listener: ({
|
||||
prevSelections: Map<SelectorListener, any>,
|
||||
store: Store<*, *>
|
||||
}) => void;
|
||||
|
||||
/**
|
||||
* Invoked by a specific redux store any time an action is dispatched, and
|
||||
|
@ -78,7 +84,7 @@ class StateListenerRegistry {
|
|||
*/
|
||||
_listener({ prevSelections, store }: {
|
||||
prevSelections: Map<SelectorListener, any>,
|
||||
store: Store
|
||||
store: Store<*, *>
|
||||
}) {
|
||||
for (const selectorListener of this._selectorListeners) {
|
||||
const prevSelection = prevSelections.get(selectorListener);
|
||||
|
@ -129,7 +135,7 @@ class StateListenerRegistry {
|
|||
* {@code StateListenerRegistry} is to {@code subscribe}.
|
||||
* @returns {void}
|
||||
*/
|
||||
subscribe(store: Store) {
|
||||
subscribe(store: Store<*, *>) {
|
||||
// XXX If StateListenerRegistry is not utilized by the app to listen to
|
||||
// state changes, do not bother subscribing to the store at all.
|
||||
if (this._selectorListeners.size) {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* aspectRatio: Symbol
|
||||
* }
|
||||
*/
|
||||
export const SET_ASPECT_RATIO = Symbol('SET_ASPECT_RATIO');
|
||||
export const SET_ASPECT_RATIO = 'SET_ASPECT_RATIO';
|
||||
|
||||
/**
|
||||
* The type of redux action which signals that the reduces UI mode was enabled
|
||||
|
@ -20,4 +20,4 @@ export const SET_ASPECT_RATIO = Symbol('SET_ASPECT_RATIO');
|
|||
*
|
||||
* @public
|
||||
*/
|
||||
export const SET_REDUCED_UI = Symbol('SET_REDUCED_UI');
|
||||
export const SET_REDUCED_UI = 'SET_REDUCED_UI';
|
||||
|
|
|
@ -30,7 +30,7 @@ const REDUCED_UI_THRESHOLD = 300;
|
|||
* }}
|
||||
*/
|
||||
export function setAspectRatio(width: number, height: number): Function {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
// Don't change the aspect ratio if width and height are the same, that
|
||||
// is, if we transition to a 1:1 aspect ratio.
|
||||
if (width !== height) {
|
||||
|
@ -60,7 +60,7 @@ export function setAspectRatio(width: number, height: number): Function {
|
|||
* }}
|
||||
*/
|
||||
export function setReducedUI(width: number, height: number): Function {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const reducedUI = Math.min(width, height) < REDUCED_UI_THRESHOLD;
|
||||
|
||||
if (reducedUI !== getState()['features/base/responsive-ui'].reducedUI) {
|
||||
|
|
|
@ -52,7 +52,7 @@ class AspectRatioDetector extends Component<Props> {
|
|||
* _onDimensionsChanged: Function
|
||||
* }}
|
||||
*/
|
||||
function _mapDispatchToProps(dispatch: Dispatch<*>) {
|
||||
function _mapDispatchToProps(dispatch: Dispatch<any>) {
|
||||
return {
|
||||
/**
|
||||
* Handles the "on dimensions changed" event and dispatches aspect ratio
|
||||
|
@ -69,4 +69,5 @@ function _mapDispatchToProps(dispatch: Dispatch<*>) {
|
|||
};
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect(undefined, _mapDispatchToProps)(AspectRatioDetector);
|
||||
|
|
|
@ -53,7 +53,7 @@ class ReducedUIDetector extends Component<Props> {
|
|||
* _onDimensionsChanged: Function
|
||||
* }}
|
||||
*/
|
||||
function _mapDispatchToProps(dispatch: Dispatch<*>) {
|
||||
function _mapDispatchToProps(dispatch: Dispatch<any>) {
|
||||
return {
|
||||
/**
|
||||
* Handles the "on dimensions changed" event and dispatches the
|
||||
|
@ -70,4 +70,5 @@ function _mapDispatchToProps(dispatch: Dispatch<*>) {
|
|||
};
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect(undefined, _mapDispatchToProps)(ReducedUIDetector);
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* @type {Symbol}
|
||||
*/
|
||||
export const ASPECT_RATIO_NARROW = Symbol('ASPECT_RATIO_NARROW');
|
||||
export const ASPECT_RATIO_NARROW = 'ASPECT_RATIO_NARROW';
|
||||
|
||||
/**
|
||||
* The aspect ratio constant which indicates that the width (of whatever the
|
||||
|
@ -12,4 +12,4 @@ export const ASPECT_RATIO_NARROW = Symbol('ASPECT_RATIO_NARROW');
|
|||
*
|
||||
* @type {Symbol}
|
||||
*/
|
||||
export const ASPECT_RATIO_WIDE = Symbol('ASPECT_RATIO_WIDE');
|
||||
export const ASPECT_RATIO_WIDE = 'ASPECT_RATIO_WIDE';
|
||||
|
|
|
@ -19,4 +19,4 @@
|
|||
* }
|
||||
* }
|
||||
*/
|
||||
export const SETTINGS_UPDATED = Symbol('SETTINGS_UPDATED');
|
||||
export const SETTINGS_UPDATED = 'SETTINGS_UPDATED';
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* soundId: string
|
||||
* }
|
||||
*/
|
||||
export const _ADD_AUDIO_ELEMENT = Symbol('_ADD_AUDIO_ELEMENT');
|
||||
export const _ADD_AUDIO_ELEMENT = '_ADD_AUDIO_ELEMENT';
|
||||
|
||||
/**
|
||||
* The type of feature/internal/protected (redux) action to remove an audio
|
||||
|
@ -19,7 +19,7 @@ export const _ADD_AUDIO_ELEMENT = Symbol('_ADD_AUDIO_ELEMENT');
|
|||
* soundId: string
|
||||
* }
|
||||
*/
|
||||
export const _REMOVE_AUDIO_ELEMENT = Symbol('_REMOVE_AUDIO_ELEMENT');
|
||||
export const _REMOVE_AUDIO_ELEMENT = '_REMOVE_AUDIO_ELEMENT';
|
||||
|
||||
/**
|
||||
* The type of (redux) action to play a sound from the sounds collection.
|
||||
|
@ -29,7 +29,7 @@ export const _REMOVE_AUDIO_ELEMENT = Symbol('_REMOVE_AUDIO_ELEMENT');
|
|||
* soundId: string
|
||||
* }
|
||||
*/
|
||||
export const PLAY_SOUND = Symbol('PLAY_SOUND');
|
||||
export const PLAY_SOUND = 'PLAY_SOUND';
|
||||
|
||||
/**
|
||||
* The type of (redux) action to register a new sound with the sounds
|
||||
|
@ -40,7 +40,7 @@ export const PLAY_SOUND = Symbol('PLAY_SOUND');
|
|||
* soundId: string
|
||||
* }
|
||||
*/
|
||||
export const REGISTER_SOUND = Symbol('REGISTER_SOUND');
|
||||
export const REGISTER_SOUND = 'REGISTER_SOUND';
|
||||
|
||||
/**
|
||||
* The type of (redux) action to stop a sound from the sounds collection.
|
||||
|
@ -50,7 +50,7 @@ export const REGISTER_SOUND = Symbol('REGISTER_SOUND');
|
|||
* soundId: string
|
||||
* }
|
||||
*/
|
||||
export const STOP_SOUND = Symbol('STOP_SOUND');
|
||||
export const STOP_SOUND = 'STOP_SOUND';
|
||||
|
||||
/**
|
||||
* The type of (redux) action to unregister an existing sound from the sounds
|
||||
|
@ -61,4 +61,4 @@ export const STOP_SOUND = Symbol('STOP_SOUND');
|
|||
* soundId: string
|
||||
* }
|
||||
*/
|
||||
export const UNREGISTER_SOUND = Symbol('UNREGISTER_SOUND');
|
||||
export const UNREGISTER_SOUND = 'UNREGISTER_SOUND';
|
||||
|
|
|
@ -153,4 +153,5 @@ export function _mapDispatchToProps(dispatch: Function) {
|
|||
};
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect(_mapStateToProps, _mapDispatchToProps)(SoundCollection);
|
||||
|
|
|
@ -46,7 +46,7 @@ const _WELL_KNOWN_NUMBER_PROPERTIES = [ 'height', 'width' ];
|
|||
* @returns {StyleType} - The merged styles.
|
||||
*/
|
||||
export function combineStyles(a: StyleType, b: StyleType): StyleType {
|
||||
const result = [];
|
||||
const result: Array<StyleSheet> = [];
|
||||
|
||||
if (a) {
|
||||
if (Array.isArray(a)) {
|
||||
|
|
|
@ -6,4 +6,4 @@
|
|||
* type: SET_CONNECTION_STATE
|
||||
* }
|
||||
*/
|
||||
export const SET_CONNECTION_STATE = Symbol('SET_CONNECTION_STATE');
|
||||
export const SET_CONNECTION_STATE = 'SET_CONNECTION_STATE';
|
||||
|
|
|
@ -89,7 +89,7 @@ class TestConnectionInfo extends Component<Props, State> {
|
|||
* @param {Object} props - The read-only properties with which the new
|
||||
* instance is to be initialized.
|
||||
*/
|
||||
constructor(props: Object) {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
|
||||
this._onStatsUpdated = this._onStatsUpdated.bind(this);
|
||||
|
@ -142,7 +142,7 @@ class TestConnectionInfo extends Component<Props, State> {
|
|||
* @inheritdoc
|
||||
* returns {void}
|
||||
*/
|
||||
componentDidUpdate(prevProps) {
|
||||
componentDidUpdate(prevProps: Props) {
|
||||
if (prevProps._localUserId !== this.props._localUserId) {
|
||||
statsEmitter.unsubscribeToClientStats(
|
||||
prevProps._localUserId, this._onStatsUpdated);
|
||||
|
@ -215,4 +215,5 @@ function _mapStateToProps(state) {
|
|||
};
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect(_mapStateToProps)(TestConnectionInfo);
|
||||
|
|
|
@ -34,4 +34,5 @@ class TestHint extends Component<TestHintProps> {
|
|||
}
|
||||
}
|
||||
|
||||
// $FlowExpectedError
|
||||
export default connect(_mapStateToProps)(TestHint);
|
||||
|
|
|
@ -201,6 +201,7 @@ export default class AbstractToolboxItem<P : Props> extends Component<P> {
|
|||
*/
|
||||
_renderItem() {
|
||||
// To be implemented by a subclass.
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* type: TOGGLE_SCREENSHARING
|
||||
* }
|
||||
*/
|
||||
export const TOGGLE_SCREENSHARING = Symbol('TOGGLE_SCREENSHARING');
|
||||
export const TOGGLE_SCREENSHARING = 'TOGGLE_SCREENSHARING';
|
||||
|
||||
/**
|
||||
* The type of redux action dispatched when a track has been (locally or
|
||||
|
@ -17,7 +17,7 @@ export const TOGGLE_SCREENSHARING = Symbol('TOGGLE_SCREENSHARING');
|
|||
* track: Track
|
||||
* }
|
||||
*/
|
||||
export const TRACK_ADDED = Symbol('TRACK_ADDED');
|
||||
export const TRACK_ADDED = 'TRACK_ADDED';
|
||||
|
||||
/**
|
||||
* The type of redux action dispatched when a canceled {@code getUserMedia}
|
||||
|
@ -29,7 +29,7 @@ export const TRACK_ADDED = Symbol('TRACK_ADDED');
|
|||
* trackType: MEDIA_TYPE
|
||||
* }
|
||||
*/
|
||||
export const TRACK_CREATE_CANCELED = Symbol('TRACK_CREATE_CANCELED');
|
||||
export const TRACK_CREATE_CANCELED = 'TRACK_CREATE_CANCELED';
|
||||
|
||||
/**
|
||||
* The type of redux action dispatched when {@code getUserMedia} fails with an
|
||||
|
@ -41,7 +41,7 @@ export const TRACK_CREATE_CANCELED = Symbol('TRACK_CREATE_CANCELED');
|
|||
* trackType: MEDIA_TYPE
|
||||
* }
|
||||
*/
|
||||
export const TRACK_CREATE_ERROR = Symbol('TRACK_CREATE_ERROR');
|
||||
export const TRACK_CREATE_ERROR = 'TRACK_CREATE_ERROR';
|
||||
|
||||
/**
|
||||
* The type of redux action dispatched when a track has been (locally or
|
||||
|
@ -52,7 +52,7 @@ export const TRACK_CREATE_ERROR = Symbol('TRACK_CREATE_ERROR');
|
|||
* track: Track
|
||||
* }
|
||||
*/
|
||||
export const TRACK_REMOVED = Symbol('TRACK_REMOVED');
|
||||
export const TRACK_REMOVED = 'TRACK_REMOVED';
|
||||
|
||||
/**
|
||||
* The type of redux action dispatched when a track's properties were updated.
|
||||
|
@ -62,7 +62,7 @@ export const TRACK_REMOVED = Symbol('TRACK_REMOVED');
|
|||
* track: Track
|
||||
* }
|
||||
*/
|
||||
export const TRACK_UPDATED = Symbol('TRACK_UPDATED');
|
||||
export const TRACK_UPDATED = 'TRACK_UPDATED';
|
||||
|
||||
/**
|
||||
* The type of redux action dispatched when a local track starts being created
|
||||
|
@ -82,4 +82,4 @@ export const TRACK_UPDATED = Symbol('TRACK_UPDATED');
|
|||
* }
|
||||
* }
|
||||
*/
|
||||
export const TRACK_WILL_CREATE = Symbol('TRACK_WILL_CREATE');
|
||||
export const TRACK_WILL_CREATE = 'TRACK_WILL_CREATE';
|
||||
|
|
|
@ -21,29 +21,6 @@ export function getJitsiMeetGlobalNS() {
|
|||
return window.JitsiMeetJS.app;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the description of a specific {@code Symbol}.
|
||||
*
|
||||
* @param {Symbol} symbol - The {@code Symbol} to retrieve the description of.
|
||||
* @private
|
||||
* @returns {string} The description of {@code symbol}.
|
||||
*/
|
||||
export function getSymbolDescription(symbol: ?Symbol) {
|
||||
let description = symbol ? symbol.toString() : 'undefined';
|
||||
|
||||
if (description.startsWith('Symbol(') && description.endsWith(')')) {
|
||||
description = description.slice(7, -1);
|
||||
}
|
||||
|
||||
// The polyfill es6-symbol that we use does not appear to comply with the
|
||||
// Symbol standard and, merely, adds @@ at the beginning of the description.
|
||||
if (description.startsWith('@@')) {
|
||||
description = description.slice(2);
|
||||
}
|
||||
|
||||
return description;
|
||||
}
|
||||
|
||||
/**
|
||||
* A helper function that behaves similar to Object.assign, but only reassigns a
|
||||
* property in target if it's defined in source.
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* type: CLEAR_CALENDAR_INTEGRATION
|
||||
* }
|
||||
*/
|
||||
export const CLEAR_CALENDAR_INTEGRATION = Symbol('CLEAR_CALENDAR_INTEGRATION');
|
||||
export const CLEAR_CALENDAR_INTEGRATION = 'CLEAR_CALENDAR_INTEGRATION';
|
||||
|
||||
/**
|
||||
* Action to refresh (re-fetch) the entry list.
|
||||
|
@ -19,7 +19,7 @@ export const CLEAR_CALENDAR_INTEGRATION = Symbol('CLEAR_CALENDAR_INTEGRATION');
|
|||
* isInteractive: boolean
|
||||
* }
|
||||
*/
|
||||
export const REFRESH_CALENDAR = Symbol('REFRESH_CALENDAR');
|
||||
export const REFRESH_CALENDAR = 'REFRESH_CALENDAR';
|
||||
|
||||
/**
|
||||
* Action to signal that calendar access has already been requested since the
|
||||
|
@ -31,7 +31,7 @@ export const REFRESH_CALENDAR = Symbol('REFRESH_CALENDAR');
|
|||
* authorization: ?string
|
||||
* }
|
||||
*/
|
||||
export const SET_CALENDAR_AUTHORIZATION = Symbol('SET_CALENDAR_AUTHORIZATION');
|
||||
export const SET_CALENDAR_AUTHORIZATION = 'SET_CALENDAR_AUTHORIZATION';
|
||||
|
||||
/**
|
||||
* Action to update the last error that occurred while trying to authenticate
|
||||
|
@ -42,7 +42,7 @@ export const SET_CALENDAR_AUTHORIZATION = Symbol('SET_CALENDAR_AUTHORIZATION');
|
|||
* error: ?Object
|
||||
* }
|
||||
*/
|
||||
export const SET_CALENDAR_ERROR = Symbol('SET_CALENDAR_ERROR');
|
||||
export const SET_CALENDAR_ERROR = 'SET_CALENDAR_ERROR';
|
||||
|
||||
/**
|
||||
* Action to update the current calendar entry list in the store.
|
||||
|
@ -52,7 +52,7 @@ export const SET_CALENDAR_ERROR = Symbol('SET_CALENDAR_ERROR');
|
|||
* events: Array<Object>
|
||||
* }
|
||||
*/
|
||||
export const SET_CALENDAR_EVENTS = Symbol('SET_CALENDAR_EVENTS');
|
||||
export const SET_CALENDAR_EVENTS = 'SET_CALENDAR_EVENTS';
|
||||
|
||||
/**
|
||||
* Action to update calendar type to be used for web.
|
||||
|
@ -63,7 +63,7 @@ export const SET_CALENDAR_EVENTS = Symbol('SET_CALENDAR_EVENTS');
|
|||
* integrationType: string
|
||||
* }
|
||||
*/
|
||||
export const SET_CALENDAR_INTEGRATION = Symbol('SET_CALENDAR_INTEGRATION');
|
||||
export const SET_CALENDAR_INTEGRATION = 'SET_CALENDAR_INTEGRATION';
|
||||
|
||||
/**
|
||||
* The type of Redux action which changes Calendar API auth state.
|
||||
|
@ -73,7 +73,7 @@ export const SET_CALENDAR_INTEGRATION = Symbol('SET_CALENDAR_INTEGRATION');
|
|||
* }
|
||||
* @public
|
||||
*/
|
||||
export const SET_CALENDAR_AUTH_STATE = Symbol('SET_CALENDAR_AUTH_STATE');
|
||||
export const SET_CALENDAR_AUTH_STATE = 'SET_CALENDAR_AUTH_STATE';
|
||||
|
||||
/**
|
||||
* The type of Redux action which changes Calendar Profile email state.
|
||||
|
@ -84,7 +84,7 @@ export const SET_CALENDAR_AUTH_STATE = Symbol('SET_CALENDAR_AUTH_STATE');
|
|||
* }
|
||||
* @public
|
||||
*/
|
||||
export const SET_CALENDAR_PROFILE_EMAIL = Symbol('SET_CALENDAR_PROFILE_EMAIL');
|
||||
export const SET_CALENDAR_PROFILE_EMAIL = 'SET_CALENDAR_PROFILE_EMAIL';
|
||||
|
||||
/**
|
||||
* The type of Redux action which denotes whether a request is in flight to get
|
||||
|
@ -97,4 +97,4 @@ export const SET_CALENDAR_PROFILE_EMAIL = Symbol('SET_CALENDAR_PROFILE_EMAIL');
|
|||
* @public
|
||||
*/
|
||||
export const SET_LOADING_CALENDAR_EVENTS
|
||||
= Symbol('SET_LOADING_CALENDAR_EVENTS');
|
||||
= 'SET_LOADING_CALENDAR_EVENTS';
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
// @flow
|
||||
import { generateRoomWithoutSeparator } from 'js-utils/random';
|
||||
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { getDefaultURL } from '../app';
|
||||
import { openDialog } from '../base/dialog';
|
||||
|
||||
|
@ -35,7 +37,7 @@ export function openUpdateCalendarEventDialog(eventId: string) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function updateCalendarEvent(eventId: string) {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const defaultUrl = getDefaultURL(getState);
|
||||
const roomName = generateRoomWithoutSeparator();
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import { generateRoomWithoutSeparator } from 'js-utils/random';
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { loadGoogleAPI } from '../google-api';
|
||||
|
||||
|
@ -197,7 +198,7 @@ export function setIntegrationReady(integrationType: string) {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function signIn(calendarType: string): Function {
|
||||
return (dispatch: Dispatch<*>) => {
|
||||
return (dispatch: Dispatch<any>) => {
|
||||
const integration = _getCalendarIntegration(calendarType);
|
||||
|
||||
if (!integration) {
|
||||
|
@ -229,7 +230,7 @@ export function signIn(calendarType: string): Function {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function updateCalendarEvent(id: string, calendarId: string): Function {
|
||||
return (dispatch: Dispatch<*>, getState: Function) => {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
|
||||
const { integrationType } = getState()['features/calendar-sync'];
|
||||
const integration = _getCalendarIntegration(integrationType);
|
||||
|
@ -276,7 +277,7 @@ export function updateCalendarEvent(id: string, calendarId: string): Function {
|
|||
* @returns {Function}
|
||||
*/
|
||||
export function updateProfile(calendarType: string): Function {
|
||||
return (dispatch: Dispatch<*>) => {
|
||||
return (dispatch: Dispatch<any>) => {
|
||||
const integration = _getCalendarIntegration(calendarType);
|
||||
|
||||
if (!integration) {
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
// @flow
|
||||
|
||||
import Tooltip from '@atlaskit/tooltip';
|
||||
import React, { Component } from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import Tooltip from '@atlaskit/tooltip';
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import {
|
||||
createCalendarClickedEvent,
|
||||
|
@ -25,7 +26,7 @@ type Props = {
|
|||
/**
|
||||
* Invoked to add a meeting URL to a calendar event.
|
||||
*/
|
||||
dispatch: Dispatch<*>,
|
||||
dispatch: Dispatch<any>,
|
||||
|
||||
/**
|
||||
* The ID of the calendar event that will have a meeting URL added on click.
|
||||
|
|
|
@ -108,7 +108,7 @@ class CalendarListContent extends Component<Props> {
|
|||
);
|
||||
}
|
||||
|
||||
_onPress: (string, string) => Function;
|
||||
_onPress: (string, ?string) => Function;
|
||||
|
||||
/**
|
||||
* Handles the list's navigate action.
|
||||
|
|
|
@ -59,7 +59,7 @@ class CalendarListContent extends Component<Props> {
|
|||
*
|
||||
* @inheritdoc
|
||||
*/
|
||||
constructor(props) {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
|
||||
// Bind event handlers so they are only bound once per instance.
|
||||
|
@ -114,7 +114,7 @@ class CalendarListContent extends Component<Props> {
|
|||
this._onPress(url, 'calendar.meeting.join');
|
||||
}
|
||||
|
||||
_onPress: (string, string) => Function;
|
||||
_onPress: (string, ?string) => Function;
|
||||
|
||||
/**
|
||||
* Handles the list's navigate action.
|
||||
|
@ -173,5 +173,7 @@ function _mapStateToProps(state: Object) {
|
|||
}
|
||||
|
||||
export default isCalendarEnabled()
|
||||
|
||||
// $FlowExpectedError
|
||||
? connect(_mapStateToProps)(CalendarListContent)
|
||||
: undefined;
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
import { NativeModules, Platform } from 'react-native';
|
||||
import RNCalendarEvents from 'react-native-calendar-events';
|
||||
import type { Store } from 'redux';
|
||||
|
||||
import { getShareInfoText } from '../invite';
|
||||
|
||||
|
@ -22,7 +23,7 @@ const logger = require('jitsi-meet-logger').getLogger(__filename);
|
|||
* @returns {Promise<*>}
|
||||
*/
|
||||
export function addLinkToCalendarEntry(
|
||||
state: Object, id: string, link: string) {
|
||||
state: Object, id: string, link: string): Promise<any> {
|
||||
return new Promise((resolve, reject) => {
|
||||
getShareInfoText(state, link, true).then(shareInfoText => {
|
||||
RNCalendarEvents.findEventById(id).then(event => {
|
||||
|
@ -76,9 +77,9 @@ export function isCalendarEnabled() {
|
|||
* @returns {void}
|
||||
*/
|
||||
export function _fetchCalendarEntries(
|
||||
store,
|
||||
maybePromptForPermission,
|
||||
forcePermission) {
|
||||
store: Store<*, *>,
|
||||
maybePromptForPermission: boolean,
|
||||
forcePermission: ?boolean) {
|
||||
const { dispatch, getState } = store;
|
||||
const promptForPermission
|
||||
= (maybePromptForPermission
|
||||
|
|
|
@ -47,9 +47,9 @@ export function isCalendarEnabled() {
|
|||
* @returns {void}
|
||||
*/
|
||||
export function _fetchCalendarEntries(
|
||||
store,
|
||||
maybePromptForPermission,
|
||||
forcePermission) {
|
||||
store: Object,
|
||||
maybePromptForPermission: boolean,
|
||||
forcePermission: ?boolean) {
|
||||
/* eslint-enable no-unused-vars */
|
||||
const { dispatch, getState } = store;
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue