From ab82ed4d282bf222f220e6d602f9f4fa9812e9ee Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Tue, 5 Jul 2022 15:53:08 +0300 Subject: [PATCH] Add admin page to menu --- app/components/layout/Menu.tsx | 13 ++++++++++++- app/components/layout/nav-items.json | 5 +++++ public/img/layout/admin.avif | Bin 0 -> 3940 bytes public/img/layout/admin.png | Bin 0 -> 28831 bytes 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 public/img/layout/admin.avif create mode 100644 public/img/layout/admin.png diff --git a/app/components/layout/Menu.tsx b/app/components/layout/Menu.tsx index 67267e9d0..dc5783180 100644 --- a/app/components/layout/Menu.tsx +++ b/app/components/layout/Menu.tsx @@ -3,6 +3,8 @@ 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"; export function Menu({ expanded, @@ -11,15 +13,24 @@ export function Menu({ expanded: boolean; closeMenu: () => void; }) { + const user = useUser(); const isMounted = useIsMounted(); // 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 (