It's not perfect, but it's pretty good.
This package provides components to let you nest menu items infinitely deep. The code is an adaption from this package to work with MUI version 5.
Check out the documentation here.
📦 Install
The code is open source, so you can use the library by copying the src/mui-nested-menu
directory to your project (if you'd like to adapt the components) or by installing it via NPM.
$ npm install mui-nested-menu
🛠 Exports
The following items and interfaces are exported from the package:
-
NestedDropdown
- To create menu bar dropdowns.
-
ContextMenu
- For a right-click menu.
-
IconMenuItem
- A menu item which can take start and end icons.
-
NestedMenuItem
- The actual nested menu component.
-
nestedMenuItemsFromObject({(items, isOpen, handleClose)})
- Utility function which returns a list of menu items from a given array of items in the object format you see in the samples. You can then manually put this inside a <Menu />
component.
-
MenuItemData
- An interface for the menuItemsData
prop.
💻 Contributing
Pull requests for [the project](https://github.com/webzep
/mui-nested-menu) are more than welcome. Please make sure to stick to the coding style used throughout the project.
- Clone the project from GitHub - it is a monorepo.
yarn && yarn start
and you should see the docs on localhost:1000
.- Create a new branch
- Make your changes
- Open a pull request
📝 Changelog
Version | Breaking | Changes |
---|
3.0.0 | no | Support for ESM and CJS modules. |
3.1.0 | yes | Make disabled ans SX props available. Fixes typo nesteMenuItemsFromObjectProps to nestedMenuItemsFromObjectProps . |
3.2.0 | no | Provide event and item in callback. |
3.2.1 | no | @mui/material/styles/styled 4 level import fixed |
3.2.2 | no | Documentation updates |