Skip to content

Simple & lightweight customisable menu drawer component

License

Notifications You must be signed in to change notification settings

sdattatri/react-native-menu

 
 

Repository files navigation

Item

react-native-side-drawer

Package version Make a pull request License npm downloads code style: prettier CircleCI Greenkeeper badge Known Vulnerabilities CodeFactor

Package Quality

Simple & lightweight side menu drawer

Contents

Install

yarn add react-native-side-drawer

OR

npm install react-native-side-drawer

Usage

import React from 'react'
import { View, Text, StyleSheet, TouchableOpacity } from 'react-native'
import MenuDrawer from 'react-native-side-drawer'

class Example extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      open: false
    };
  }

  toggleOpen = () => {
    this.setState({ open: !this.state.open });
  };

  drawerContent = () => {
    return (
      <TouchableOpacity onPress={this.toggleOpen} style={styles.animatedBox}>
        <Text>Close</Text>
      </TouchableOpacity>
    );
  };

  render() {
    return (
      <View style={styles.container}>
        <MenuDrawer 
          open={this.state.open} 
          drawerContent={this.drawerContent()}
          drawerPercentage={45}
          animationTime={250}
          overlay={true}
          opacity={0.4}
        >
          <TouchableOpacity onPress={this.toggleOpen} style={styles.body}>
            <Text>Open</Text>
          </TouchableOpacity>
        </MenuDrawer>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: "#fff",
    alignItems: "center",
    justifyContent: "center",
    marginTop: 30,
    zIndex: 0
  },
  animatedBox: {
    flex: 1,
    backgroundColor: "#38C8EC",
    padding: 10
  },
  body: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
    backgroundColor: '#F04812'
  }
})

Props

Property Description Type Default Value
open Value toggling open and close of drawer Boolean false (closed)
drawerContent Drawer contents React.Component Text component: Close
drawerPercentage Value between 0 - 100, depicting the percentage of the screen the drawer will open Integer 45
animationTime Value depicting the time (in ms) the menu will slide open & close Integer 200
overlay Value toggling menu overlay or push. When overlay is true, the menu will overlay the background screen. When overlay is false, the menu will push the background screen to the side Boolean true
opacity Value between 0-1 for the opacity fade of background when the menu is open Float 0.4
position Value for the drawer to be left or right String left

Coming soon

  • iOS SafeArea support
  • Custom width of drawer and sliding time
  • Opacity fade of background screen

License

MIT

About

Simple & lightweight customisable menu drawer component

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%