Sfoglia il codice sorgente

feat(web/RN): update React to v16 and React Native to 0.49

j8
paweldomas 7 anni fa
parent
commit
b74bede0e7
60 ha cambiato i file con 3329 aggiunte e 559 eliminazioni
  1. 22
    10
      .flowconfig
  2. 1
    1
      android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetView.java
  3. 0
    5
      android/sdk/src/main/java/org/jitsi/meet/sdk/ReactPackageAdapter.java
  4. 6
    0
      app.js
  5. 3111
    420
      flow-typed/npm/lodash_v4.x.x.js
  6. 34
    0
      flow-typed/npm/prop-types_v15.x.x.js
  7. 22
    30
      flow-typed/npm/react-redux_v5.x.x.js
  8. 27
    27
      flow-typed/npm/redux_v3.x.x.js
  9. 26
    1
      index.android.js
  10. 2
    1
      index.ios.js
  11. 3
    1
      ios/Podfile
  12. 1
    1
      ios/scripts/run-packager.sh
  13. 1
    1
      ios/sdk/sdk.xcodeproj/project.pbxproj
  14. 4
    4
      package.json
  15. 1
    1
      react/features/always-on-top/AlwaysOnTop.js
  16. 3
    2
      react/features/app/functions.web.js
  17. 1
    1
      react/features/authentication/components/WaitForOwnerDialog.native.js
  18. 1
    1
      react/features/base/dialog/components/AbstractDialog.js
  19. 1
    1
      react/features/base/jwt/components/CallOverlay.js
  20. 1
    1
      react/features/base/media/components/native/Video.js
  21. 1
    1
      react/features/base/react/components/AbstractContainer.js
  22. 1
    1
      react/features/base/react/components/native/LoadingIndicator.js
  23. 1
    1
      react/features/base/react/components/web/InlineDialogFailure.js
  24. 1
    1
      react/features/base/react/components/web/Watermarks.js
  25. 8
    0
      react/features/base/react/prop-types-polyfill.js
  26. 1
    1
      react/features/conference/components/Conference.web.js
  27. 1
    1
      react/features/contact-list/components/ContactListPanel.web.js
  28. 1
    1
      react/features/desktop-picker/components/DesktopPicker.js
  29. 1
    1
      react/features/feedback/components/FeedbackButton.web.js
  30. 1
    1
      react/features/filmstrip/components/Filmstrip.native.js
  31. 1
    1
      react/features/filmstrip/components/Filmstrip.web.js
  32. 2
    2
      react/features/invite/components/AddPeopleDialog.web.js
  33. 1
    1
      react/features/large-video/components/LargeVideo.native.js
  34. 1
    1
      react/features/large-video/components/LargeVideo.web.js
  35. 1
    1
      react/features/mobile/network-activity/components/NetworkActivityIndicator.js
  36. 1
    1
      react/features/overlay/components/AbstractPageReloadOverlay.js
  37. 1
    1
      react/features/overlay/components/ReloadButton.js
  38. 2
    2
      react/features/overlay/reducer.js
  39. 1
    1
      react/features/room-lock/components/PasswordRequiredPrompt.native.js
  40. 1
    1
      react/features/room-lock/components/PasswordRequiredPrompt.web.js
  41. 1
    1
      react/features/room-lock/components/RoomLockPrompt.native.js
  42. 1
    1
      react/features/speaker-stats/components/SpeakerStats.js
  43. 1
    1
      react/features/toolbox/components/Notice.js
  44. 2
    2
      react/features/toolbox/components/PrimaryToolbar.web.js
  45. 1
    1
      react/features/toolbox/components/ProfileButton.web.js
  46. 2
    2
      react/features/toolbox/components/SecondaryToolbar.web.js
  47. 2
    2
      react/features/toolbox/components/StatelessToolbar.web.js
  48. 1
    1
      react/features/toolbox/components/StatelessToolbarButton.js
  49. 3
    3
      react/features/toolbox/components/Toolbar.web.js
  50. 2
    2
      react/features/toolbox/components/ToolbarButton.web.js
  51. 4
    4
      react/features/toolbox/components/Toolbox.web.js
  52. 1
    1
      react/features/unsupported-browser/components/HideNotificationBarStyle.js
  53. 1
    1
      react/features/unsupported-browser/components/NoMobileApp.js
  54. 1
    1
      react/features/unsupported-browser/components/PluginRequiredBrowser.js
  55. 1
    1
      react/features/unsupported-browser/components/UnsupportedDesktopBrowser.js
  56. 1
    1
      react/features/unsupported-browser/components/UnsupportedMobileBrowser.js
  57. 1
    1
      react/features/welcome/components/AbstractWelcomePage.js
  58. 1
    1
      react/features/welcome/components/BlankPage.native.js
  59. 1
    1
      react/features/welcome/components/LocalVideoTrackUnderlay.native.js
  60. 4
    1
      react/index.native.js

+ 22
- 10
.flowconfig Vedi File

14
 .*/Libraries/react-native/React.js
14
 .*/Libraries/react-native/React.js
15
 .*/Libraries/react-native/ReactNative.js
15
 .*/Libraries/react-native/ReactNative.js
16
 
16
 
17
+; Ignore polyfills
18
+.*/Libraries/polyfills/.*
19
+
17
 ; Ignore packages in node_modules which we (i.e. the jitsi-meet project) have
20
 ; Ignore packages in node_modules which we (i.e. the jitsi-meet project) have
18
 ; seen to cause errors and we have chosen not to fix.
21
 ; seen to cause errors and we have chosen not to fix.
19
-.*/node_modules/babel-.*
20
-.*/node_modules/bower/.*
21
-.*/node_modules/jsonlint/.*
22
-.*/node_modules/promise/index.js.flow
22
+.*/node_modules/@atlassian
23
+.*/node_modules/bower/lib/node_modules/bower-json/test/.*
24
+.*/node_modules/jsonlint/test/.*
25
+
26
+; FIXME Remove once we update past this commit:
27
+; https://github.com/facebook/react-native/commit/df8d0d1db9203cc87ad3682e6138b2a9ed714365
28
+.*/node_modules/react-native/local-cli/link/link.js
29
+
30
+.*/node_modules/react-native-keep-awake/.*
23
 .*/node_modules/styled-components/.*
31
 .*/node_modules/styled-components/.*
24
 
32
 
25
 .*/\.git/.*
33
 .*/\.git/.*
29
 [libs]
37
 [libs]
30
 node_modules/react-native/Libraries/react-native/react-native-interface.js
38
 node_modules/react-native/Libraries/react-native/react-native-interface.js
31
 node_modules/react-native/flow
39
 node_modules/react-native/flow
32
-flow/
33
 
40
 
34
 [options]
41
 [options]
35
 emoji=true
42
 emoji=true
36
 
43
 
37
 module.system=haste
44
 module.system=haste
38
 
45
 
39
-experimental.strict_type_args=true
40
-
41
 ; FIXME: munge_underscores should be false but right now there are some errors
46
 ; FIXME: munge_underscores should be false but right now there are some errors
42
 ; if we change the value to false
47
 ; if we change the value to false
43
 ; Treats class properties with underscore as private. Disabled because currently
48
 ; Treats class properties with underscore as private. Disabled because currently
45
 ; munge_underscores=false
50
 ; munge_underscores=false
46
 munge_underscores=true
51
 munge_underscores=true
47
 
52
 
