src/App/menuUtils.ts
import { Auth } from '../redux/mapStoreToProps';
import commonUtils from '../lib/commonUtils';
import { MenuItem } from './menuItems';
import type { AppTemplate } from './AppTemplate';
const continueMenuItem = (menu: MenuItem,
index: number, auth: Auth, view: AppTemplate): JSX.Element | null => {
if (menu.link !== '') return view.makeMenuLink(menu, index);
if (menu.type === 'googleLogin' && !auth.isAuthenticated) return view.googleButtons('login', index);
if (menu.type === 'googleLogout' && auth.isAuthenticated) return view.googleButtons('logout', index);
return null;
};
function menuItem(menu: MenuItem,
index: number, view: AppTemplate): JSX.Element | null {
const userRoles: string[] = commonUtils.getUserRoles();
const { auth } = view.props;
if (menu.name === 'Home' && window.location.pathname === '/') return null;
if (menu.name === 'Admin' && (!auth.isAuthenticated || !auth.user.userType || userRoles.indexOf(auth.user.userType) === -1)) return null;
return continueMenuItem(menu, index, auth, view);
}
export default { continueMenuItem, menuItem };