mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
017dc45c62
Summary: _**Fixed**_ version of [the previous PR](https://github.com/facebook/react-native/pull/28792) after reverting [changes](https://github.com/facebook/react-native/commit/c8d678abcf93fd3f6daf4bebfdf25937995c1fdf#commitcomment-39299254) ---- I've noticed that currently there is no option to disable button within the `ActionSheetIOS`. It can be really useful and decided to extend the API to support that functionality. I added a new option called `disabledButtonsIndices` to `ActionSheetIOS` which is an array of button indices which should be disabled. `ActionSheetIOS` documentation - PR https://github.com/facebook/react-native-website/pull/1898 ## Changelog [iOS] [Added] - Add disableButtonsIndices option to ActionSheetIOS component Pull Request resolved: https://github.com/facebook/react-native/pull/28979 Test Plan: 1. Run the `RNTester` 2. Choose `ActionSheetIOS` 3. Check the fourth example `Show Action Sheet with disabled buttons` 4. `Option 1` and `Option 2` should be disabled screenshot | gif --- | --- <img width="493" alt="Screenshot 2020-04-30 at 15 16 22" src="https://user-images.githubusercontent.com/22746080/80739025-1ec52780-8b16-11ea-8b1c-30bb40ad8c99.png"> | <img src="https://user-images.githubusercontent.com/22746080/80739043-24227200-8b16-11ea-8bcb-af25eb57baac.gif" width="493" /> Reviewed By: sammy-SC Differential Revision: D21727497 Pulled By: PeteTheHeat fbshipit-source-id: 749b6c623eb8a44fe2bd96829ce89be5310e2368
53 lines
1.4 KiB
JavaScript
53 lines
1.4 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.
|
|
*
|
|
* @flow
|
|
* @format
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
import type {TurboModule} from '../TurboModule/RCTExport';
|
|
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
|
|
|
|
export interface Spec extends TurboModule {
|
|
+getConstants: () => {||};
|
|
+showActionSheetWithOptions: (
|
|
options: {|
|
|
+title?: ?string,
|
|
+message?: ?string,
|
|
+options: ?Array<string>,
|
|
+destructiveButtonIndices?: ?Array<number>,
|
|
+cancelButtonIndex?: ?number,
|
|
+anchor?: ?number,
|
|
+tintColor?: ?number,
|
|
+userInterfaceStyle?: ?string,
|
|
+disabledButtonIndices?: Array<number>,
|
|
|},
|
|
callback: (buttonIndex: number) => void,
|
|
) => void;
|
|
+showShareActionSheetWithOptions: (
|
|
options: {|
|
|
+message?: ?string,
|
|
+url?: ?string,
|
|
+subject?: ?string,
|
|
+anchor?: ?number,
|
|
+tintColor?: ?number,
|
|
+excludedActivityTypes?: ?Array<string>,
|
|
+userInterfaceStyle?: ?string,
|
|
|},
|
|
failureCallback: (error: {|
|
|
+domain: string,
|
|
+code: string,
|
|
+userInfo?: ?Object,
|
|
+message: string,
|
|
|}) => void,
|
|
successCallback: (completed: boolean, activityType: ?string) => void,
|
|
) => void;
|
|
}
|
|
|
|
export default (TurboModuleRegistry.get<Spec>('ActionSheetManager'): ?Spec);
|