1.2.0 • Published 5 years ago

@selcouth-digital/react-native-action-sheet v1.2.0

Weekly downloads
18
License
MIT
Repository
github
Last release
5 years ago

React Native - Action Sheet

React Native - Custom Action Sheet (with hooks).

Notes

React Native Action Sheet cannot get dismissed programatically, so we've decided to use React Native Modal and imitate Action Sheet behaviour with it to enable dismissable option.

Install

yarn add @selcouth-digital/react-native-action-sheet

Usage

Simple example:

import React, { Fragment, useState } from 'react'
import ActionSheet from '@selcouth-digital/react-native-action-sheet'

const Example = () => {
  const [showActionSheet, setShowActionSheet] = useState(false)
  
  const options = [
    {
      onPress: () => console.log('option 1 pressed'),
      title: 'Option 1'
    }
  ]
  
  return (
    <Fragment>
      <Button onPress={() => setShowActionSheet(true)} title="Open Action Sheet" />

      /*
       * note that the ActionSheet component has to be at the highest screen level
       * so it overlaps the other components
       */
      <ActionSheet
        onDismiss={() => setShowActionSheet(false)}
        options={options}
        visible={showActionSheet}
      />
    </Fragment>
  )
}

export default Example

API

Props

NameTypeRequired?Default
optionsArray-
titleString-'Select an option...'
visibleBooleantruefalse
CancelButtonNode--
styles*Object--

*see available styles below

Methods

NameRequired?Description
onDismiss()trueActionSheet gets destroyed

Styles

NameDescription
overlayBoxOverlay wrapper (animated view)
overlayOverlay "clickable" layer
bodyAction Sheet wrapper (box)
titleBoxTitle wrapper (box)
titleTextTitle text
optionOption wrapper (box)
optionTextOption text
cancelButtonCancel button

TODO

  • Add more Action Sheet types
  • Add Gesture Handler to resize action sheet (when it's too long for half a screen)
  • Unit Tests
  • Add icons and subtitles to options

PEER Dependencies

Reanimated

We use Ract Native Reanimated library for animating! Special thanks to @kmagiera for providing it!


Created with ♥ by Selcouth.DIGITAL team

1.2.0

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago