Render Menu from the backend
Render menu via backend
...
import { fetcher } from 'utils/axios';
// types
import { MenuProps } from 'types/menu';
import { NavItemType } from 'types';
export const endpoints = {
key: 'api/menu',
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?.widget as NavItemType,
menuLoading: isLoading,
menuError: error,
menuValidating: isValidating,
menuEmpty: !isLoading && !data?.length
}),
[data, error, isLoading, isValidating]
);
return memoizedValue;
}
....