πββοΈ Made by @abhijithvijayan
β€οΈ it? βοΈ it on GitHub or Tweet about it.
https://codesandbox.io/s/react-minimal-side-navigation-example-y299d
Ensure you have Node.js 10 or later installed. Then run the following:
# via npm
npm install react-minimal-side-navigation
# or yarn
yarn add react-minimal-side-navigation
import React from 'react';
import {Navigation} from 'react-minimal-side-navigation';
import 'react-minimal-side-navigation/lib/ReactMinimalSideNavigation.css';
function App() {
return (
<>
<Navigation
// you can use your own router's api to get pathname
activeItemId="/management/members"
onSelect={({itemId}) => {
// maybe push to the route
}}
items={[
{
title: 'Dashboard',
itemId: '/dashboard',
// you can use your own custom Icon component as well
// icon is optional
elemBefore: () => <Icon name="inbox" />,
},
{
title: 'Management',
itemId: '/management',
elemBefore: () => <Icon name="users" />,
subNav: [
{
title: 'Projects',
itemId: '/management/projects',
// Requires v1.9.1+ (https://github.com/abhijithvijayan/react-minimal-side-navigation/issues/13)
elemBefore: () => <Icon name="cloud-snow" />,
},
{
title: 'Members',
itemId: '/management/members',
elemBefore: () => <Icon name="coffee" />,
},
],
},
{
title: 'Another Item',
itemId: '/another',
subNav: [
{
title: 'Teams',
itemId: '/management/teams',
},
],
},
]}
/>
</>
);
}
Type: array
Navigation items to render.
Type: string
Currently selected item id.
Type: function
Called when item is clicked.
Looking to contribute? Look for the Good First Issue label.
Please file an issue here for bugs, missing documentation, or unexpected behavior.
- Shared Eslint & Prettier Configuration -
@abhijithvijayan/eslint-config
- Shared TypeScript Configuration -
@abhijithvijayan/tsconfig
MIT Β© Abhijith Vijayan