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 : (
+ <>
+
+
+
+
+
+ >
+ )}
);
}