Remove menu render via backend
Remove menu via backend
In the Berry React admin, a few widget menus (i.e., Statistics, Data, and Chart) load from our mock API (GitHub repository). If you want to remove it from your admin panel, follow the steps below and remove/edit the suggested line of code.
Delete the menu-items file
widget.tsx[src/menu-items]Open file
src/layout/MainLayout/MenuList/index.tsxand edit the line of code.
Form:
import { memo, useLayoutEffect, useState } from 'react';
...
import menuItem from 'menu-items';
import { useGetMenu, useGetMenuMaster } from 'api/menu';To:
import { memo, useState } from 'react';
...
import menuItems from 'menu-items';
import { useGetMenuMaster } from 'api/menu';Open file
src/layout/MainLayout/MenuList/index.tsxand remove the line of code.
import { Menu } from 'menu-items/widget'
const MenuList = () => {
...
const { menuLoading } = useGetMenu();
...
const [menuItems, setMenuItems] = useState<{ items: NavItemType[] }>({ items: [] });
let widgetMenu = Menu();
useLayoutEffect(() => {
const isFound = menuItem.items.some((element) => {
if (element.id === 'group-widget') {
return true;
}
return false;
});
if (menuLoading) {
menuItem.items.splice(1, 0, widgetMenu);
setMenuItems({ items: [...menuItem.items] });
} else if (!menuLoading && widgetMenu?.id !== undefined && !isFound) {
menuItem.items.splice(1, 1, widgetMenu);
setMenuItems({ items: [...menuItem.items] });
} else {
setMenuItems({ items: [...menuItem.items] });
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [menuLoading]);
}Open file
src\api\menu.tsand edit the line of code.
From:
import { MenuProps } from 'types/menu';
import { NavItemType } from 'types';To:
import { MenuProps } from 'types/menu';Open the file
src\api\menu.tsand remove the code below.
import { fetcher } from 'utils/axios';
export const endpoints = {
...
widget: '/widget' // server URL
};
export function useGetMenu() {
const { data, isLoading, error, isValidating } = useSWR(endpoints.key + endpoints.widget, fetcher, {
revalidateIfStale: false,
revalidateOnFocus: false,
revalidateOnReconnect: false
});
const memoizedValue = useMemo(
() => ({
menu: data?.widgetas NavItemType,
menuLoading: isLoading,
menuError: error,
menuValidating: isValidating,
menuEmpty: !isLoading && !data?.length
}),
[data, error, isLoading, isValidating]
);
return memoizedValue;
}And in the Berry React admin, a few widget menus (i.e. Statistics, Data, and Chart) load from our mock API (GitHub repository). If you want to remove it from your admin panel, follow the steps below and remove/edit the suggested line of code.
Delete the menu-items file
widget.jsx[src/menu-items]Open file
src/layout/MainLayout/MenuList/index.jsxand edit the line of code.
Form:
import { memo, useLayoutEffect, useState } from 'react';
...
import menuItem from 'menu-items';
import { useGetMenu, useGetMenuMaster } from 'api/menu';To:
import { memo, useState } from 'react';
...
import menuItems from 'menu-items';
import { useGetMenuMaster } from 'api/menu';Open file
src/layout/MainLayout/MenuList/index.jsxand remove the line of code.
import { Menu } from 'menu-items/widget'
const MenuList = () => {
...
const { menuLoading } = useGetMenu();
...
const [menuItems, setMenuItems] = useState<{ items: NavItemType[] }>({ items: [] });
let widgetMenu = Menu();
useLayoutEffect(() => {
const isFound = menuItem.items.some((element) => {
if (element.id === 'group-widget') {
return true;
}
return false;
});
if (menuLoading) {
menuItem.items.splice(1, 0, widgetMenu);
setMenuItems({ items: [...menuItem.items] });
} else if (!menuLoading && widgetMenu?.id !== undefined && !isFound) {
menuItem.items.splice(1, 1, widgetMenu);
setMenuItems({ items: [...menuItem.items] });
} else {
setMenuItems({ items: [...menuItem.items] });
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [menuLoading]);
}Open file
src\api\menu.jsand edit below line of code.
From:
import { MenuProps } from 'types/menu';
import { NavItemType } from 'types';To:
import { MenuProps } from 'types/menu';Open the file
src\api\menu.jsand remove the code below.
import { fetcher } from 'utils/axios';
export const endpoints = {
...
widget: '/widget' // server URL
};
export function useGetMenu() {
const { data, isLoading, error, isValidating } = useSWR(endpoints.key + endpoints.widget, fetcher, {
revalidateIfStale: false,
revalidateOnFocus: false,
revalidateOnReconnect: false
});
const memoizedValue = useMemo(
() => ({
menu: data?.widgetas NavItemType,
menuLoading: isLoading,
menuError: error,
menuValidating: isValidating,
menuEmpty: !isLoading && !data?.length
}),
[data, error, isLoading, isValidating]
);
return memoizedValue;
}And in the Berry React admin, a few widget menus (i.e. Statistics, Data, and Chart) load from our mock API (GitHub repository). If you want to remove it from your admin panel, follow the steps below and remove/edit the suggested line of code.
Delete the menu-items file
widget.tsx[src/menu-items]Open file
src/layout/MainLayout/MenuList/index.tsxand edit the line of code.
Form:
import { memo, useLayoutEffect, useState } from 'react';
...
import menuItem from 'menu-items';
import { useGetMenu, useGetMenuMaster } from 'api/menu';To:
import { memo, useState } from 'react';
...
import menuItems from 'menu-items';
import { useGetMenuMaster } from 'api/menu';Open file
src/layout/MainLayout/MenuList/index.tsxand remove the below line of code.
import { Menu } from 'menu-items/widget'
const MenuList = () => {
...
const { menuLoading } = useGetMenu();
...
const [menuItems, setMenuItems] = useState<{ items: NavItemType[] }>({ items: [] });
let widgetMenu = Menu();
useLayoutEffect(() => {
const isFound = menuItem.items.some((element) => {
if (element.id === 'group-widget') {
return true;
}
return false;
});
if (menuLoading) {
menuItem.items.splice(1, 0, widgetMenu);
setMenuItems({ items: [...menuItem.items] });
} else if (!menuLoading && widgetMenu?.id !== undefined && !isFound) {
menuItem.items.splice(1, 1, widgetMenu);
setMenuItems({ items: [...menuItem.items] });
} else {
setMenuItems({ items: [...menuItem.items] });
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [menuLoading]);
}Open file
src\api\menu.tsand edit below line of code.
From:
import { MenuProps } from 'types/menu';
import { NavItemType } from 'types';To:
import { MenuProps } from 'types/menu';Open the file
src\api\menu.tsand remove the code below.
import { fetcher } from 'utils/axios';
export const endpoints = {
...
widget: '/widget' // server URL
};
export function useGetMenu() {
const { data, isLoading, error, isValidating } = useSWR(endpoints.key + endpoints.widget, fetcher, {
revalidateIfStale: false,
revalidateOnFocus: false,
revalidateOnReconnect: false
});
const memoizedValue = useMemo(
() => ({
menu: data?.widgetas NavItemType,
menuLoading: isLoading,
menuError: error,
menuValidating: isValidating,
menuEmpty: !isLoading && !data?.length
}),
[data, error, isLoading, isValidating]
);
return memoizedValue;
}In the Berry React admin, a few widget menus (i.e. Statistics, Data, and Chart) load from our mock API (GitHub repository). If you want to remove it from your admin panel, follow the steps below and remove/edit the suggested line of code.
Delete the menu-items file
widget.jsx[src/menu-items]Open file
src/layout/MainLayout/MenuList/index.jsxand edit the line of code.
Form:
import { memo, useLayoutEffect, useState } from 'react';
...
import menuItem from 'menu-items';
import { useGetMenu, useGetMenuMaster } from 'api/menu';To:
import { memo, useState } from 'react';
...
import menuItems from 'menu-items';
import { useGetMenuMaster } from 'api/menu';Open file
src/layout/MainLayout/MenuList/index.jsxand remove the below line of code.
import { Menu } from 'menu-items/widget'
const MenuList = () => {
...
const { menuLoading } = useGetMenu();
...
const [menuItems, setMenuItems] = useState<{ items: NavItemType[] }>({ items: [] });
let widgetMenu = Menu();
useLayoutEffect(() => {
const isFound = menuItem.items.some((element) => {
if (element.id === 'group-widget') {
return true;
}
return false;
});
if (menuLoading) {
menuItem.items.splice(1, 0, widgetMenu);
setMenuItems({ items: [...menuItem.items] });
} else if (!menuLoading && widgetMenu?.id !== undefined && !isFound) {
menuItem.items.splice(1, 1, widgetMenu);
setMenuItems({ items: [...menuItem.items] });
} else {
setMenuItems({ items: [...menuItem.items] });
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [menuLoading]);
}Open file
src\api\menu.jsand edit below line of code.
From:
import { MenuProps } from 'types/menu';
import { NavItemType } from 'types';To:
import { MenuProps } from 'types/menu';Open the file
src\api\menu.jsand remove the code below.
import { fetcher } from 'utils/axios';
export const endpoints = {
...
widget: '/widget' // server URL
};
export function useGetMenu() {
const { data, isLoading, error, isValidating } = useSWR(endpoints.key + endpoints.widget, fetcher, {
revalidateIfStale: false,
revalidateOnFocus: false,
revalidateOnReconnect: false
});
const memoizedValue = useMemo(
() => ({
menu: data?.widgetas NavItemType,
menuLoading: isLoading,
menuError: error,
menuValidating: isValidating,
menuEmpty: !isLoading && !data?.length
}),
[data, error, isLoading, isValidating]
);
return memoizedValue;
}Last updated
Was this helpful?