UNPKG

folding-side-menu

Version:

Side menu that expand on mouse over.

121 lines (103 loc) 3.23 kB
# folding-side-menu Side menu that expand on mouse over. ### Install ```bash npm install folding-side-menu yarn add folding-side-menu ``` ### Usage Here's an example of basic usage: ```tsx import React from 'react' import PaperLabeled from 'folding-side-menu' function MyApp() { const menuItems: MenuItem[] = [ { text: 'Main', path: '/Settings', icon: <HomeIcon data-testid="homeIcon" fontSize="large" />, }, { text: 'Reports', path: '/Settings', icon: <ReportIcon fontSize="large" />, }, { text: 'Settings', path: '/Settings', icon: <SettingsIcon fontSize="large" />, }, ] return ( <SideMenu menuItems={menuItems} /> ); } ``` Example of ussage integrated wit react-router-doom ```tsx import React from 'react' import PaperLabeled from 'folding-side-menu' import { Link } from 'react-router-dom' function MyApp() { const menuItems: MenuItem[] = [ { text: 'Main', icon: <HomeIcon fontSize="large" />, rootingElement: ({ children }: {children: React.ReactElement}) => ( <Link className={classes.linkText} to="/"> {children} </Link> ), }, { text: 'Reports', icon: <ReportIcon fontSize="large" />, rootingElement: ({ children }: {children: React.ReactElement}) => ( <Link className={classes.linkText} to="/Report"> {children} </Link> ), }, { text: 'Settings', icon: <SettingsIcon fontSize="large" />, rootingElement: ({ children }: {children: React.ReactElement}) => ( <Link className={classes.linkText} to="/Settings"> {children} </Link> ), }, ] return ( <SideMenu menuItems={menuItems} /> <div className={classes.content}> <Switch> <Route exact path="/" component={Home} /> <Route exact path="/Report" component={Report} /> <Route exact path="/Settings" component={Settings} /> </Switch> </div> ); } ``` ![alt text](https://raw.githubusercontent.com/gabimig/FoldingSideMenu/master/collapsed.PNG) ![alt text](https://raw.githubusercontent.com/gabimig/FoldingSideMenu/master/expanded.PNG) ## User guide ### PaperLabeled Displays a side menu that collapse and expand when mouse over #### props | Prop name | Type | Description | Default value | | ------------- | ------------- | ------------- | ------------- | | menuItems | MenuItem[] | List of items in the menu | [] | | openMenuCSS | CSSProperties | CSS props of the menu when is open. | undefined | | closeMenuCSS | CSSProperties | CSS props of the menu when is closed. | undefined | | menuItemCSS | CSSProperties | CSS props of the menu items. | undefined | | topMarginItems | number? | margin-top of the list of items. | undefined | ```tsx type MenuItem = { text: string, path?: string, icon?: React.ReactElement, rootingElement?: ({ children }: {children: React.ReactElement}) => React.ReactElement } ```