2.1.0 • Published 1 year ago

react-native-side-drawer v2.1.0

Weekly downloads
133
License
MIT
Repository
github
Last release
1 year ago

react-native-side-drawer

The following is taken from App.js in the example dir (blue is the safe area, which would need to be configured as seen in the example - taken on iPhone 13)

Status

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

The below is a simple snippet of usage. It is recommended to use this library in conjunction with safe-area-context-view see React advise on this as well.

For a (near) full example used with SafeAreaContextView please go to the example: App example with SafeAreaContextView

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}
          position={'left'}
          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

Coming soon

  • iOS SafeArea support - Works with SafeAreaContextView with minor adjustments see: example App.js
  • Custom width of drawer and sliding time
  • Right and left drawer
  • Opacity fade of background screen

License

MIT

2.1.0

1 year ago

2.0.0

2 years ago

1.2.9

3 years ago

1.2.8

4 years ago

1.2.7

4 years ago

1.2.6

4 years ago

1.2.5

5 years ago

1.2.4

5 years ago

1.2.3

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.12

5 years ago

1.1.11

5 years ago

1.1.9

5 years ago

1.1.8

5 years ago

1.1.7

5 years ago

1.1.6

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.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago