react-native/Examples/UIExplorer/ActivityIndicatorExample.js

151 lines
3.0 KiB
JavaScript
Raw Normal View History

2015-01-30 01:10:49 +00:00
/**
* Copyright 2004-present Facebook. All Rights Reserved.
* @flow
2015-01-30 01:10:49 +00:00
*/
'use strict';
var React = require('react-native');
var {
ActivityIndicatorIOS,
2015-01-30 01:10:49 +00:00
StyleSheet,
TimerMixin,
View,
} = React;
var ToggleAnimatingActivityIndicator = React.createClass({
2015-01-30 01:10:49 +00:00
mixins: [TimerMixin],
getInitialState: function() {
return {
animating: true,
};
},
setToggleTimeout: function() {
this.setTimeout(
() => {
this.setState({animating: !this.state.animating});
this.setToggleTimeout();
},
1200
);
},
componentDidMount: function() {
this.setToggleTimeout();
},
render: function() {
return (
<ActivityIndicatorIOS
2015-01-30 01:10:49 +00:00
animating={this.state.animating}
style={[styles.centering, {height: 80}]}
size="large"
2015-01-30 01:10:49 +00:00
/>
);
}
});
exports.framework = 'React';
exports.title = '<ActivityIndicatorIOS>';
2015-01-30 01:10:49 +00:00
exports.description = 'Animated loading indicators.';
exports.examples = [
{
title: 'Default (small, white)',
render: function() {
return (
<ActivityIndicatorIOS
2015-01-30 01:10:49 +00:00
style={[styles.centering, styles.gray, {height: 40}]}
color="white"
/>
);
}
},
{
title: 'Gray',
render: function() {
return (
<View>
<ActivityIndicatorIOS
2015-01-30 01:10:49 +00:00
style={[styles.centering, {height: 40}]}
/>
<ActivityIndicatorIOS
2015-01-30 01:10:49 +00:00
style={[styles.centering, {backgroundColor: '#eeeeee', height: 40}]}
/>
</View>
);
}
},
{
title: 'Custom colors',
render: function() {
return (
<View style={styles.horizontal}>
<ActivityIndicatorIOS color="#0000ff" />
<ActivityIndicatorIOS color="#aa00aa" />
<ActivityIndicatorIOS color="#aa3300" />
<ActivityIndicatorIOS color="#00aa00" />
2015-01-30 01:10:49 +00:00
</View>
);
}
},
{
title: 'Large',
render: function() {
return (
<ActivityIndicatorIOS
2015-01-30 01:10:49 +00:00
style={[styles.centering, styles.gray, {height: 80}]}
color="white"
size="large"
2015-01-30 01:10:49 +00:00
/>
);
}
},
{
title: 'Large, custom colors',
render: function() {
return (
<View style={styles.horizontal}>
<ActivityIndicatorIOS
size="large"
2015-01-30 01:10:49 +00:00
color="#0000ff"
/>
<ActivityIndicatorIOS
size="large"
2015-01-30 01:10:49 +00:00
color="#aa00aa"
/>
<ActivityIndicatorIOS
size="large"
2015-01-30 01:10:49 +00:00
color="#aa3300"
/>
<ActivityIndicatorIOS
size="large"
2015-01-30 01:10:49 +00:00
color="#00aa00"
/>
</View>
);
}
},
{
title: 'Start/stop',
render: function(): ReactElement {
return <ToggleAnimatingActivityIndicator />;
2015-01-30 01:10:49 +00:00
}
},
];
var styles = StyleSheet.create({
centering: {
alignItems: 'center',
justifyContent: 'center',
},
gray: {
backgroundColor: '#cccccc',
},
horizontal: {
flexDirection: 'row',
justifyContent: 'space-around',
},
});