awesome-cordova-plugins/src/plugins/actionsheet.ts

85 lines
3.4 KiB
TypeScript
Raw Normal View History

2015-11-30 06:30:15 +08:00
import {Plugin, Cordova} from './plugin';
2016-02-07 05:56:38 +08:00
/**
* @name ActionSheet
* @description
2016-02-07 05:56:38 +08:00
* The ActionSheet plugin shows a native list of options the user can choose from.
2016-02-19 02:01:27 +08:00
*
* Requires Cordova plugin: `cordova-plugin-actionsheet`. For more info, please see the [ActionSheet plugin docs](https://github.com/phonegap/phonegap-plugin-barcodescanner).
*
* @usage
*
* ```ts
2016-02-19 02:01:27 +08:00
* import {ActionSheet} from 'ionic-native';
*
* let buttonLabels = ['Share via Facebook', 'Share via Twitter'];
* ActionSheet.show({
* 'title': 'What do you want with this image?',
* 'buttonLabels': buttonLabels,
* 'addCancelButtonWithLabel': 'Cancel',
* 'addDestructiveButtonWithLabel' : 'Delete'
* }).then(buttonIndex => {
* console.log('Button pressed: ' + buttonLabels[buttonIndex - 1]);
* });
* ```
*
2016-02-07 05:56:38 +08:00
*/
2015-11-30 06:30:15 +08:00
@Plugin({
plugin: 'cordova-plugin-actionsheet',
pluginRef: 'plugins.actionsheet',
repo: 'https://github.com/EddyVerbruggen/cordova-plugin-actionsheet'
})
export class ActionSheet {
2016-02-06 09:22:23 +08:00
/**
2016-02-25 05:20:16 +08:00
* Show the ActionSheet. The ActionSheet's options is an object with the following propterties.
*
* | Option | Type | Description |
* |-------------------------------|-----------|----------------------------------------------|
* | title |`string` | The title for the actionsheet |
* | buttonLabels |`string[]` | the labels for the buttons. Uses the index x |
* | androidTheme |`number` | Theme to bue used on Android |
* | androidEnableCancelButton |`boolean` | Enable a cancel on Android |
* | winphoneEnableCancelButton |`boolean` | Enable a cancel on Android |
* | addCancelButtonWithLabel |`string` | Add a cancle button with text |
* | addDestructiveButtonWithLabel |`string` | Add a destructive button with text |
* | position |`number[]` | On an iPad, set the X,Y position |
*
* @param {options} Options See table above
2016-02-19 02:01:27 +08:00
* @returns {Promise} Returns a Promise that resolves with the index of the
2016-02-07 05:56:38 +08:00
* button pressed (1 based, so 1, 2, 3, etc.)
2016-02-06 09:22:23 +08:00
*/
2015-11-30 09:54:45 +08:00
@Cordova()
2016-02-06 09:22:23 +08:00
static show(options?: {
buttonLabels: string[],
title?: string,
androidTheme?: number,
androidEnableCancelButton?: boolean,
winphoneEnableCancelButton?: boolean,
addCancelButtonWithLabel?: string,
addDestructiveButtonWithLabel?: string,
position?: number[]
2016-02-07 05:56:38 +08:00
}) {
// This Promise is replaced by one from the @Cordova decorator that wraps
// the plugin's callbacks. We provide a dummy one here so TypeScript
// knows that the correct return type is Promise, because there's no way
// for it to know the return type from a decorator.
// See https://github.com/Microsoft/TypeScript/issues/4881
return new Promise<any>((res, rej) => {});
2016-02-19 02:01:27 +08:00
}
2016-02-06 09:22:23 +08:00
2015-11-30 06:30:15 +08:00
2016-02-06 09:22:23 +08:00
/**
* Hide the ActionSheet.
*/
2015-11-30 09:54:45 +08:00
@Cordova()
2016-02-07 05:56:38 +08:00
static hide() {
// This Promise is replaced by one from the @Cordova decorator that wraps
// the plugin's callbacks. We provide a dummy one here so TypeScript
// knows that the correct return type is Promise, because there's no way
// for it to know the return type from a decorator.
// See https://github.com/Microsoft/TypeScript/issues/4881
return new Promise<any>((res, rej) => {});
2016-02-19 02:01:27 +08:00
}
2015-11-30 06:30:15 +08:00
}