diff --git a/web/app/[workspaceSlug]/(projects)/browse/[workItem]/header.tsx b/web/app/[workspaceSlug]/(projects)/browse/[workItem]/header.tsx index 634d1b16afc..ec0d8b03a1d 100644 --- a/web/app/[workspaceSlug]/(projects)/browse/[workItem]/header.tsx +++ b/web/app/[workspaceSlug]/(projects)/browse/[workItem]/header.tsx @@ -17,9 +17,8 @@ export const ProjectIssueDetailsHeader = observer(() => { // router const router = useAppRouter(); const { workspaceSlug, workItem } = useParams(); - // plane hooks - const { t } = useTranslation(); // store hooks + const { t } = useTranslation(); const { getProjectById, loader } = useProject(); const { issue: { getIssueById, getIssueIdByIdentifier }, diff --git a/web/core/components/issues/delete-issue-modal.tsx b/web/core/components/issues/delete-issue-modal.tsx index 233eb47982d..8f7265a1693 100644 --- a/web/core/components/issues/delete-issue-modal.tsx +++ b/web/core/components/issues/delete-issue-modal.tsx @@ -1,6 +1,8 @@ "use client"; import { useEffect, useState } from "react"; +import { observer } from "mobx-react"; +import { useParams } from "next/navigation"; // types import { PROJECT_ERROR_MESSAGES, EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; @@ -22,11 +24,12 @@ type Props = { isEpic?: boolean; }; -export const DeleteIssueModal: React.FC = (props) => { +export const DeleteIssueModal: React.FC = observer((props) => { const { dataId, data, isOpen, handleClose, isSubIssue = false, onSubmit, isEpic = false } = props; // states const [isDeleting, setIsDeleting] = useState(false); // store hooks + const { workspaceSlug } = useParams(); const { issueMap } = useIssues(); const { getProjectById } = useProject(); const { allowPermissions } = useUserPermissions(); @@ -34,9 +37,6 @@ export const DeleteIssueModal: React.FC = (props) => { const { data: currentUser } = useUser(); - // derived values - const canPerformProjectAdminActions = allowPermissions([EUserPermissions.ADMIN], EUserPermissionsLevel.PROJECT); - useEffect(() => { setIsDeleting(false); }, [isOpen]); @@ -47,6 +47,14 @@ export const DeleteIssueModal: React.FC = (props) => { const issue = data ? data : issueMap[dataId!]; const projectDetails = getProjectById(issue?.project_id); const isIssueCreator = issue?.created_by === currentUser?.id; + + const canPerformProjectAdminActions = allowPermissions( + [EUserPermissions.ADMIN], + EUserPermissionsLevel.PROJECT, + workspaceSlug?.toString(), + projectDetails?.id + ); + const authorized = isIssueCreator || canPerformProjectAdminActions; const onClose = () => { @@ -114,4 +122,4 @@ export const DeleteIssueModal: React.FC = (props) => { } /> ); -}; +});