From 4aa5d7e326f4c986369c5914a939694b30e23ba2 Mon Sep 17 00:00:00 2001 From: Philip Okugbe <16838612+Philipinho@users.noreply.github.com> Date: Wed, 9 Apr 2025 15:42:29 +0100 Subject: [PATCH] hide history action menu for can-view role (#1001) --- .../page-history/components/history-list.tsx | 46 +++++++++++++------ 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/apps/client/src/features/page-history/components/history-list.tsx b/apps/client/src/features/page-history/components/history-list.tsx index c21fb3b7..af178eac 100644 --- a/apps/client/src/features/page-history/components/history-list.tsx +++ b/apps/client/src/features/page-history/components/history-list.tsx @@ -17,6 +17,13 @@ import { import { modals } from "@mantine/modals"; import { notifications } from "@mantine/notifications"; import { useTranslation } from "react-i18next"; +import { useSpaceAbility } from "@/features/space/permissions/use-space-ability.ts"; +import { useSpaceQuery } from "@/features/space/queries/space-query.ts"; +import { useParams } from "react-router-dom"; +import { + SpaceCaslAction, + SpaceCaslSubject, +} from "@/features/space/permissions/permissions.type.ts"; interface Props { pageId: string; @@ -36,6 +43,11 @@ function HistoryList({ pageId }: Props) { const [mainEditorTitle] = useAtom(titleEditorAtom); const [, setHistoryModalOpen] = useAtom(historyAtoms); + const { spaceSlug } = useParams(); + const { data: space } = useSpaceQuery(spaceSlug); + const spaceRules = space?.membership?.permissions; + const spaceAbility = useSpaceAbility(spaceRules); + const confirmModal = () => modals.openConfirmModal({ title: t("Please confirm your action"), @@ -103,20 +115,26 @@ function HistoryList({ pageId }: Props) { ))} - - - - - - + {spaceAbility.cannot( + SpaceCaslAction.Manage, + SpaceCaslSubject.Page, + ) ? null : ( + <> + + + + + + + )} ); }