# **Wahlu**

Post once, everywhere. Schedule and publish to all your social media channels from one place. Save hours. Grow your status. Pay less. [Try it now!](https://wahlu.com?utm_source=mui-nested-menu&utm_medium=github&utm_campaign=readme)

[![Wahlu - Post once, everywhere](./apps/docs/public/wahlu-banner.png)](https://wahlu.com?utm_source=mui-nested-menu&utm_medium=github&utm_campaign=readme)

--------------------------------------------------------------------------------

# 🪆 Mui Nested Menu

## 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](material-ui-nested-menu-item) to work with [MUI version 5/6](https://mui.com).

[Check out the documentation here.](https://mui-nested-menu.vercel.app/)

## 📦 Install

The code is [open source](https://github.com/steviebuilds/mui-nested-menu), 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/steviebuilds
/mui-nested-menu) are more than welcome. Please make sure to stick to the coding style used throughout the project.

1. Clone the project from GitHub - it is a monorepo.
2. `yarn && yarn start` and you should see the docs on `localhost:1000`.
3. Create a new branch
4. Make your changes
5. 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](https://github.com/steviebuilds/mui-nested-menu/pull/32)
3.2.2   | no           | Documentation updates
3.4.0   | no           | Fixes disabled prop. Adds delay prop to NestedMenuItem.
4.0.0   | probably not | Upgrade to mui 6.3.1.
4.0.1   | probably not | Add React 19 to peer dependencies.
4.0.2   | no           | Upgrade to MUI 7 and fix TypeScript compatibility.
