/** * 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'; const React = require('react'); const ReactNative = require('react-native'); const { StatusBar, StyleSheet, Text, TouchableHighlight, View, } = ReactNative; exports.framework = 'React'; exports.title = ''; exports.description = 'Component for controlling the status bar'; const colors = [ '#ff0000', '#00ff00', '#0000ff', ]; const barStyles = [ 'default', 'light-content', ]; const showHideTransitions = [ 'fade', 'slide', ]; function getValue(values: Array, index: number): T { return values[index % values.length]; } const StatusBarHiddenExample = React.createClass({ getInitialState() { return { animated: true, hidden: false, showHideTransition: getValue(showHideTransitions, 0), }; }, _showHideTransitionIndex: 0, _onChangeAnimated() { this.setState({animated: !this.state.animated}); }, _onChangeHidden() { this.setState({hidden: !this.state.hidden}); }, _onChangeTransition() { this._showHideTransitionIndex++; this.setState({ showHideTransition: getValue(showHideTransitions, this._showHideTransitionIndex), }); }, render() { return ( ); }, }); const StatusBarStyleExample = React.createClass({ getInitialState() { return { animated: true, barStyle: getValue(barStyles, this._barStyleIndex), }; }, _barStyleIndex: 0, _onChangeBarStyle() { this._barStyleIndex++; this.setState({barStyle: getValue(barStyles, this._barStyleIndex)}); }, _onChangeAnimated() { this.setState({animated: !this.state.animated}); }, render() { return ( style: '{getValue(barStyles, this._barStyleIndex)}' animated: {this.state.animated ? 'true' : 'false'} ); }, }); const StatusBarNetworkActivityExample = React.createClass({ getInitialState() { return { networkActivityIndicatorVisible: false, }; }, _onChangeNetworkIndicatorVisible() { this.setState({ networkActivityIndicatorVisible: !this.state.networkActivityIndicatorVisible, }); }, render() { return ( networkActivityIndicatorVisible: {this.state.networkActivityIndicatorVisible ? 'true' : 'false'} ); }, }); const StatusBarBackgroundColorExample = React.createClass({ getInitialState() { return { animated: true, backgroundColor: getValue(colors, 0), }; }, _colorIndex: 0, _onChangeBackgroundColor() { this._colorIndex++; this.setState({backgroundColor: getValue(colors, this._colorIndex)}); }, _onChangeAnimated() { this.setState({animated: !this.state.animated}); }, render() { return ( backgroundColor: '{getValue(colors, this._colorIndex)}' animated: {this.state.animated ? 'true' : 'false'} ); }, }); const StatusBarTranslucentExample = React.createClass({ getInitialState() { return { translucent: false, }; }, _onChangeTranslucent() { this.setState({ translucent: !this.state.translucent, }); }, render() { return ( translucent: {this.state.translucent ? 'true' : 'false'} ); }, }); const StatusBarStaticIOSExample = React.createClass({ render() { return ( { StatusBar.setHidden(true, 'slide'); }}> setHidden(true, 'slide') { StatusBar.setHidden(false, 'fade'); }}> setHidden(false, 'fade') { StatusBar.setBarStyle('default', true); }}> setBarStyle('default', true) { StatusBar.setBarStyle('light-content', true); }}> setBarStyle('light-content', true) { StatusBar.setNetworkActivityIndicatorVisible(true); }}> setNetworkActivityIndicatorVisible(true) { StatusBar.setNetworkActivityIndicatorVisible(false); }}> setNetworkActivityIndicatorVisible(false) ); }, }); const StatusBarStaticAndroidExample = React.createClass({ render() { return ( { StatusBar.setHidden(true); }}> setHidden(true) { StatusBar.setHidden(false); }}> setHidden(false) { StatusBar.setBackgroundColor('#ff00ff', true); }}> setBackgroundColor('#ff00ff', true) { StatusBar.setBackgroundColor('#00ff00', true); }}> setBackgroundColor('#00ff00', true) { StatusBar.setTranslucent(true); StatusBar.setBackgroundColor('rgba(0, 0, 0, 0.4)', true); }}> setTranslucent(true) and setBackgroundColor('rgba(0, 0, 0, 0.4)', true) { StatusBar.setTranslucent(false); StatusBar.setBackgroundColor('black', true); }}> setTranslucent(false) and setBackgroundColor('black', true) ); }, }); const examples = [{ title: 'StatusBar hidden', render() { return ; }, }, { title: 'StatusBar style', render() { return ; }, platform: 'ios', }, { title: 'StatusBar network activity indicator', render() { return ; }, platform: 'ios', }, { title: 'StatusBar background color', render() { return ; }, platform: 'android', }, { title: 'StatusBar background color', render() { return ; }, platform: 'android', }, { title: 'StatusBar static API', render() { return ; }, platform: 'ios', }, { title: 'StatusBar static API', render() { return ; }, platform: 'android', }, { title: 'StatusBar dimensions', render() { return ( Height: {StatusBar.currentHeight} pts ); }, platform: 'android', }]; exports.examples = examples; var styles = StyleSheet.create({ wrapper: { borderRadius: 5, marginBottom: 5, }, button: { borderRadius: 5, backgroundColor: '#eeeeee', padding: 10, }, title: { marginTop: 16, marginBottom: 8, fontWeight: 'bold', } });