/** * 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. * * 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 { SegmentedControlIOS, Text, View, StyleSheet } = ReactNative; class BasicSegmentedControlExample extends React.Component { render() { return ( ); } } class PreSelectedSegmentedControlExample extends React.Component { render() { return ( ); } } class MomentarySegmentedControlExample extends React.Component { render() { return ( ); } } class DisabledSegmentedControlExample extends React.Component { render() { return ( ); } } class ColorSegmentedControlExample extends React.Component { render() { return ( ); } } class EventSegmentedControlExample extends React.Component { state = { values: ['One', 'Two', 'Three'], value: 'Not selected', selectedIndex: undefined }; render() { return ( Value: {this.state.value} Index: {this.state.selectedIndex} ); } _onChange = (event) => { this.setState({ selectedIndex: event.nativeEvent.selectedSegmentIndex, }); }; _onValueChange = (value) => { this.setState({ value: value, }); }; } var styles = StyleSheet.create({ text: { fontSize: 14, textAlign: 'center', fontWeight: '500', margin: 10, }, }); exports.title = ''; exports.displayName = 'SegmentedControlExample'; exports.description = 'Native segmented control'; exports.examples = [ { title: 'Segmented controls can have values', render(): ReactElement { return ; } }, { title: 'Segmented controls can have a pre-selected value', render(): ReactElement { return ; } }, { title: 'Segmented controls can be momentary', render(): ReactElement { return ; } }, { title: 'Segmented controls can be disabled', render(): ReactElement { return ; } }, { title: 'Custom colors can be provided', render(): ReactElement { return ; } }, { title: 'Change events can be detected', render(): ReactElement { return ; } } ];