/** * 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 { StyleSheet, View, Text, TouchableHighlight, AlertIOS, } = ReactNative; var { SimpleAlertExampleBlock } = require('./AlertExample'); exports.framework = 'React'; exports.title = 'AlertIOS'; exports.description = 'iOS alerts and action sheets'; exports.examples = [{ title: 'Alerts', render() { return ; } }, { title: 'Prompt Options', render(): React.Element { return ; } }, { title: 'Prompt Types', render() { return ( AlertIOS.prompt('Plain Text Entry')}> plain-text AlertIOS.prompt('Secure Text', null, null, 'secure-text')}> secure-text AlertIOS.prompt('Login & Password', null, null, 'login-password')}> login-password ); } }]; class PromptOptions extends React.Component { state: any; customButtons: Array; constructor(props) { super(props); // $FlowFixMe this seems to be a Flow bug, `saveResponse` is defined below this.saveResponse = this.saveResponse.bind(this); this.customButtons = [{ text: 'Custom OK', onPress: this.saveResponse }, { text: 'Custom Cancel', style: 'cancel', }]; this.state = { promptValue: undefined, }; } render() { return ( Prompt value: {this.state.promptValue} AlertIOS.prompt('Type a value', null, this.saveResponse)}> prompt with title & callback AlertIOS.prompt('Type a value', null, this.customButtons)}> prompt with title & custom buttons AlertIOS.prompt('Type a value', null, this.saveResponse, undefined, 'Default value')}> prompt with title, callback & default value AlertIOS.prompt('Type a value', null, this.customButtons, 'login-password', 'admin@site.com')}> prompt with title, custom buttons, login/password & default value ); } saveResponse(promptValue) { this.setState({ promptValue: JSON.stringify(promptValue) }); } } var styles = StyleSheet.create({ wrapper: { borderRadius: 5, marginBottom: 5, }, button: { backgroundColor: '#eeeeee', padding: 10, }, });