# RootAppMenuMixin

Auto-generated from the @jbrowse/mobx-state-tree model in the source — see the [developer guide](https://jbrowse.org/jb2/docs/developer_guide/) for concepts. Built into JBrowse core. [View source](https://github.com/GMOD/jbrowse-components/blob/main/packages/app-core/src/RootMenu/index.ts).

Adds actions to the root model that let plugins add menus and menu items to
the app bar.

## Volatiles

| Member | Description |
| --- | --- |
| **mutableMenuActions**<br><code>MenuAction[]</code> |  |

## Actions

| Member | Description |
| --- | --- |
| **appendMenu**<br><code>(menuName: string) =&gt; void</code> | Add a top-level menu, if the app bar does not already have one with this name. |
| **insertMenu**<br><code>(menuName: string, position: number) =&gt; void</code> | Insert a top-level menu, if the app bar does not already have one with this name. |
| **appendToMenu**<br><code>(menuName: string, menuItem: MenuItem) =&gt; void</code> | Add a menu item to a top-level menu, creating the menu if it does not exist. |
| **insertInMenu**<br><code>(menuName: string, menuItem: MenuItem, position: number) =&gt; void</code> | Insert a menu item into a top-level menu, creating the menu if it does not exist. |
| **appendToSubMenu**<br><code>(menuPath: string[], menuItem: MenuItem) =&gt; void</code> | Add a menu item to a sub-menu, creating any part of the path that does not exist. |
| **insertInSubMenu**<br><code>(menuPath: string[], menuItem: MenuItem, position: number) =&gt; void</code> | Insert a menu item into a sub-menu, creating any part of the path that does not exist. |

