2.2.1 • Published 4 years ago

@scrawllife/react-native-action-sheet v2.2.1

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

react-native-action-sheet npm version MIT Platform - Android and iOS

React native action sheet with native android (using the built-in AlertDialog)

This module simply return the ActionSheetIOS if the device on iOS

iOSAndroid

Table of contents

IMPORTANT ! Package name on npm is now react-native-action-sheet

Install

npm install react-native-action-sheet@latest --save react-native link react-native-action-sheet

if react native < 0.47

npm install @yfuks/react-native-action-sheet@0.0.3 --save react-native link @yfuks/react-native-action-sheet

Android

The react-native link command above should do everything you need, but if for some reason it does not work, you can replicate its effects manually by making the following changes.

// file: android/settings.gradle
...

include ':react-native-action-sheet'
project(':react-native-action-sheet').projectDir = new File(settingsDir, '../node_modules/react-native-action-sheet/android')
// file: android/app/build.gradle
...

dependencies {
    ...
    compile project(':react-native-action-sheet')
}
// file: android/app/src/main/java/com/<...>/MainApplication.java
...

import com.actionsheet.ActionSheetPackage; // <-- add this import

public class MainApplication extends Application implements ReactApplication {
    @Override
    protected List<ReactPackage> getPackages() {
        return Arrays.<ReactPackage>asList(
            new MainReactPackage(),
            new ActionSheetPackage() // <-- add this line
        );
    }
...
}

(Optional) Style customization

You can change the style of the dialog by editing nodes_modules/react-native-action-sheet/android/src/main/res/values/style.xml

Usage

import ActionSheet from "react-native-action-sheet";

var options = ["Option 0", "Option 1", "Option 2", "Delete", "Cancel"];

var DESTRUCTIVE_INDEX = 3;
var CANCEL_INDEX = 4;

ActionSheet.showActionSheetWithOptions(
  {
    options: options,
    cancelButtonIndex: CANCEL_INDEX,
    destructiveButtonIndex: DESTRUCTIVE_INDEX,
    tintColor: "blue",
  },
  (buttonIndex) => {
    console.log("button clicked :", buttonIndex);
  }
);

Methods

For the iOS implementation see ActionSheetIOS

showActionSheetWithOptions (Android)

/**
 * Display the native action sheet
 */

static showActionSheetWithOptions(options, callback);

@note: on Android in case of a touch outside the ActionSheet or the hardware back button is pressed the buttonIndex value is cancelButtonIndex or 'undefined'

options

optioniOSAndroidInfo
optionsOKOK(array of strings) - a list of button titles (required on iOS)
cancelButtonIndexOKOk(int) - index of cancel button in options
destructiveButtonIndexOK-(int) - index of destructive button in options (same as above)
titleOKOK(string) - a title to show above the action sheet
messageOK-(string) - a message to show below the title
tintColorOK-(string) - a color to set to the text (defined by processColor)

Instructions

Subsequent updates of fork's Yoann Fuks (yfuks) react-native-action-sheet will be submitted to yfuks