/** * 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 */ '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, }, });