53
+; FIXME Remove once we update past this commit:
54
+; https://github.com/facebook/react-native/commit/df8d0d1db9203cc87ad3682e6138b2a9ed714365
55
+module.name_mapper='^./link/link$' -> 'emptyObject'
56
+
48
 module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'
57
 module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'
49
 
58
 
50
 suppress_type=$FlowIssue
59
 suppress_type=$FlowIssue
51
 suppress_type=$FlowFixMe
60
 suppress_type=$FlowFixMe
61
+suppress_type=$FlowFixMeProps
62
+suppress_type=$FlowFixMeState
52
 suppress_type=$FixMe
63
 suppress_type=$FixMe
53
 
64
 
54
-suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(3[0-8]\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
55
-suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(3[0-8]\\|1[0-9]\\|[1-2][0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
65
+suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(5[0-3]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\)
66
+suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(5[0-3]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\)?:? #[0-9]+
56
 suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
67
 suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
68
+suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
57
 suppress_comment=\\(.\\|\n\\)*\\$FlowDisableNextLine
69
 suppress_comment=\\(.\\|\n\\)*\\$FlowDisableNextLine
58
 
70
 
59
 unsafe.enable_getters_and_setters=true
71
 unsafe.enable_getters_and_setters=true
71
 module.file_ext=.json
83
 module.file_ext=.json
72
 
84
 
73
 [version]
85
 [version]
74
-^0.38.0
86
+^0.53.0

+ 1
- 1
android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetView.java Vedi File

94
             = ReactInstanceManager.builder()
94
             = ReactInstanceManager.builder()
95
                 .setApplication(application)
95
                 .setApplication(application)
96
                 .setBundleAssetName("index.android.bundle")
96
                 .setBundleAssetName("index.android.bundle")
97
-                .setJSMainModuleName("index.android")
97
+                .setJSMainModulePath("index.android")
98
                 .addPackage(new com.corbt.keepawake.KCKeepAwakePackage())
98
                 .addPackage(new com.corbt.keepawake.KCKeepAwakePackage())
99
                 .addPackage(new com.facebook.react.shell.MainReactPackage())
99
                 .addPackage(new com.facebook.react.shell.MainReactPackage())
100
                 .addPackage(new com.oblador.vectoricons.VectorIconsPackage())
100
                 .addPackage(new com.oblador.vectoricons.VectorIconsPackage())

+ 0
- 5
android/sdk/src/main/java/org/jitsi/meet/sdk/ReactPackageAdapter.java Vedi File

26
 import java.util.List;
26
 import java.util.List;
27
 
27
 
28
 public class ReactPackageAdapter implements ReactPackage {
28
 public class ReactPackageAdapter implements ReactPackage {
29
-    @Override
30
-    public List<Class<? extends JavaScriptModule>> createJSModules() {
31
-        return Collections.emptyList();
32
-    }
33
-
34
     @Override
29
     @Override
35
     public List<NativeModule> createNativeModules(
30
     public List<NativeModule> createNativeModules(
36
             ReactApplicationContext reactContext) {
31
             ReactApplicationContext reactContext) {

+ 6
- 0
app.js Vedi File

1
 /* application specific logic */
1
 /* application specific logic */
2
 
2
 
3
+// FIXME: remove once atlaskit work with React 16
4
+// It seems that @atlaskit/icon is importing PropTypes from React, but it
5
+// happens through some glyph coffee script template. It could be that more
6
+// things are broken there (not only the icon).
7
+import './react/features/base/react/prop-types-polyfill.js';
8
+
3
 import 'jquery';
9
 import 'jquery';
4
 import 'jquery-contextmenu';
10
 import 'jquery-contextmenu';
5
 import 'jquery-ui';
11
 import 'jquery-ui';

+ 3111
- 420
flow-typed/npm/lodash_v4.x.x.js
File diff soppresso perché troppo grande
Vedi File


+ 34
- 0
flow-typed/npm/prop-types_v15.x.x.js Vedi File

1
+// flow-typed signature: 3eaa1f24c7397b78a7481992d2cddcb2
2
+// flow-typed version: a1a20d4928/prop-types_v15.x.x/flow_>=v0.41.x
3
+
4
+type $npm$propTypes$ReactPropsCheckType = (
5
+  props: any,
6
+  propName: string,
7
+  componentName: string,
8
+  href?: string) => ?Error;
9
+
10
+declare module 'prop-types' {
11
+  declare var array: React$PropType$Primitive<Array<any>>;
12
+  declare var bool: React$PropType$Primitive<boolean>;
13
+  declare var func: React$PropType$Primitive<Function>;
14
+  declare var number: React$PropType$Primitive<number>;
15
+  declare var object: React$PropType$Primitive<Object>;
16
+  declare var string: React$PropType$Primitive<string>;
17
+  declare var any: React$PropType$Primitive<any>;
18
+  declare var arrayOf: React$PropType$ArrayOf;
19
+  declare var element: React$PropType$Primitive<any>; /* TODO */
20
+  declare var instanceOf: React$PropType$InstanceOf;
21
+  declare var node: React$PropType$Primitive<any>; /* TODO */
22
+  declare var objectOf: React$PropType$ObjectOf;
23
+  declare var oneOf: React$PropType$OneOf;
24
+  declare var oneOfType: React$PropType$OneOfType;
25
+  declare var shape: React$PropType$Shape;
26
+
27
+  declare function checkPropTypes<V>(
28
+    propTypes: $Subtype<{[_: $Keys<V>]: $npm$propTypes$ReactPropsCheckType}>,
29
+    values: V,
30
+    location: string,
31
+    componentName: string,
32
+    getStack: ?(() => ?string)
33
+  ) : void;
34
+}

+ 22
- 30
flow-typed/npm/react-redux_v5.x.x.js Vedi File

1
-// flow-typed signature: c0e8d9867aff7576bb7cf63fe60a6af3
2
-// flow-typed version: 83053e4020/react-redux_v5.x.x/flow_>=v0.30.x <=v0.52.x
1
+// flow-typed signature: 4e93c65cedbfbf7f1ab3fe4e800943d3
2
+// flow-typed version: 9092387fd2/react-redux_v5.x.x/flow_>=v0.53.x <=v0.53.x
3
+
4
+// flow-typed signature: 8db7b853f57c51094bf0ab8b2650fd9c
5
+// flow-typed version: ab8db5f14d/react-redux_v5.x.x/flow_>=v0.30.x
3
 
6
 
4
 import type { Dispatch, Store } from "redux";
7
 import type { Dispatch, Store } from "redux";
5
 
8
 
31
 
34
 
32
   declare type Context = { store: Store<*, *> };
35
   declare type Context = { store: Store<*, *> };
33
 
36
 
34
-  declare type StatelessComponent<P> = (
35
-    props: P,
36
-    context: Context
37
-  ) => ?React$Element<any>;
38
-
39
-  declare class ConnectedComponent<OP, P, Def, St> extends React$Component<
40
-    void,
41
-    OP,
42
-    void
43
-  > {
44
-    static WrappedComponent: Class<React$Component<Def, P, St>>,
45
-    getWrappedInstance(): React$Component<Def, P, St>,
46
-    static defaultProps: void,
37
+  declare class ConnectedComponent<OP, P> extends React$Component<OP> {
38
+    static WrappedComponent: Class<React$Component<P>>,
39
+    getWrappedInstance(): React$Component<P>,
47
     props: OP,
40
     props: OP,
48
     state: void
41
     state: void
49
   }
42
   }
50
 
43
 
51
-  declare type ConnectedComponentClass<OP, P, Def, St> = Class<
52
-    ConnectedComponent<OP, P, Def, St>
44
+  declare type ConnectedComponentClass<OP, P> = Class<
45
+    ConnectedComponent<OP, P>
53
   >;
46
   >;
54
 
47
 
55
-  declare type Connector<OP, P> = {
56
-    (
57
-      component: StatelessComponent<P>
58
-    ): ConnectedComponentClass<OP, P, void, void>,
59
-    <Def, St>(
60
-      component: Class<React$Component<Def, P, St>>
61
-    ): ConnectedComponentClass<OP, P, Def, St>
62
-  };
48
+  declare type Connector<OP, P> = (
49
+    component: React$ComponentType<P>
50
+  ) => ConnectedComponentClass<OP, P>;
51
+
52
+  declare class Provider<S, A> extends React$Component<{
53
+    store: Store<S, A>,
54
+    children?: any
55
+  }> {}
63
 
56
 
64
-  declare class Provider<S, A> extends React$Component<
65
-    void,
66
-    { store: Store<S, A>, children?: any },
67
-    void
68
-  > {}
57
+  declare function createProvider(
58
+    storeKey?: string,
59
+    subKey?: string
60
+  ): Provider<*, *>;
69
 
61
 
70
   declare type ConnectOptions = {
62
   declare type ConnectOptions = {
71
     pure?: boolean,
63
     pure?: boolean,

+ 27
- 27
flow-typed/npm/redux_v3.x.x.js Vedi File

1
-// flow-typed signature: 86993bd000012d3e1ef10d757d16952d
2
-// flow-typed version: a165222d28/redux_v3.x.x/flow_>=v0.33.x
1
+// flow-typed signature: 33b83b6284653250e74578cf4dbe6124
2
+// flow-typed version: e282e4128f/redux_v3.x.x/flow_>=v0.33.x
3
 
3
 
4
 declare module 'redux' {
4
 declare module 'redux' {
5
 
5
 
11
 
11
 
12
   */
12
   */
13
 
13
 
14
-  declare type DispatchAPI<A> = (action: A) => A;
15
-  declare type Dispatch<A: { type: $Subtype<string> }> = DispatchAPI<A>;
14
+  declare export type DispatchAPI<A> = (action: A) => A;
15
+  declare export type Dispatch<A: { type: $Subtype<string> }> = DispatchAPI<A>;
16
 
16
 
17
-  declare type MiddlewareAPI<S, A, D = Dispatch<A>> = {
17
+  declare export type MiddlewareAPI<S, A, D = Dispatch<A>> = {
18
     dispatch: D;
18
     dispatch: D;
19
     getState(): S;
19
     getState(): S;
20
   };
20
   };
21
 
21
 
22
-  declare type Store<S, A, D = Dispatch<A>> = {
22
+  declare export type Store<S, A, D = Dispatch<A>> = {
23
     // rewrite MiddlewareAPI members in order to get nicer error messages (intersections produce long messages)
23
     // rewrite MiddlewareAPI members in order to get nicer error messages (intersections produce long messages)
24
     dispatch: D;
24
     dispatch: D;
25
     getState(): S;
25
     getState(): S;
27
     replaceReducer(nextReducer: Reducer<S, A>): void
27
     replaceReducer(nextReducer: Reducer<S, A>): void
28
   };
28
   };
29
 
29
 
30
-  declare type Reducer<S, A> = (state: S, action: A) => S;
30
+  declare export type Reducer<S, A> = (state: S, action: A) => S;
31
 
31
 
32
-  declare type CombinedReducer<S, A> = (state: $Shape<S> & {} | void, action: A) => S;
32
+  declare export type CombinedReducer<S, A> = (state: $Shape<S> & {} | void, action: A) => S;
33
 
33
 
34
-  declare type Middleware<S, A, D = Dispatch<A>> =
34
+  declare export type Middleware<S, A, D = Dispatch<A>> =
35
     (api: MiddlewareAPI<S, A, D>) =>
35
     (api: MiddlewareAPI<S, A, D>) =>
36
       (next: D) => D;
36
       (next: D) => D;
37
 
37
 
38
-  declare type StoreCreator<S, A, D = Dispatch<A>> = {
38
+  declare export type StoreCreator<S, A, D = Dispatch<A>> = {
39
     (reducer: Reducer<S, A>, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>;
39
     (reducer: Reducer<S, A>, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>;
40
     (reducer: Reducer<S, A>, preloadedState: S, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>;
40
     (reducer: Reducer<S, A>, preloadedState: S, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>;
41
   };
41
   };
42
 
42
 
43
-  declare type StoreEnhancer<S, A, D = Dispatch<A>> = (next: StoreCreator<S, A, D>) => StoreCreator<S, A, D>;
43
+  declare export type StoreEnhancer<S, A, D = Dispatch<A>> = (next: StoreCreator<S, A, D>) => StoreCreator<S, A, D>;
44
 
44
 
45
-  declare function createStore<S, A, D>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>;
46
-  declare function createStore<S, A, D>(reducer: Reducer<S, A>, preloadedState: S, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>;
45
+  declare export function createStore<S, A, D>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>;
46
+  declare export function createStore<S, A, D>(reducer: Reducer<S, A>, preloadedState: S, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>;
47
 
47
 
48
-  declare function applyMiddleware<S, A, D>(...middlewares: Array<Middleware<S, A, D>>): StoreEnhancer<S, A, D>;
48
+  declare export function applyMiddleware<S, A, D>(...middlewares: Array<Middleware<S, A, D>>): StoreEnhancer<S, A, D>;
49
 
49
 
50
-  declare type ActionCreator<A, B> = (...args: Array<B>) => A;
51
-  declare type ActionCreators<K, A> = { [key: K]: ActionCreator<A, any> };
50
+  declare export type ActionCreator<A, B> = (...args: Array<B>) => A;
51
+  declare export type ActionCreators<K, A> = { [key: K]: ActionCreator<A, any> };
52
 
52
 
53
-  declare function bindActionCreators<A, C: ActionCreator<A, any>, D: DispatchAPI<A>>(actionCreator: C, dispatch: D): C;
54
-  declare function bindActionCreators<A, K, C: ActionCreators<K, A>, D: DispatchAPI<A>>(actionCreators: C, dispatch: D): C;
53
+  declare export function bindActionCreators<A, C: ActionCreator<A, any>, D: DispatchAPI<A>>(actionCreator: C, dispatch: D): C;
54
+  declare export function bindActionCreators<A, K, C: ActionCreators<K, A>, D: DispatchAPI<A>>(actionCreators: C, dispatch: D): C;
55
 
55
 
56
-  declare function combineReducers<O: Object, A>(reducers: O): CombinedReducer<$ObjMap<O, <S>(r: Reducer<S, any>) => S>, A>;
56
+  declare export function combineReducers<O: Object, A>(reducers: O): CombinedReducer<$ObjMap<O, <S>(r: Reducer<S, any>) => S>, A>;
57
 
57
 
58
-  declare function compose<A, B>(ab: (a: A) => B): (a: A) => B
59
-  declare function compose<A, B, C>(
58
+  declare export function compose<A, B>(ab: (a: A) => B): (a: A) => B
59
+  declare export function compose<A, B, C>(
60
     bc: (b: B) => C,
60
     bc: (b: B) => C,
61
     ab: (a: A) => B
61
     ab: (a: A) => B
62
   ): (a: A) => C
62
   ): (a: A) => C
63
-  declare function compose<A, B, C, D>(
63
+  declare export function compose<A, B, C, D>(
64
     cd: (c: C) => D,
64
     cd: (c: C) => D,
65
     bc: (b: B) => C,
65
     bc: (b: B) => C,
66
     ab: (a: A) => B
66
     ab: (a: A) => B
67
   ): (a: A) => D
67
   ): (a: A) => D
68
-  declare function compose<A, B, C, D, E>(
68
+  declare export function compose<A, B, C, D, E>(
69
     de: (d: D) => E,
69
     de: (d: D) => E,
70
     cd: (c: C) => D,
70
     cd: (c: C) => D,
71
     bc: (b: B) => C,
71
     bc: (b: B) => C,
72
     ab: (a: A) => B
72
     ab: (a: A) => B
73
   ): (a: A) => E
73
   ): (a: A) => E
74
-  declare function compose<A, B, C, D, E, F>(
74
+  declare export function compose<A, B, C, D, E, F>(
75
     ef: (e: E) => F,
75
     ef: (e: E) => F,
76
     de: (d: D) => E,
76
     de: (d: D) => E,
77
     cd: (c: C) => D,
77
     cd: (c: C) => D,
78
     bc: (b: B) => C,
78
     bc: (b: B) => C,
79
     ab: (a: A) => B
79
     ab: (a: A) => B
80
   ): (a: A) => F
80
   ): (a: A) => F
81
-  declare function compose<A, B, C, D, E, F, G>(
81
+  declare export function compose<A, B, C, D, E, F, G>(
82
     fg: (f: F) => G,
82
     fg: (f: F) => G,
83
     ef: (e: E) => F,
83
     ef: (e: E) => F,
84
     de: (d: D) => E,
84
     de: (d: D) => E,
86
     bc: (b: B) => C,
86
     bc: (b: B) => C,
87
     ab: (a: A) => B
87
     ab: (a: A) => B
88
   ): (a: A) => G
88
   ): (a: A) => G
89
-  declare function compose<A, B, C, D, E, F, G, H>(
89
+  declare export function compose<A, B, C, D, E, F, G, H>(
90
     gh: (g: G) => H,
90
     gh: (g: G) => H,
91
     fg: (f: F) => G,
91
     fg: (f: F) => G,
92
     ef: (e: E) => F,
92
     ef: (e: E) => F,
95
     bc: (b: B) => C,
95
     bc: (b: B) => C,
96
     ab: (a: A) => B
96
     ab: (a: A) => B
97
   ): (a: A) => H
97
   ): (a: A) => H
98
-  declare function compose<A, B, C, D, E, F, G, H, I>(
98
+  declare export function compose<A, B, C, D, E, F, G, H, I>(
99
     hi: (h: H) => I,
99
     hi: (h: H) => I,
100
     gh: (g: G) => H,
100
     gh: (g: G) => H,
101
     fg: (f: F) => G,
101
     fg: (f: F) => G,

+ 26
- 1
index.android.js Vedi File

1
-export * from './react/index.native';
1
+// The type field of react-native application loader's React Element is created
2
+// as number and not Symbol, because it's not been defined by the polyfill yet.
3
+// We import the application renderer, before Symbol is defined, in order to use
4
+// number types as well. Otherwise this will result in the invariant exception,
5
+// because fiber thingy will not recognise root react-native component as React
6
+// Element, but as an Object.
7
+//
8
+// See node_modules/react-native/Libraries/polyfills/babelHelpers.js
9
+// :babelHelpers.createRawReactElement - that's where first react-native element
10
+// is created (super early - it's the app loader).
11
+//
12
+// See node_modules/react-native/Libraries/Renderer/ReactNativeFiber-dev.js
13
+// and look for REACT_ELEMENT_TYPE definition - it's defined later when Symbol
14
+// has been defined and type will not match.
15
+//
16
+// As an alternative solution we could stop using/polyfilling Symbols and
17
+// replace with classpath string constants or some kind of a wrapper around
18
+// that.
19
+
20
+import 'react-native/Libraries/ReactNative/renderApplication';
21
+
22
+// Android doesn't provide Symbol
23
+import 'es6-symbol/implement';
24
+
25
+import './react/index.native';
26
+

+ 2
- 1
index.ios.js Vedi File

1
-export * from './react/index.native';
1
+import './react/index.native';
2
+

+ 3
- 1
ios/Podfile Vedi File

7
 
7
 
8
   pod 'React', :path => '../node_modules/react-native', :subspecs => [
8
   pod 'React', :path => '../node_modules/react-native', :subspecs => [
9
     'Core',
9
     'Core',
10
+    'BatchedBridge',
11
+    'DevSupport',
10
     'RCTActionSheet',
12
     'RCTActionSheet',
11
     'RCTAnimation',
13
     'RCTAnimation',
12
     'RCTImage',
14
     'RCTImage',
15
     'RCTText',
17
     'RCTText',
16
     'RCTWebSocket',
18
     'RCTWebSocket',
17
   ]
19
   ]
18
-  pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
20
+  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
19
 
21
 
20
   pod 'react-native-background-timer',
22
   pod 'react-native-background-timer',
21
     :path => '../node_modules/react-native-background-timer'
23
     :path => '../node_modules/react-native-background-timer'

+ 1
- 1
ios/scripts/run-packager.sh Vedi File

11
       exit 2
11
       exit 2
12
     fi
12
     fi
13
   else
13
   else
14
-    open -g "$SRCROOT/../../node_modules/react-native/packager/launchPackager.command" || echo "Can't start packager automatically"
14
+    open -g "$SRCROOT/../../node_modules/react-native/scripts/launchPackager.command" || echo "Can't start packager automatically"
15
   fi
15
   fi
16
 fi
16
 fi

+ 1
- 1
ios/sdk/sdk.xcodeproj/project.pbxproj Vedi File

232
 			);
232
 			);
233
 			runOnlyForDeploymentPostprocessing = 0;
233
 			runOnlyForDeploymentPostprocessing = 0;
234
 			shellPath = /bin/sh;
234
 			shellPath = /bin/sh;
235
-			shellScript = "export NODE_BINARY=node\n../../node_modules/react-native/packager/react-native-xcode.sh";
235
+			shellScript = "export NODE_BINARY=node\n../../node_modules/react-native/scripts/react-native-xcode.sh";
236
 		};
236
 		};
237
 		26796D8589142D80C8AFDA51 /* [CP] Check Pods Manifest.lock */ = {
237
 		26796D8589142D80C8AFDA51 /* [CP] Check Pods Manifest.lock */ = {
238
 			isa = PBXShellScriptBuildPhase;
238
 			isa = PBXShellScriptBuildPhase;

+ 4
- 4
package.json Vedi File

53
     "nuclear-js": "1.4.0",
53
     "nuclear-js": "1.4.0",
54
     "postis": "2.2.0",
54
     "postis": "2.2.0",
55
     "prop-types": "15.6.0",
55
     "prop-types": "15.6.0",
56
-    "react": "15.6.1",
57
-    "react-dom": "15.6.1",
56
+    "react": "16.0.0",
57
+    "react-dom": "16.0.0",
58
     "react-i18next": "4.8.0",
58
     "react-i18next": "4.8.0",
59
-    "react-native": "0.42.3",
59
+    "react-native": "0.49.5",
60
     "react-native-background-timer": "1.3.0",
60
     "react-native-background-timer": "1.3.0",
61
     "react-native-callstats": "3.24.6",
61
     "react-native-callstats": "3.24.6",
62
     "react-native-fetch-blob": "0.10.8",
62
     "react-native-fetch-blob": "0.10.8",
94
     "eslint-plugin-react-native": "3.1.0",
94
     "eslint-plugin-react-native": "3.1.0",
95
     "expose-loader": "0.7.3",
95
     "expose-loader": "0.7.3",
96
     "file-loader": "1.1.4",
96
     "file-loader": "1.1.4",
97
-    "flow-bin": "0.38.0",
97
+    "flow-bin": "0.53.0",
98
     "imports-loader": "0.7.1",
98
     "imports-loader": "0.7.1",
99
     "node-sass": "3.13.1",
99
     "node-sass": "3.13.1",
100
     "precommit-hook": "3.0.0",
100
     "precommit-hook": "3.0.0",

+ 1
- 1
react/features/always-on-top/AlwaysOnTop.js Vedi File

59
  * @class AlwaysOnTop
59
  * @class AlwaysOnTop
60
  * @extends Component
60
  * @extends Component
61
  */
61
  */
62
-export default class AlwaysOnTop extends Component {
62
+export default class AlwaysOnTop extends Component<*> {
63
     /**
63
     /**
64
      * Initializes new AlwaysOnTop instance.
64
      * Initializes new AlwaysOnTop instance.
65
      *
65
      *

+ 3
- 2
react/features/app/functions.web.js Vedi File

39
      * @returns {UnsupportedMobileBrowser|void} If the rule is satisfied then
39
      * @returns {UnsupportedMobileBrowser|void} If the rule is satisfied then
40
      * we should intercept existing component by UnsupportedMobileBrowser.
40
      * we should intercept existing component by UnsupportedMobileBrowser.
41
      */
41
      */
42
-    () => {
42
+    // eslint-disable-next-line no-unused-vars
43
+    state => {
43
         const OS = Platform.OS;
44
         const OS = Platform.OS;
44
 
45
 
45
         if (OS === 'android' || OS === 'ios') {
46
         if (OS === 'android' || OS === 'ios') {
103
  */
104
  */
104
 function _interceptComponent(
105
 function _interceptComponent(
105
         stateOrGetState: Object | Function,
106
         stateOrGetState: Object | Function,
106
-        component: ReactElement<*>) {
107
+        component: React$Element<*>) {
107
     let result;
108
     let result;
108
     const state = toState(stateOrGetState);
109
     const state = toState(stateOrGetState);
109
 
110
 

+ 1
- 1
react/features/authentication/components/WaitForOwnerDialog.native.js Vedi File

17
  *
17
  *
18
  * See {@link LoginDialog} description for more details.
18
  * See {@link LoginDialog} description for more details.
19
  */
19
  */
20
-class WaitForOwnerDialog extends Component {
20
+class WaitForOwnerDialog extends Component<*> {
21
     /**
21
     /**
22
      * WaitForOwnerDialog component's property types.
22
      * WaitForOwnerDialog component's property types.
23
      *
23
      *

+ 1
- 1
react/features/base/dialog/components/AbstractDialog.js Vedi File

9
 /**
9
 /**
10
  * An abstract implementation of a dialog on Web/React and mobile/react-native.
10
  * An abstract implementation of a dialog on Web/React and mobile/react-native.
11
  */
11
  */
12
-export default class AbstractDialog extends Component {
12
+export default class AbstractDialog extends Component<*, *> {
13
     /**
13
     /**
14
      * {@code AbstractDialog} React {@code Component}'s prop types.
14
      * {@code AbstractDialog} React {@code Component}'s prop types.
15
      *
15
      *

+ 1
- 1
react/features/base/jwt/components/CallOverlay.js Vedi File

21
  *
21
  *
22
  * @extends Component
22
  * @extends Component
23
  */
23
  */
24
-class CallOverlay extends Component {
24
+class CallOverlay extends Component<*, *> {
25
     /**
25
     /**
26
      * The (reference to the) {@link Audio} which plays/renders the audio
26
      * The (reference to the) {@link Audio} which plays/renders the audio
27
      * depicting the ringing phase of the call establishment represented by this
27
      * depicting the ringing phase of the call establishment represented by this

+ 1
- 1
react/features/base/media/components/native/Video.js Vedi File

11
  * {@code HTMLVideoElement} and wraps around react-native-webrtc's
11
  * {@code HTMLVideoElement} and wraps around react-native-webrtc's
12
  * {@link RTCView}.
12
  * {@link RTCView}.
13
  */
13
  */
14
-export default class Video extends Component {
14
+export default class Video extends Component<*> {
15
     /**
15
     /**
16
      * {@code Video} component's property types.
16
      * {@code Video} component's property types.
17
      *
17
      *

+ 1
- 1
react/features/base/react/components/AbstractContainer.js Vedi File

9
  *
9
  *
10
  * @extends Component
10
  * @extends Component
11
  */
11
  */
12
-export default class AbstractContainer extends Component {
12
+export default class AbstractContainer extends Component<*> {
13
     /**
13
     /**
14
      * {@code AbstractContainer} component's property types.
14
      * {@code AbstractContainer} component's property types.
15
      *
15
      *

+ 1
- 1
react/features/base/react/components/native/LoadingIndicator.js Vedi File

10
  * a suitable visualization of long-running processes with indeterminate amounts
10
  * a suitable visualization of long-running processes with indeterminate amounts
11
  * of work to be done.
11
  * of work to be done.
12
  */
12
  */
13
-export default class LoadingIndicator extends Component {
13
+export default class LoadingIndicator extends Component<*> {
14
     /**
14
     /**
15
      * Implements React's {@link Component#render()}.
15
      * Implements React's {@link Component#render()}.
16
      *
16
      *

+ 1
- 1
react/features/base/react/components/web/InlineDialogFailure.js Vedi File

11
 /**
11
 /**
12
  * Inline dialog that represents a failure and allows a retry.
12
  * Inline dialog that represents a failure and allows a retry.
13
  */
13
  */
14
-class InlineDialogFailure extends Component {
14
+class InlineDialogFailure extends Component<*> {
15
     /**
15
     /**
16
      * {@code InlineDialogFailure}'s property types.
16
      * {@code InlineDialogFailure}'s property types.
17
      *
17
      *

+ 1
- 1
react/features/base/react/components/web/Watermarks.js Vedi File

21
  * A Web Component which renders watermarks such as Jits, brand, powered by,
21
  * A Web Component which renders watermarks such as Jits, brand, powered by,
22
  * etc.
22
  * etc.
23
  */
23
  */
24
-class Watermarks extends Component {
24
+class Watermarks extends Component<*, *> {
25
     static propTypes = {
25
     static propTypes = {
26
         _isGuest: PropTypes.bool,
26
         _isGuest: PropTypes.bool,
27
         t: PropTypes.func
27
         t: PropTypes.func

+ 8
- 0
react/features/base/react/prop-types-polyfill.js Vedi File

1
+import React from 'react';
2
+import PropTypes from 'prop-types';
3
+
4
+/* eslint-disable react/no-deprecated */
5
+if (typeof React.PropTypes === 'undefined') {
6
+    React.PropTypes = PropTypes;
7
+}
8
+/* eslint-enable react/no-deprecated */

+ 1
- 1
react/features/conference/components/Conference.web.js Vedi File

21
 /**
21
 /**
22
  * The conference page of the Web application.
22
  * The conference page of the Web application.
23
  */
23
  */
24
-class Conference extends Component {
24
+class Conference extends Component<*> {
25
     _onShowToolbar: Function;
25
     _onShowToolbar: Function;
26
     _originalOnShowToolbar: Function;
26
     _originalOnShowToolbar: Function;
27
 
27
 

+ 1
- 1
react/features/contact-list/components/ContactListPanel.web.js Vedi File

16
  *
16
  *
17
  * @extends Component
17
  * @extends Component
18
  */
18
  */
19
-class ContactListPanel extends Component {
19
+class ContactListPanel extends Component<*> {
20
     /**
20
     /**
21
      * Default values for {@code ContactListPanel} component's properties.
21
      * Default values for {@code ContactListPanel} component's properties.
22
      *
22
      *

+ 1
- 1
react/features/desktop-picker/components/DesktopPicker.js Vedi File

47
  *
47
  *
48
  * @extends Component
48
  * @extends Component
49
  */
49
  */
50
-class DesktopPicker extends Component {
50
+class DesktopPicker extends Component<*, *> {
51
     /**
51
     /**
52
      * DesktopPicker component's property types.
52
      * DesktopPicker component's property types.
53
      *
53
      *

+ 1
- 1
react/features/feedback/components/FeedbackButton.web.js Vedi File

12
 /**
12
 /**
13
  * Implements a Web/React Component which renders a feedback button.
13
  * Implements a Web/React Component which renders a feedback button.
14
  */
14
  */
15
-class FeedbackButton extends Component {
15
+class FeedbackButton extends Component<*> {
16
     _onClick: Function;
16
     _onClick: Function;
17
 
17
 
18
     static propTypes = {
18
     static propTypes = {

+ 1
- 1
react/features/filmstrip/components/Filmstrip.native.js Vedi File

16
  *
16
  *
17
  * @extends Component
17
  * @extends Component
18
  */
18
  */
19
-class Filmstrip extends Component {
19
+class Filmstrip extends Component<*> {
20
     /**
20
     /**
21
      * Filmstrip component's property types.
21
      * Filmstrip component's property types.
22
      *
22
      *

+ 1
- 1
react/features/filmstrip/components/Filmstrip.web.js Vedi File

17
  *
17
  *
18
  * @extends Component
18
  * @extends Component
19
  */
19
  */
20
-class Filmstrip extends Component {
20
+class Filmstrip extends Component<*> {
21
     _isHovered: boolean;
21
     _isHovered: boolean;
22
 
22
 
23
     _notifyOfHoveredStateUpdate: Function;
23
     _notifyOfHoveredStateUpdate: Function;

+ 2
- 2
react/features/invite/components/AddPeopleDialog.web.js Vedi File

19
 /**
19
 /**
20
  * The dialog that allows to invite people to the call.
20
  * The dialog that allows to invite people to the call.
21
  */
21
  */
22
-class AddPeopleDialog extends Component {
22
+class AddPeopleDialog extends Component<*, *> {
23
     /**
23
     /**
24
      * {@code AddPeopleDialog}'s property types.
24
      * {@code AddPeopleDialog}'s property types.
25
      *
25
      *
311
         );
311
         );
312
     }
312
     }
313
 
313
 
314
-    _setMultiSelectElement: (Object) => void;
314
+    _setMultiSelectElement: (React$ElementRef<*> | null) => mixed;
315
 
315
 
316
     /**
316
     /**
317
      * Sets the instance variable for the multi select component
317
      * Sets the instance variable for the multi select component

+ 1
- 1
react/features/large-video/components/LargeVideo.native.js Vedi File

14
  *
14
  *
15
  * @extends Component
15
  * @extends Component
16
  */
16
  */
17
-class LargeVideo extends Component {
17
+class LargeVideo extends Component<*> {
18
     /**
18
     /**
19
      * LargeVideo component's property types.
19
      * LargeVideo component's property types.
20
      *
20
      *

+ 1
- 1
react/features/large-video/components/LargeVideo.web.js Vedi File

14
  *
14
  *
15
  * @extends Component
15
  * @extends Component
16
  */
16
  */
17
-export default class LargeVideo extends Component {
17
+export default class LargeVideo extends Component<*> {
18
     /**
18
     /**
19
      * Implements React's {@link Component#render()}.
19
      * Implements React's {@link Component#render()}.
20
      *
20
      *

+ 1
- 1
react/features/mobile/network-activity/components/NetworkActivityIndicator.js Vedi File

10
  * The React {@code Component} which renders a progress indicator when there
10
  * The React {@code Component} which renders a progress indicator when there
11
  * are ongoing network requests.
11
  * are ongoing network requests.
12
  */
12
  */
13
-class NetworkActivityIndicator extends Component {
13
+class NetworkActivityIndicator extends Component<*> {
14
     /**
14
     /**
15
      * {@code NetworkActivityIndicator} React {@code Component}'s prop types.
15
      * {@code NetworkActivityIndicator} React {@code Component}'s prop types.
16
      *
16
      *

+ 1
- 1
react/features/overlay/components/AbstractPageReloadOverlay.js Vedi File

16
 /**
16
 /**
17
  * Implements abstract React Component for the page reload overlays.
17
  * Implements abstract React Component for the page reload overlays.
18
  */
18
  */
19
-export default class AbstractPageReloadOverlay extends Component {
19
+export default class AbstractPageReloadOverlay extends Component<*, *> {
20
     /**
20
     /**
21
      * AbstractPageReloadOverlay component's property types.
21
      * AbstractPageReloadOverlay component's property types.
22
      *
22
      *

+ 1
- 1
react/features/overlay/components/ReloadButton.js Vedi File

12
  * Implements a React Component for button for the overlays that will reload
12
  * Implements a React Component for button for the overlays that will reload
13
  * the page.
13
  * the page.
14
  */
14
  */
15
-class ReloadButton extends Component {
15
+class ReloadButton extends Component<*> {
16
     /**
16
     /**
17
      * PageReloadOverlay component's property types.
17
      * PageReloadOverlay component's property types.
18
      *
18
      *

+ 2
- 2
react/features/overlay/reducer.js Vedi File

29
         return _conferenceFailed(state, action);
29
         return _conferenceFailed(state, action);
30
 
30
 
31
     case CONNECTION_ESTABLISHED:
31
     case CONNECTION_ESTABLISHED:
32
-        return _connectionEstablished(state, action);
32
+        return _connectionEstablished(state);
33
 
33
 
34
     case CONNECTION_FAILED:
34
     case CONNECTION_FAILED:
35
         return _connectionFailed(state, action);
35
         return _connectionFailed(state, action);
41
         return _mediaPermissionPromptVisibilityChanged(state, action);
41
         return _mediaPermissionPromptVisibilityChanged(state, action);
42
 
42
 
43
     case SUSPEND_DETECTED:
43
     case SUSPEND_DETECTED:
44
-        return _suspendDetected(state, action);
44
+        return _suspendDetected(state);
45
     }
45
     }
46
 
46
 
47
     return state;
47
     return state;

+ 1
- 1
react/features/room-lock/components/PasswordRequiredPrompt.native.js Vedi File

36
  * Implements a React {@code Component} which prompts the user when a password
36
  * Implements a React {@code Component} which prompts the user when a password
37
  * is required to join a conference.
37
  * is required to join a conference.
38
  */
38
  */
39
-class PasswordRequiredPrompt extends Component {
39
+class PasswordRequiredPrompt extends Component<Props> {
40
     /**
40
     /**
41
      * {@code PasswordRequiredPrompt}'s React {@code Component} prop types.
41
      * {@code PasswordRequiredPrompt}'s React {@code Component} prop types.
42
      *
42
      *

+ 1
- 1
react/features/room-lock/components/PasswordRequiredPrompt.web.js Vedi File

12
  * Implements a React Component which prompts the user when a password is
12
  * Implements a React Component which prompts the user when a password is
13
  * required to join a conference.
13
  * required to join a conference.
14
  */
14
  */
15
-class PasswordRequiredPrompt extends Component {
15
+class PasswordRequiredPrompt extends Component<*, *> {
16
     /**
16
     /**
17
      * PasswordRequiredPrompt component's property types.
17
      * PasswordRequiredPrompt component's property types.
18
      *
18
      *

+ 1
- 1
react/features/room-lock/components/RoomLockPrompt.native.js Vedi File

22
  * Implements a React Component which prompts the user for a password to lock  a
22
  * Implements a React Component which prompts the user for a password to lock  a
23
  * conference/room.
23
  * conference/room.
24
  */
24
  */
25
-class RoomLockPrompt extends Component {
25
+class RoomLockPrompt extends Component<*> {
26
     /**
26
     /**
27
      * RoomLockPrompt component's property types.
27
      * RoomLockPrompt component's property types.
28
      *
28
      *

+ 1
- 1
react/features/speaker-stats/components/SpeakerStats.js Vedi File

17
  *
17
  *
18
  * @extends Component
18
  * @extends Component
19
  */
19
  */
20
-class SpeakerStats extends Component {
20
+class SpeakerStats extends Component<*, *> {
21
     /**
21
     /**
22
      * SpeakerStats component's property types.
22
      * SpeakerStats component's property types.
23
      *
23
      *

+ 1
- 1
react/features/toolbox/components/Notice.js Vedi File

9
  *
9
  *
10
  * @class Notice
10
  * @class Notice
11
  */
11
  */
12
-export default class Notice extends Component {
12
+export default class Notice extends Component<*, *> {
13
     state: Object;
13
     state: Object;
14
 
14
 
15
     /**
15
     /**

+ 2
- 2
react/features/toolbox/components/PrimaryToolbar.web.js Vedi File

15
  * @class PrimaryToolbar
15
  * @class PrimaryToolbar
16
  * @extends Component
16
  * @extends Component
17
  */
17
  */
18
-class PrimaryToolbar extends Component {
18
+class PrimaryToolbar extends Component<*, *> {
19
     static propTypes = {
19
     static propTypes = {
20
 
20
 
21
         /**
21
         /**
36
      *
36
      *
37
      * @returns {ReactElement}
37
      * @returns {ReactElement}
38
      */
38
      */
39
-    render(): ReactElement<*> | null {
39
+    render(): React$Element<*> | null {
40
         const { _primaryToolbarButtons } = this.props;
40
         const { _primaryToolbarButtons } = this.props;
41
 
41
 
42
         // The number of buttons to show in the toolbar isn't fixed, it depends
42
         // The number of buttons to show in the toolbar isn't fixed, it depends

+ 1
- 1
react/features/toolbox/components/ProfileButton.web.js Vedi File

30
  *
30
  *
31
  * @extends Component
31
  * @extends Component
32
  */
32
  */
33
-class ProfileButton extends Component {
33
+class ProfileButton extends Component<*> {
34
     _onClick: Function;
34
     _onClick: Function;
35
 
35
 
36
     /**
36
     /**

+ 2
- 2
react/features/toolbox/components/SecondaryToolbar.web.js Vedi File

22
  * @class SecondaryToolbar
22
  * @class SecondaryToolbar
23
  * @extends Component
23
  * @extends Component
24
  */
24
  */
25
-class SecondaryToolbar extends Component {
25
+class SecondaryToolbar extends Component<*, *> {
26
     state: Object;
26
     state: Object;
27
 
27
 
28
     /**
28
     /**
86
      *
86
      *
87
      * @returns {ReactElement}
87
      * @returns {ReactElement}
88
      */
88
      */
89
-    render(): ReactElement<*> | null {
89
+    render(): React$Element<*> | null {
90
         const { _callStatsID, _secondaryToolbarButtons } = this.props;
90
         const { _callStatsID, _secondaryToolbarButtons } = this.props;
91
 
91
 
92
         // The number of buttons to show in the toolbar isn't fixed, it depends
92
         // The number of buttons to show in the toolbar isn't fixed, it depends

+ 2
- 2
react/features/toolbox/components/StatelessToolbar.web.js Vedi File

10
  * @class StatelessToolbar
10
  * @class StatelessToolbar
11
  * @extends Component
11
  * @extends Component
12
  */
12
  */
13
-export default class StatelessToolbar extends Component {
13
+export default class StatelessToolbar extends Component<*> {
14
     /**
14
     /**
15
      * Base toolbar component's property types.
15
      * Base toolbar component's property types.
16
      *
16
      *
44
      * @inheritdoc
44
      * @inheritdoc
45
      * @returns {ReactElement}
45
      * @returns {ReactElement}
46
      */
46
      */
47
-    render(): ReactElement<*> {
47
+    render(): React$Element<*> {
48
         const {
48
         const {
49
             className,
49
             className,
50
             onMouseOut,
50
             onMouseOut,

+ 1
- 1
react/features/toolbox/components/StatelessToolbarButton.js Vedi File

91
      * @inheritdoc
91
      * @inheritdoc
92
      * @returns {ReactElement}
92
      * @returns {ReactElement}
93
      */
93
      */
94
-    render(): ReactElement<*> {
94
+    render(): React$Element<*> {
95
         const { button } = this.props;
95
         const { button } = this.props;
96
         const attributes = getButtonAttributesByProps(button);
96
         const attributes = getButtonAttributesByProps(button);
97
 
97
 

+ 3
- 3
react/features/toolbox/components/Toolbar.web.js Vedi File

17
  * @class Toolbar
17
  * @class Toolbar
18
  * @extends Component
18
  * @extends Component
19
  */
19
  */
20
-class Toolbar extends Component {
20
+class Toolbar extends Component<*> {
21
     _onMouseOut: Function;
21
     _onMouseOut: Function;
22
     _onMouseOver: Function;
22
     _onMouseOver: Function;
23
     _renderToolbarButton: Function;
23
     _renderToolbarButton: Function;
75
      * @inheritdoc
75
      * @inheritdoc
76
      * @returns {ReactElement}
76
      * @returns {ReactElement}
77
      */
77
      */
78
-    render(): ReactElement<*> {
78
+    render(): React$Element<*> {
79
         const props = {
79
         const props = {
80
             className: this.props.className,
80
             className: this.props.className,
81
             onMouseOut: this._onMouseOut,
81
             onMouseOut: this._onMouseOut,
123
      * @private
123
      * @private
124
      * @returns {ReactElement} A toolbar button.
124
      * @returns {ReactElement} A toolbar button.
125
      */
125
      */
126
-    _renderToolbarButton(keyValuePair: Array<*>): ReactElement<*> {
126
+    _renderToolbarButton(keyValuePair: Array<*>): React$Element<*> {
127
         const [ key, button ] = keyValuePair;
127
         const [ key, button ] = keyValuePair;
128
 
128
 
129
         if (button.component) {
129
         if (button.component) {

+ 2
- 2
react/features/toolbox/components/ToolbarButton.web.js Vedi File

18
  * @class ToolbarButton
18
  * @class ToolbarButton
19
  * @extends AbstractToolbarButton
19
  * @extends AbstractToolbarButton
20
  */
20
  */
21
-class ToolbarButton extends Component {
21
+class ToolbarButton extends Component<*> {
22
     button: Object;
22
     button: Object;
23
 
23
 
24
     _onClick: Function;
24
     _onClick: Function;
103
      * @inheritdoc
103
      * @inheritdoc
104
      * @returns {ReactElement}
104
      * @returns {ReactElement}
105
      */
105
      */
106
-    render(): ReactElement<*> {
106
+    render(): React$Element<*> {
107
         const { button, t, tooltipPosition } = this.props;
107
         const { button, t, tooltipPosition } = this.props;
108
         const props = {
108
         const props = {
109
             ...this.props,
109
             ...this.props,

+ 4
- 4
react/features/toolbox/components/Toolbox.web.js Vedi File

22
 /**
22
 /**
23
  * Implements the conference toolbox on React/Web.
23
  * Implements the conference toolbox on React/Web.
24
  */
24
  */
25
-class Toolbox extends Component {
25
+class Toolbox extends Component<*> {
26
     /**
26
     /**
27
      * App component's property types.
27
      * App component's property types.
28
      *
28
      *
89
      * @inheritdoc
89
      * @inheritdoc
90
      * @returns {ReactElement}
90
      * @returns {ReactElement}
91
      */
91
      */
92
-    render(): ReactElement<*> {
92
+    render(): React$Element<*> {
93
         return (
93
         return (
94
             <div className = 'toolbox'>
94
             <div className = 'toolbox'>
95
                 {
95
                 {
109
      * @returns {ReactElement}
109
      * @returns {ReactElement}
110
      * @private
110
      * @private
111
      */
111
      */
112
-    _renderSubject(): ReactElement<*> | null {
112
+    _renderSubject(): React$Element<*> | null {
113
         const { _subjectSlideIn, _subject } = this.props;
113
         const { _subjectSlideIn, _subject } = this.props;
114
         const classNames = [ 'subject' ];
114
         const classNames = [ 'subject' ];
115
 
115
 
146
      * @returns {ReactElement}
146
      * @returns {ReactElement}
147
      * @private
147
      * @private
148
      */
148
      */
149
-    _renderToolbars(): ReactElement<*> | null {
149
+    _renderToolbars(): React$Element<*> | null {
150
         // In case we're not in alwaysVisible mode the toolbox should not be
150
         // In case we're not in alwaysVisible mode the toolbox should not be
151
         // shown until timeoutID is initialized.
151
         // shown until timeoutID is initialized.
152
         if (!this.props._alwaysVisible && this.props._timeoutID === null) {
152
         if (!this.props._alwaysVisible && this.props._timeoutID === null) {

+ 1
- 1
react/features/unsupported-browser/components/HideNotificationBarStyle.js Vedi File

9
  * @private
9
  * @private
10
  * @returns {ReactElement}
10
  * @returns {ReactElement}
11
  */
11
  */
12
-export default class HideNotificationBarStyles extends Component {
12
+export default class HideNotificationBarStyles extends Component<*> {
13
 
13
 
14
     /**
14
     /**
15
      * Implements React's {@link Component#render()}.
15
      * Implements React's {@link Component#render()}.

+ 1
- 1
react/features/unsupported-browser/components/NoMobileApp.js Vedi File

11
  *
11
  *
12
  * @class NoMobileApp
12
  * @class NoMobileApp
13
  */
13
  */
14
-export default class NoMobileApp extends Component {
14
+export default class NoMobileApp extends Component<*> {
15
     /**
15
     /**
16
      * Renders the component.
16
      * Renders the component.
17
      *
17
      *

+ 1
- 1
react/features/unsupported-browser/components/PluginRequiredBrowser.js Vedi File

9
  *
9
  *
10
  * @class PluginRequiredBrowser
10
  * @class PluginRequiredBrowser
11
  */
11
  */
12
-export default class PluginRequiredBrowser extends Component {
12
+export default class PluginRequiredBrowser extends Component<*> {
13
 
13
 
14
     /**
14
     /**
15
      * Renders the component.
15
      * Renders the component.

+ 1
- 1
react/features/unsupported-browser/components/UnsupportedDesktopBrowser.js Vedi File

22
  *
22
  *
23
  * @class UnsupportedDesktopBrowser
23
  * @class UnsupportedDesktopBrowser
24
  */
24
  */
25
-class UnsupportedDesktopBrowser extends Component {
25
+class UnsupportedDesktopBrowser extends Component<*> {
26
     /**
26
     /**
27
      * UnsupportedDesktopBrowser component's property types.
27
      * UnsupportedDesktopBrowser component's property types.
28
      *
28
      *

+ 1
- 1
react/features/unsupported-browser/components/UnsupportedMobileBrowser.js Vedi File

42
  *
42
  *
43
  * @class UnsupportedMobileBrowser
43
  * @class UnsupportedMobileBrowser
44
  */
44
  */
45
-class UnsupportedMobileBrowser extends Component {
45
+class UnsupportedMobileBrowser extends Component<*, *> {
46
     state: Object;
46
     state: Object;
47
 
47
 
48
     /**
48
     /**

+ 1
- 1
react/features/welcome/components/AbstractWelcomePage.js Vedi File

21
  *
21
  *
22
  * @abstract
22
  * @abstract
23
  */
23
  */
24
-export class AbstractWelcomePage extends Component {
24
+export class AbstractWelcomePage extends Component<*, *> {
25
     /**
25
     /**
26
      * {@code AbstractWelcomePage}'s React {@code Component} prop types.
26
      * {@code AbstractWelcomePage}'s React {@code Component} prop types.
27
      *
27
      *

+ 1
- 1
react/features/welcome/components/BlankPage.native.js Vedi File

16
  * {@code Route} to render. Renders a progress indicator when there are ongoing
16
  * {@code Route} to render. Renders a progress indicator when there are ongoing
17
  * network requests.
17
  * network requests.
18
  */
18
  */
19
-class BlankPage extends Component {
19
+class BlankPage extends Component<*> {
20
     /**
20
     /**
21
      * {@code BlankPage} React {@code Component}'s prop types.
21
      * {@code BlankPage} React {@code Component}'s prop types.
22
      *
22
      *

+ 1
- 1
react/features/welcome/components/LocalVideoTrackUnderlay.native.js Vedi File

14
  * Implements a React {@code Component} which underlays the local video track,
14
  * Implements a React {@code Component} which underlays the local video track,
15
  * if any, underneath its children.
15
  * if any, underneath its children.
16
  */
16
  */
17
-class LocalVideoTrackUnderlay extends Component {
17
+class LocalVideoTrackUnderlay extends Component<*, *> {
18
     state: {
18
     state: {
19
 
19
 
20
         /**
20
         /**

+ 4
- 1
react/index.native.js Vedi File

1
-import 'es6-symbol/implement';
1
+// FIXME: remove once react-native-webrtc and react-native-prompt imports
2
+// PropTypes from the 'prop-types' lib instead of 'react'.
3
+import './features/base/react/prop-types-polyfill.js';
4
+
2
 import PropTypes from 'prop-types';
5
 import PropTypes from 'prop-types';
3
 import React, { Component } from 'react';
6
 import React, { Component } from 'react';
4
 import { AppRegistry, Linking } from 'react-native';
7
 import { AppRegistry, Linking } from 'react-native';

Loading…
Annulla
Salva