81 lines
2.8 KiB
TypeScript
81 lines
2.8 KiB
TypeScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
*/
|
|
|
|
import {ProcessedColorValue} from '../StyleSheet/processColor';
|
|
import {ColorValue} from '../StyleSheet/StyleSheet';
|
|
|
|
/**
|
|
* @see: https://reactnative.dev/docs/actionsheetios#content
|
|
*/
|
|
export interface ActionSheetIOSOptions {
|
|
title?: string | undefined;
|
|
options: string[];
|
|
cancelButtonIndex?: number | undefined;
|
|
destructiveButtonIndex?: number | number[] | undefined | null;
|
|
message?: string | undefined;
|
|
anchor?: number | undefined;
|
|
tintColor?: ColorValue | ProcessedColorValue | undefined;
|
|
cancelButtonTintColor?: ColorValue | ProcessedColorValue | undefined;
|
|
userInterfaceStyle?: 'light' | 'dark' | undefined;
|
|
disabledButtonIndices?: number[] | undefined;
|
|
}
|
|
|
|
export interface ShareActionSheetIOSOptions {
|
|
message?: string | undefined;
|
|
url?: string | undefined;
|
|
subject?: string | undefined;
|
|
anchor?: number | undefined;
|
|
/** The activities to exclude from the ActionSheet.
|
|
* For example: ['com.apple.UIKit.activity.PostToTwitter']
|
|
*/
|
|
excludedActivityTypes?: string[] | undefined;
|
|
}
|
|
|
|
/**
|
|
* @see https://reactnative.dev/docs/actionsheetios#content
|
|
*/
|
|
export interface ActionSheetIOSStatic {
|
|
/**
|
|
* Display an iOS action sheet. The `options` object must contain one or more
|
|
* of:
|
|
* - `options` (array of strings) - a list of button titles (required)
|
|
* - `cancelButtonIndex` (int) - index of cancel button in `options`
|
|
* - `destructiveButtonIndex` (int) - index of destructive button in `options`
|
|
* - `title` (string) - a title to show above the action sheet
|
|
* - `message` (string) - a message to show below the title
|
|
*/
|
|
showActionSheetWithOptions: (
|
|
options: ActionSheetIOSOptions,
|
|
callback: (buttonIndex: number) => void,
|
|
) => void;
|
|
|
|
/**
|
|
* Display the iOS share sheet. The `options` object should contain
|
|
* one or both of `message` and `url` and can additionally have
|
|
* a `subject` or `excludedActivityTypes`:
|
|
*
|
|
* - `url` (string) - a URL to share
|
|
* - `message` (string) - a message to share
|
|
* - `subject` (string) - a subject for the message
|
|
* - `excludedActivityTypes` (array) - the activities to exclude from the ActionSheet
|
|
*
|
|
* NOTE: if `url` points to a local file, or is a base64-encoded
|
|
* uri, the file it points to will be loaded and shared directly.
|
|
* In this way, you can share images, videos, PDF files, etc.
|
|
*/
|
|
showShareActionSheetWithOptions: (
|
|
options: ShareActionSheetIOSOptions,
|
|
failureCallback: (error: Error) => void,
|
|
successCallback: (success: boolean, method: string) => void,
|
|
) => void;
|
|
}
|
|
|
|
export const ActionSheetIOS: ActionSheetIOSStatic;
|
|
export type ActionSheetIOS = ActionSheetIOSStatic;
|