Files
react-native/RNTester/js/examples/Alert/AlertExample.js
T
Ankit Tiwari f898bb65fa Fix alert screen crash in android in RNTester app (#29150)
Summary:
fixes - https://github.com/MLH-Fellowship/react-native/issues/21

[Reviewed by jevakallio](https://github.com/MLH-Fellowship/react-native/pull/22)

## Changelog

Before:

![image](https://user-images.githubusercontent.com/22813027/84471321-ba63bf00-aca2-11ea-92c0-3b43a8bdd28a.png)

After:

<img width="305" alt="Screenshot 2020-06-12 at 11 49 31 AM" src="https://user-images.githubusercontent.com/22813027/84471351-c8b1db00-aca2-11ea-9844-2b06da36e590.png">
Pull Request resolved: https://github.com/facebook/react-native/pull/29150

Test Plan:
1. Run the RNTester app locally on both android and iOS.
2. Open the Alert API screen.
3. Alert examples should be visible and functional in both android and iOS.

Screenshot for both android and iOS screens-

<img width="688" alt="Screenshot 2020-06-12 at 11 52 21 AM" src="https://user-images.githubusercontent.com/22813027/84471544-2d6d3580-aca3-11ea-9142-5f31a3daaf4e.png">

Reviewed By: cpojer

Differential Revision: D22067670

Pulled By: rickhanlonii

fbshipit-source-id: e7c43b77a30ae2e258303ce84f7fc4dee63776e6
2020-07-12 19:57:12 -07:00

151 lines
4.1 KiB
JavaScript

/**
* 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
*/
'use strict';
const React = require('react');
const {
Alert,
StyleSheet,
Text,
TouchableHighlight,
View,
} = require('react-native');
// corporate ipsum > lorem ipsum
const alertMessage =
'Credibly reintermediate next-generation potentialities after goal-oriented ' +
'catalysts for change. Dynamically revolutionize.';
/**
* Simple alert examples.
*/
type Props = $ReadOnly<{||}>;
class SimpleAlertExampleBlock extends React.Component<Props> {
render() {
return (
<View>
<TouchableHighlight
style={styles.wrapper}
onPress={() => Alert.alert('Alert Title', alertMessage)}>
<View style={styles.button}>
<Text>Alert with message and default button</Text>
</View>
</TouchableHighlight>
<TouchableHighlight
style={styles.wrapper}
onPress={() =>
Alert.alert('Alert Title', alertMessage, [
{text: 'OK', onPress: () => console.log('OK Pressed!')},
])
}>
<View style={styles.button}>
<Text>Alert with one button</Text>
</View>
</TouchableHighlight>
<TouchableHighlight
style={styles.wrapper}
onPress={() =>
Alert.alert('Alert Title', alertMessage, [
{text: 'Cancel', onPress: () => console.log('Cancel Pressed!')},
{text: 'OK', onPress: () => console.log('OK Pressed!')},
])
}>
<View style={styles.button}>
<Text>Alert with two buttons</Text>
</View>
</TouchableHighlight>
<TouchableHighlight
style={styles.wrapper}
onPress={() =>
Alert.alert('Alert Title', null, [
{text: 'Foo', onPress: () => console.log('Foo Pressed!')},
{text: 'Bar', onPress: () => console.log('Bar Pressed!')},
{text: 'Baz', onPress: () => console.log('Baz Pressed!')},
])
}>
<View style={styles.button}>
<Text>Alert with three buttons</Text>
</View>
</TouchableHighlight>
<TouchableHighlight
style={styles.wrapper}
onPress={() =>
Alert.alert(
'Foo Title',
alertMessage,
'..............'.split('').map((dot, index) => ({
text: 'Button ' + index,
onPress: () => console.log('Pressed ' + index),
})),
)
}>
<View style={styles.button}>
<Text>Alert with too many buttons</Text>
</View>
</TouchableHighlight>
<TouchableHighlight
style={styles.wrapper}
onPress={() =>
Alert.alert(
'Alert Title',
null,
[{text: 'OK', onPress: () => console.log('OK Pressed!')}],
{
cancelable: false,
},
)
}>
<View style={styles.button}>
<Text>Alert that cannot be dismissed</Text>
</View>
</TouchableHighlight>
<TouchableHighlight
style={styles.wrapper}
onPress={() =>
Alert.alert('', alertMessage, [
{text: 'OK', onPress: () => console.log('OK Pressed!')},
])
}>
<View style={styles.button}>
<Text>Alert without title</Text>
</View>
</TouchableHighlight>
</View>
);
}
}
const styles = StyleSheet.create({
wrapper: {
borderRadius: 5,
marginBottom: 5,
},
button: {
backgroundColor: '#eeeeee',
padding: 10,
},
});
exports.title = 'Alert';
exports.description =
'Alerts display a concise and informative message ' +
'and prompt the user to make a decision.';
exports.examples = [
{
title: 'Alerts',
render(): React.Node {
return <SimpleAlertExampleBlock />;
},
},
];
exports.SimpleAlertExampleBlock = SimpleAlertExampleBlock;