UNPKG

react-native

Version:

A framework for building native apps using React

95 lines (83 loc) 2.13 kB
/** * Copyright (c) 2013-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. * * @providesModule SwipeRefreshLayoutTestModule */ 'use strict'; var BatchedBridge = require('BatchedBridge'); var React = require('React'); var RecordingModule = require('NativeModules').SwipeRefreshLayoutRecordingModule; var ScrollView = require('ScrollView'); var RefreshControl = require('RefreshControl'); var Text = require('Text'); var TouchableWithoutFeedback = require('TouchableWithoutFeedback'); var View = require('View'); var Row = React.createClass({ getInitialState: function() { return { clicks: 0, }; }, render: function() { return ( <TouchableWithoutFeedback onPress={this._onPress}> <View> <Text> {this.state.clicks + ' clicks'} </Text> </View> </TouchableWithoutFeedback> ); }, _onPress: function() { this.setState({clicks: this.state.clicks + 1}); }, }); var app = null; var SwipeRefreshLayoutTestApp = React.createClass({ getInitialState: function() { return { rows: 2, }; }, componentDidMount: function() { app = this; }, render: function() { var rows = []; for (var i = 0; i < this.state.rows; i++) { rows.push(<Row key={i} />); } return ( <ScrollView style={{flex: 1}} refreshControl={ <RefreshControl style={{flex: 1}} refreshing={false} onRefresh={() => RecordingModule.onRefresh()} /> }> {rows} </ScrollView> ); }, }); var SwipeRefreshLayoutTestModule = { SwipeRefreshLayoutTestApp, setRows: function(rows) { if (app != null) { app.setState({rows}); } } }; BatchedBridge.registerCallableModule( 'SwipeRefreshLayoutTestModule', SwipeRefreshLayoutTestModule ); module.exports = SwipeRefreshLayoutTestModule;