# Menu from the backend

Berry is already loading few menus from backend for sample purpose. You can refer following area to check how its working:

1. &#x20;Open the file menu.ts *(src/store/slices/menu.ts)*, and check API URL in the getMenu function.

`const response = await axios.get(`**`'/api/menu/widget'`**`);`

2. Open the file App.tsx *(src/App.tsx),* and check the below code of the line.

<pre class="language-typescript"><code class="lang-typescript">import { useEffect, useState } from 'react';

import Loader from 'ui-component/Loader';

import { dispatch } from 'store';
import { getMenu } from 'store/slices/menu';

const App = () => {
    ...
<strong>    const [loading, setLoading] = useState&#x3C;boolean>(false);
</strong>
    useEffect(() => {
        dispatch(getMenu()).then(() => {
            setLoading(true);
        });
    }, []);

    if (!loading) return &#x3C;Loader />;
    ...
}

</code></pre>

3. Check code in *src/menu-items/*&#x77;idget.tsx. Icons and locale have been set according to API response in that.
4. Open the file *src/layout/MainLayout/MenuList/index.tsx*, and check the below code of the line.

```javascript
import { memo, useEffect } from 'react';

import { Menu } from 'menu-items/menu';

const MenuList = () => {
    ...
    useEffect(() => {
        handlerMenuItem();
        // eslint-disable-next-line
    }, []);

    let getMenu = Menu();
    const handlerMenuItem = () => {
        const isFound = menuItem.items.some((element) => {
            // use root parent id according to response instead of 'menu'
            if (element.id === 'menu') {
                return true;
            }
            return false;
        });

        if (getMenu?.id !== undefined && !isFound) {
            menuItem.items.splice(1, 0, getMenu);
        }
    };
    ...
}
```
