mirror of
https://github.com/status-im/react-native.git
synced 2025-01-10 01:25:39 +00:00
edb6ca72fd
Summary: Hi! I would like to contribute to React Native, and I am just starting out. I forked the repo and found that it has quite a lot of ESLint warnings – many of which were automatically fixable. This PR is simply the result of running `yarn lint --fix` from the root folder. Most changes are removing trailing spaces from comments. Haven't really done any manual testing, since I haven't done any code changes manually. `yarn test` runs fine, `yarn flow` runs fine, `yarn prettier` is satisfied. N/A [INTERNAL][MINOR][] - Fix ESLint warnings Closes https://github.com/facebook/react-native/pull/18047 Differential Revision: D7054948 Pulled By: hramos fbshipit-source-id: d53e692698d1687de5821c3fb5cdb76a5e03b71e
116 lines
3.3 KiB
JavaScript
116 lines
3.3 KiB
JavaScript
/**
|
|
* 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.
|
|
*
|
|
* @providesModule Alert
|
|
* @flow
|
|
*/
|
|
'use strict';
|
|
|
|
const AlertIOS = require('AlertIOS');
|
|
const NativeModules = require('NativeModules');
|
|
const Platform = require('Platform');
|
|
|
|
import type { AlertType, AlertButtonStyle } from 'AlertIOS';
|
|
|
|
export type Buttons = Array<{
|
|
text?: string,
|
|
onPress?: ?Function,
|
|
style?: AlertButtonStyle,
|
|
}>;
|
|
|
|
type Options = {
|
|
cancelable?: ?boolean,
|
|
onDismiss?: ?Function,
|
|
};
|
|
|
|
/**
|
|
* Launches an alert dialog with the specified title and message.
|
|
*
|
|
* See http://facebook.github.io/react-native/docs/alert.html
|
|
*/
|
|
class Alert {
|
|
|
|
/**
|
|
* Launches an alert dialog with the specified title and message.
|
|
*
|
|
* See http://facebook.github.io/react-native/docs/alert.html#alert
|
|
*/
|
|
static alert(
|
|
title: ?string,
|
|
message?: ?string,
|
|
buttons?: Buttons,
|
|
options?: Options,
|
|
type?: AlertType,
|
|
): void {
|
|
if (Platform.OS === 'ios') {
|
|
if (typeof type !== 'undefined') {
|
|
console.warn('Alert.alert() with a 5th "type" parameter is deprecated and will be removed. Use AlertIOS.prompt() instead.');
|
|
AlertIOS.alert(title, message, buttons, type);
|
|
return;
|
|
}
|
|
AlertIOS.alert(title, message, buttons);
|
|
} else if (Platform.OS === 'android') {
|
|
AlertAndroid.alert(title, message, buttons, options);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Wrapper around the Android native module.
|
|
*/
|
|
class AlertAndroid {
|
|
|
|
static alert(
|
|
title: ?string,
|
|
message?: ?string,
|
|
buttons?: Buttons,
|
|
options?: Options,
|
|
): void {
|
|
var config = {
|
|
title: title || '',
|
|
message: message || '',
|
|
};
|
|
|
|
if (options) {
|
|
config = {...config, cancelable: options.cancelable};
|
|
}
|
|
// At most three buttons (neutral, negative, positive). Ignore rest.
|
|
// The text 'OK' should be probably localized. iOS Alert does that in native.
|
|
var validButtons: Buttons = buttons ? buttons.slice(0, 3) : [{text: 'OK'}];
|
|
var buttonPositive = validButtons.pop();
|
|
var buttonNegative = validButtons.pop();
|
|
var buttonNeutral = validButtons.pop();
|
|
if (buttonNeutral) {
|
|
config = {...config, buttonNeutral: buttonNeutral.text || '' };
|
|
}
|
|
if (buttonNegative) {
|
|
config = {...config, buttonNegative: buttonNegative.text || '' };
|
|
}
|
|
if (buttonPositive) {
|
|
config = {...config, buttonPositive: buttonPositive.text || '' };
|
|
}
|
|
NativeModules.DialogManagerAndroid.showAlert(
|
|
config,
|
|
(errorMessage) => console.warn(errorMessage),
|
|
(action, buttonKey) => {
|
|
if (action === NativeModules.DialogManagerAndroid.buttonClicked) {
|
|
if (buttonKey === NativeModules.DialogManagerAndroid.buttonNeutral) {
|
|
buttonNeutral.onPress && buttonNeutral.onPress();
|
|
} else if (buttonKey === NativeModules.DialogManagerAndroid.buttonNegative) {
|
|
buttonNegative.onPress && buttonNegative.onPress();
|
|
} else if (buttonKey === NativeModules.DialogManagerAndroid.buttonPositive) {
|
|
buttonPositive.onPress && buttonPositive.onPress();
|
|
}
|
|
} else if (action === NativeModules.DialogManagerAndroid.dismissed) {
|
|
options && options.onDismiss && options.onDismiss();
|
|
}
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
module.exports = Alert;
|