From f787e6847aeb8a19e1df7c2b0cd66ad52847adae Mon Sep 17 00:00:00 2001 From: Thomas BARRAS Date: Fri, 2 Nov 2018 12:10:49 -0700 Subject: [PATCH] Remove createReactClass from ProgressBarAndroidExample (#21874) Summary: Related to #21581 This PR was already opened here https://github.com/facebook/react-native/pull/21600 but seems to be inactive. Remove createReactClass from ProgressBarAndroidExample. - `yarn run flow` && `yarn run flow-check-android` succeed. - RNTester app ProgressBarAndroidExample on Android. [GENERAL] [ENHANCEMENT] [ProgressBarAndroidExample.android.js] - rm createReactClass Pull Request resolved: https://github.com/facebook/react-native/pull/21874 Reviewed By: TheSavior Differential Revision: D12827689 Pulled By: RSNara fbshipit-source-id: 46c70ea67dddf5d928fe936a28ef4a0a929d127f --- .../ProgressBarAndroid.android.js | 8 ++-- .../js/ProgressBarAndroidExample.android.js | 46 ++++++++++++------- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js b/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js index a6f64f011ef074..9512fd1dfabec2 100644 --- a/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +++ b/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js @@ -19,7 +19,7 @@ import type {ViewProps} from 'ViewPropTypes'; const AndroidProgressBar = requireNativeComponent('AndroidProgressBar'); -type Props = $ReadOnly<{| +export type ProgressBarAndroidProps = $ReadOnly<{| ...ViewProps, /** @@ -83,7 +83,7 @@ type Props = $ReadOnly<{| * ``` */ const ProgressBarAndroid = ( - props: Props, + props: ProgressBarAndroidProps, forwardedRef: ?React.Ref<'AndroidProgressBar'>, ) => { return ; @@ -98,4 +98,6 @@ ProgressBarAndroidToExport.defaultProps = { animating: true, }; -module.exports = (ProgressBarAndroidToExport: Class>); +module.exports = (ProgressBarAndroidToExport: Class< + NativeComponent, +>); diff --git a/RNTester/js/ProgressBarAndroidExample.android.js b/RNTester/js/ProgressBarAndroidExample.android.js index c806a4c6c331cb..9c45fc54c40127 100644 --- a/RNTester/js/ProgressBarAndroidExample.android.js +++ b/RNTester/js/ProgressBarAndroidExample.android.js @@ -12,37 +12,49 @@ const ProgressBar = require('ProgressBarAndroid'); const React = require('React'); -const createReactClass = require('create-react-class'); const RNTesterBlock = require('RNTesterBlock'); const RNTesterPage = require('RNTesterPage'); -const MovingBar = createReactClass({ - displayName: 'MovingBar', - _intervalID: (null: ?IntervalID), +import type {ProgressBarAndroidProps} from 'ProgressBarAndroid'; - getInitialState: function() { - return { - progress: 0, - }; - }, +type MovingBarProps = $ReadOnly<{| + ...$Diff< + ProgressBarAndroidProps, + { + progress: ?number, + }, + >, + indeterminate: false, +|}>; - componentDidMount: function() { +type MovingBarState = { + progress: number, +}; + +class MovingBar extends React.Component { + _intervalID: ?IntervalID = null; + + state = { + progress: 0, + }; + + componentDidMount() { this._intervalID = setInterval(() => { const progress = (this.state.progress + 0.02) % 1; - this.setState({progress: progress}); + this.setState({progress}); }, 50); - }, + } - componentWillUnmount: function() { + componentWillUnmount() { if (this._intervalID != null) { clearInterval(this._intervalID); } - }, + } - render: function() { + render() { return ; - }, -}); + } +} class ProgressBarAndroidExample extends React.Component<{}> { static title = '';