mirror of
https://github.com/status-im/react-native.git
synced 2025-01-09 17:15:54 +00:00
de8a370e02
Summary: As it was implemented, the jsdoc parser would look only the first non-blank line immediately preceding a function declaration. However, the line that was set as the beginning of a function declaration was where the opening bracket (`{`) was. This is insufficient for functions whose definitions span multiple lines. For example, this declaration would not find the comments above it: ``` /** * Clones rows **/ cloneWithRows( dataBlob: Array<any> | {[key: string]: any}, rowIdentities: ?Array<string> ): ListViewDataSource { ... } ``` With this change, the parser will first check if we have a closing parenthesis. If we do and don't have a matching open parenthesis we continue moving up the lines until we find it. Then we set previous line to be the line before that, the true beginning of the function declaration. Closes https://github.com/facebook/react-native/pull/360 Github Author: Peter Janak <pjanak@nhl.com> Test Plan: Run the website
77 lines
1.8 KiB
JavaScript
77 lines
1.8 KiB
JavaScript
/**
|
|
* Copyright (c) 2015-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.
|
|
*
|
|
* @providesModule AlertIOS
|
|
* @flow
|
|
*/
|
|
'use strict';
|
|
|
|
var RCTAlertManager = require('NativeModules').AlertManager;
|
|
|
|
var DEFAULT_BUTTON_TEXT = 'OK';
|
|
var DEFAULT_BUTTON = {
|
|
text: DEFAULT_BUTTON_TEXT,
|
|
onPress: null,
|
|
};
|
|
|
|
/**
|
|
* Launches an alert dialog with the specified title and message.
|
|
*
|
|
* Optionally provide a list of buttons. Tapping any button will fire the
|
|
* respective onPress callback and dismiss the alert. By default, the only
|
|
* button will be an 'OK' button
|
|
*
|
|
* The last button in the list will be considered the 'Primary' button and
|
|
* it will appear bold.
|
|
*
|
|
* ```
|
|
* AlertIOS.alert(
|
|
* 'Foo Title',
|
|
* 'My Alert Msg',
|
|
* [
|
|
* {text: 'Foo', onPress: () => console.log('Foo Pressed!')},
|
|
* {text: 'Bar', onPress: () => console.log('Bar Pressed!')},
|
|
* ]
|
|
* )}
|
|
* ```
|
|
*/
|
|
|
|
class AlertIOS {
|
|
static alert(
|
|
title: ?string,
|
|
message?: ?string,
|
|
buttons?: Array<{
|
|
text: ?string;
|
|
onPress: ?Function;
|
|
}>
|
|
): void {
|
|
var callbacks = [];
|
|
var buttonsSpec = [];
|
|
title = title || '';
|
|
message = message || '';
|
|
buttons = buttons || [DEFAULT_BUTTON];
|
|
buttons.forEach((btn, index) => {
|
|
callbacks[index] = btn.onPress;
|
|
var btnDef = {};
|
|
btnDef[index] = btn.text || DEFAULT_BUTTON_TEXT;
|
|
buttonsSpec.push(btnDef);
|
|
});
|
|
RCTAlertManager.alertWithArgs({
|
|
title,
|
|
message,
|
|
buttons: buttonsSpec,
|
|
}, (id) => {
|
|
var cb = callbacks[id];
|
|
cb && cb();
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = AlertIOS;
|