diff --git a/services/web/frontend/js/features/review-panel-new/components/review-panel-comment-options.tsx b/services/web/frontend/js/features/review-panel-new/components/review-panel-comment-options.tsx index d0f4fb8f66..eacb1fa134 100644 --- a/services/web/frontend/js/features/review-panel-new/components/review-panel-comment-options.tsx +++ b/services/web/frontend/js/features/review-panel-new/components/review-panel-comment-options.tsx @@ -28,10 +28,15 @@ const ReviewPanelCommentOptions: FC<{ onEdit: () => void onDelete: () => void id: string - belongsToCurrentUser: boolean -}> = ({ onEdit, onDelete, id, belongsToCurrentUser }) => { + canEdit: boolean + canDelete: boolean +}> = ({ onEdit, onDelete, id, canEdit, canDelete }) => { const { t } = useTranslation() + if (!canEdit && !canDelete) { + return null + } + return ( - {belongsToCurrentUser && ( - {t('edit')} + {canEdit && {t('edit')}} + {canDelete && ( + {t('delete')} )} - {t('delete')} } @@ -70,18 +75,20 @@ const ReviewPanelCommentOptions: FC<{ /> - {belongsToCurrentUser && ( + {canEdit && (
  • {t('edit')}
  • )} -
  • - - {t('delete')} - -
  • + {canDelete && ( +
  • + + {t('delete')} + +
  • + )}
    } diff --git a/services/web/frontend/js/features/review-panel-new/components/review-panel-message.tsx b/services/web/frontend/js/features/review-panel-new/components/review-panel-message.tsx index 295633a492..34cb336be9 100644 --- a/services/web/frontend/js/features/review-panel-new/components/review-panel-message.tsx +++ b/services/web/frontend/js/features/review-panel-new/components/review-panel-message.tsx @@ -13,6 +13,7 @@ import { ExpandableContent } from './review-panel-expandable-content' import ReviewPanelDeleteCommentModal from './review-panel-delete-comment-modal' import { useUserContext } from '@/shared/context/user-context' import ReviewPanelEntryUser from './review-panel-entry-user' +import { usePermissionsContext } from '@/features/ide-react/context/permissions-context' export const ReviewPanelMessage: FC<{ message: ReviewPanelCommentThreadMessage @@ -36,6 +37,12 @@ export const ReviewPanelMessage: FC<{ const [deleting, setDeleting] = useState(false) const [content, setContent] = useState(message.content) const user = useUserContext() + const { write, trackedWrite } = usePermissionsContext() + + const isCommentAuthor = user.id === message.user.id + const canEdit = isCommentAuthor + const canResolve = write || (trackedWrite && isCommentAuthor) + const canDelete = write || (trackedWrite && isCommentAuthor) const handleEditOption = useCallback(() => setEditing(true), []) const showDeleteModal = useCallback(() => setDeleting(true), []) @@ -62,7 +69,7 @@ export const ReviewPanelMessage: FC<{
    - {!editing && !isReply && !isThreadResolved && ( + {!editing && !isReply && !isThreadResolved && canResolve && (