/** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow * @providesModule AlertIOSExample */ '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<$FlowFixMeProps, 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 phone number', null, null, 'plain-text', undefined, 'phone-pad')}> prompt with title & custom keyboard 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, }, });