/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @format * @flow strict-local */ 'use strict'; const React = require('react'); const ReactNative = require('react-native'); const StyleSheet = require('StyleSheet'); const {Picker, Text} = ReactNative; const Item = Picker.Item; type State = { value: string | number, }; class BasicPickerExample extends React.Component<{}, State> { state = { value: 'key1', }; render() { return ( this.setState({value: v})}> ); } } class DisabledPickerExample extends React.Component<{}, State> { state = { value: 'key1', }; render() { return ( ); } } class DropdownPickerExample extends React.Component<{}, State> { state = { value: 'key1', }; render() { return ( this.setState({value: v})} mode="dropdown"> ); } } class PromptPickerExample extends React.Component<{}, State> { state = { value: 'key1', }; render() { return ( this.setState({value: v})} prompt="Pick one, just one"> ); } } type ColorState = { color: string | number, }; class ColorPickerExample extends React.Component<{}, ColorState> { state = { color: 'red', }; render() { return ( <> this.setState({color: v})} mode="dropdown"> this.setState({color: v})} mode="dialog"> ); } } const styles = StyleSheet.create({ picker: { width: 100, }, }); exports.title = ''; exports.description = 'Provides multiple options to choose from, using either a dropdown menu or a dialog.'; exports.examples = [ { title: 'Basic Picker', render: function(): React.Element { return ; }, }, { title: 'Disabled Picker', render: function(): React.Element { return ; }, }, { title: 'Dropdown Picker', render: function(): React.Element { return ; }, }, { title: 'Picker with prompt message', render: function(): React.Element { return ; }, }, { title: 'Picker with no listener', render: function(): React.Element { return ( <> Cannot change the value of this picker because it doesn't update selectedValue. ); }, }, { title: 'Colorful pickers', render: function(): React.Element { return ; }, }, ];