JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 20
  • Score
    100M100P100Q44961F
  • License MIT

Fully customizable and dynamic Bottom Menu for React Native.

Package Exports

  • react-native-bottom-menu

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-native-bottom-menu) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

React Native Bottom Menu

Battle Tested ✅

Fully customizable Bottom Menu for React Native

npm version npm Platform - Android and iOS License: MIT styled with prettier

React Native Bottom Menu React Native Bottom Menu

Installation

Add the dependency:

React Native:

npm i react-native-bottom-menu

Peer Dependencies

IMPORTANT! You need install them.
"react": ">= 16.x.x",
"react-native": ">= 0.55.x",
"react-native-androw": ">= 0.0.31",
"react-native-vector-icons": ">= 6.x.x",
"react-native-dynamic-vector-icons": ">= x.x.x"

Basic Usage

You can use any other component rather than Item component. It's all customizable.

import { BottomMenu, Item } from "react-native-bottom-menu";
<BottomMenu>
  <Item
    size={22}
    name="home"
    text="Home"
    type="Octicons"
    onPress={() => {})}
  />
</BottomMenu>

Advanced Usage

You can check the example for the advanced usage

<BottomMenu>
  <Item
    size={22}
    name="home"
    text="Home"
    type="Octicons"
    isActive={this.state.isActive == "home" ? true : false}
    onPress={() => this.setState({ isActive: "home" })}
  />
  <Item
    size={22}
    type="Feather"
    text="Messages"
    name="message-circle"
    isActive={this.state.isActive == "messages" ? true : false}
    onPress={() => this.setState({ isActive: "messages" })}
  />
  <Item
    size={30}
    name="cart"
    text="Cart"
    type="EvilIcons"
    isActive={this.state.isActive == "cart" ? true : false}
    onPress={() => this.setState({ isActive: "cart" })}
  />
  <Item
    size={22}
    name="settings"
    text="Settings"
    type="SimpleLineIcons"
    isActive={this.state.isActive == "settings" ? true : false}
    onPress={() => this.setState({ isActive: "settings" })}
  />
</BottomMenu>

BottomMenu Wrapper with React Hooks as an Example

import React, { useState } from "react";
import { BottomMenu, Item } from "react-native-bottom-menu";

const BottomMenuWrapper = props => {
  const [isActive, setActive] = useState("home");
  return (
    <BottomMenu>
      <Item
        size={22}
        name="home"
        text="Home"
        type="Octicons"
        isActive={isActive == "home" ? true : false}
        onPress={() => setActive("home")}
      />
      <Item
        size={22}
        type="Feather"
        text="Messages"
        name="message-circle"
        isActive={isActive == "messages" ? true : false}
        onPress={() => setActive("messages")}
      />
      <Item
        size={30}
        name="cart"
        text="Cart"
        type="EvilIcons"
        isActive={isActive == "cart" ? true : false}
        onPress={() => setActive("cart")}
      />
      <Item
        size={22}
        name="settings"
        text="Settings"
        type="SimpleLineIcons"
        isActive={isActive == "settings" ? true : false}
        onPress={() => setActive("settings")}
      />
    </BottomMenu>
  );
};

export default BottomMenuWrapper;

Usage

import BottomMenu from "shared-components/BottomMenuWrapper";

<BottomMenu />

ToDos

  • LICENSE
  • Write an article about the lib on Medium

Author

FreakyCoder, kurayogun@gmail.com

License

React Native Bottom Menu Library is available under the MIT license. See the LICENSE file for more info.