mirror of
				https://github.com/strapi/strapi.git
				synced 2025-10-31 18:08:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			131 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Plugin Menu library
 | |
| 
 | |
| ```js
 | |
| // ...
 | |
| 
 | |
| import PluginLeftMenu from 'components/PluginLeftMenu';
 | |
| 
 | |
| // ...
 | |
| 
 | |
| const Foo = (props) => {
 | |
|   const sections = [
 | |
|     {
 | |
|       name: 'section 1',
 | |
|       items: [
 | |
|         { icon: 'fa-caret-square-o-right', name: 'link 1'},
 | |
|         { icon: 'fa-caret-square-o-right', name: 'link 2'},
 | |
|       ],
 | |
|     },
 | |
|   ];
 | |
| 
 | |
|   return (
 | |
|     <div className={styles.foo}>
 | |
|       <div className="container-fluid">
 | |
|         <div className="row">
 | |
|           <PluginLeftMenu
 | |
|             sections={sections}
 | |
|           />
 | |
|         </div>
 | |
|       </div>
 | |
|     </div>
 | |
|   );
 | |
| }
 | |
| 
 | |
| export default Foo;
 | |
| 
 | |
| // ...
 | |
| ```
 | |
| 
 | |
| ## Usage
 | |
| 
 | |
| | Property | Type |  Required | Description
 | |
| :---| :---| :---| :---
 | |
| | `addCustomSection` | function | no | Allows to add another section after the initial one. |
 | |
| | `basePath` | string | yes | For example the basePath of the route '/plugins/my-plugin/foo/bar' is 'my-plugin/categories' |
 | |
| | `renderCustomLink` | function | no | Allows to override the design and  the behavior of a link |
 | |
| | `sections` | array | yes | Sections of the component menu |
 | |
| 
 | |
| ## Example
 | |
| 
 | |
| ```js
 | |
| // ...
 | |
| 
 | |
| import PluginLeftMenu from 'components/PluginLeftMenu';
 | |
| 
 | |
| // ...
 | |
| 
 | |
| const addCustomSection = (sectionStyles) => (
 | |
|   // You have access to the section styles
 | |
|   <div className={sectionStyles.pluginLeftMenuSection}>
 | |
|     <p>
 | |
|       DOCUMENTATION
 | |
|     </p>
 | |
|     <ul>
 | |
|       <li>
 | |
|         Read more about strapi in our <a href="http://strapi.io/documentation" target="_blank">documentation</a>
 | |
|       </li>
 | |
|     </ul>
 | |
|   </div>
 | |
| )
 | |
| 
 | |
| const renderAddLink = (props, customLinkStyles) => (
 | |
|   <li className={customLinkStyles.pluginLeftMenuLink}>
 | |
|     <div className={`${customLinkStyles.liInnerContainer}`} onClick={this.handleAddLinkClick}>
 | |
|       <div>
 | |
|         <i className={`fa ${props.link.icon}`} />
 | |
|       </div>
 | |
|       <span>{props.link.name}</span>
 | |
|     </div>
 | |
|   </li>
 | |
| )
 | |
| 
 | |
| const renderCustomLink = (props, linkStyles) => {
 | |
|   if (props.link.name === 'bar') return this.renderAddLink(props, linkStyles);
 | |
| 
 | |
|   return (
 | |
|     <li className={linkStyles.pluginLeftMenuLink}>
 | |
|       <NavLink className={linkStyles.link} to={`/plugins/my-plugin/foo/${props.link.name}`} activeClassName={linkStyles.linkActive}>
 | |
|         <div>
 | |
|           <i className={`fa fa-caret-square-o-right`} />
 | |
|         </div>
 | |
|         <div className={styles.contentContainer}>
 | |
|           <span className={spanStyle}>{props.link.name}</span>
 | |
|         </div>
 | |
| 
 | |
|       </NavLink>
 | |
|     </li>
 | |
|   );
 | |
| }
 | |
| 
 | |
| const Foo = (props) => {
 | |
|   const sections = [
 | |
|     {
 | |
|       name: 'section 1',
 | |
|       items: [
 | |
|         { icon: 'fa-caret-square-o-right', name: 'link 1'},
 | |
|         { icon: 'fa-caret-square-o-right', name: 'link 2'},
 | |
|       ],
 | |
|     },
 | |
|   ];
 | |
| 
 | |
|   return (
 | |
|     <div className={styles.foo}>
 | |
|       <div className="container-fluid">
 | |
|         <div className="row">
 | |
|           <PluginLeftMenu
 | |
|             addCustomSection={addCustomSection}
 | |
|             sections={sections}
 | |
|             renderCustomLink={renderCustomLink}
 | |
|             basePath="my-plugins/foo"
 | |
|           />
 | |
|         </div>
 | |
|       </div>
 | |
|     </div>
 | |
|   );
 | |
| }
 | |
| 
 | |
| // ...
 | |
| 
 | |
| export default Foo;
 | |
| ```
 | 
