Popup menu component for React Native
Go to file
Martin Bielik 1e08e80d83 placement, preferredPlacement, popover refactoring 2017-12-11 11:40:05 +01:00
.github add issue template 2017-03-14 10:02:25 +01:00
__mocks__ configurable touchable components, resolved #16 2016-12-02 14:31:12 +01:00
__tests__ popover renderer 2017-12-07 16:46:38 +01:00
doc placement, preferredPlacement, popover refactoring 2017-12-11 11:40:05 +01:00
examples placement, preferredPlacement, popover refactoring 2017-12-11 11:40:05 +01:00
src placement, preferredPlacement, popover refactoring 2017-12-11 11:40:05 +01:00
.babelrc initial version 2016-05-16 16:54:39 +02:00
.eslintignore linting rules for tests 2016-05-17 13:38:25 +02:00
.eslintrc fix linting 2017-10-31 22:52:31 +01:00
.gitignore jasmine reporters 2016-06-07 14:52:13 +02:00
.npmignore updated documentation 2016-11-23 13:33:54 +01:00
Jenkinsfile jenkins dev mail, refined pipeline 2016-06-08 13:50:39 +02:00
LICENSE LICENSE: add title 2017-11-04 12:59:36 +00:00
README.md updated demo gif, bigger fonts in demo examples 2017-12-08 11:26:28 +01:00
android.demo-popover.gif popover demo gif 2017-12-08 10:52:42 +01:00
android.demo.gif updated demo gif, bigger fonts in demo examples 2017-12-08 11:26:28 +01:00
package.json release 0.9.0 2017-11-04 18:18:20 +01:00
setup-jasmine-env.js jasmine reporters 2016-06-07 14:52:13 +02:00

README.md

react-native-popup-menu

Extensible popup menu component for React Native for Android, iOS and (unofficially) UWP.

Features:

  • Simple to use popup/context menu
  • Multiple modes: animated, not animated or slide in from bottom
  • By default opening and closing animations
  • Optional back button handling
  • Easy styling
  • Customizable on various levels - menu options, positioning, animations
  • Can work as controlled as well as uncontrolled component
  • Different lifecycle hooks
Context Menu, Slide-in Menu Popover
Popup menu demo Popup menu demo

Installation

npm install react-native-popup-menu --save

If you are using older RN versions check our compatibility table.

Basic Usage

Wrap your application inside MenuContext and then simply use Menu component where you need it. Below you can find a simple example.

For more detailed documentation check API.

// your entry point
import { MenuContext } from 'react-native-popup-menu';

export const App = () => (
  <MenuContext>
    <YourApp />
  </MenuContext>
);

// somewhere in your app
import {
  Menu,
  MenuOptions,
  MenuOption,
  MenuTrigger,
} from 'react-native-popup-menu';

export const YourComponent = () => (
  <View>
    <Text>Hello world!</Text>
    <Menu>
      <MenuTrigger text='Select action' />
      <MenuOptions>
        <MenuOption onSelect={() => alert(`Save`)} text='Save' />
        <MenuOption onSelect={() => alert(`Delete`)} >
          <Text style={{color: 'red'}}>Delete</Text>
        </MenuOption>
        <MenuOption onSelect={() => alert(`Not called`)} disabled={true} text='Disabled' />
      </MenuOptions>
    </Menu>
  </View>
);

Documentation

Contributing

Contributions are welcome! Just open an issues with any idea or pull-request if it is no-brainer. Make sure all tests and linting rules pass.

React Native Compatibility

We keep compatibility on best effort basis.

popup-menu version min RN version
0.9 0.40
0.8 0.38
0.7 0.18