/** * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @flow * @providesModule ProgressViewIOSExample */ 'use strict'; var React = require('react'); var createReactClass = require('create-react-class'); var ReactNative = require('react-native'); var { ProgressViewIOS, StyleSheet, View, } = ReactNative; /* $FlowFixMe(>=0.54.0 site=react_native_oss) This comment suppresses an error * found when Flow v0.54 was deployed. To see the error delete this comment and * run Flow. */ var TimerMixin = require('react-timer-mixin'); var ProgressViewExample = createReactClass({ displayName: 'ProgressViewExample', mixins: [TimerMixin], getInitialState() { return { progress: 0, }; }, componentDidMount() { this.updateProgress(); }, updateProgress() { var progress = this.state.progress + 0.01; this.setState({ progress }); this.requestAnimationFrame(() => this.updateProgress()); }, getProgress(offset) { var progress = this.state.progress + offset; return Math.sin(progress % Math.PI) % 1; }, render() { return ( ); }, }); exports.displayName = (undefined: ?string); exports.framework = 'React'; exports.title = 'ProgressViewIOS'; exports.description = 'ProgressViewIOS'; exports.examples = [{ title: 'ProgressViewIOS', render() { return ( ); } }]; var styles = StyleSheet.create({ container: { marginTop: -20, backgroundColor: 'transparent', }, progressView: { marginTop: 20, } });