/** * The examples provided by Facebook are for non-commercial testing and * evaluation purposes only. * * Facebook reserves all rights not expressly granted. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL * FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * @flow */ 'use strict'; var React = require('react'); var ReactNative = require('react-native'); var { ProgressViewIOS, StyleSheet, View, } = ReactNative; var TimerMixin = require('react-timer-mixin'); var ProgressViewExample = React.createClass({ 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, } });