import clsx from "clsx"; import { Link } from "@remix-run/react"; import navItems from "./nav-items.json"; import { Image } from "../Image"; import { useIsMounted } from "~/hooks/useIsMounted"; import { canPerformAdminActions } from "~/permissions"; import { useUser } from "~/modules/auth"; import { useTranslation } from "react-i18next"; export function Menu({ expanded, closeMenu, }: { expanded: boolean; closeMenu: () => void; }) { const user = useUser(); const isMounted = useIsMounted(); const { t } = useTranslation(); // without this menu is initially visible due to SSR and not knowing user screen width on server (probably) if (!isMounted) return null; const visibleNavItems = navItems.filter((navItem) => { if (navItem.name === "admin") { return canPerformAdminActions(user); } return true; }); return ( ); }