import { ActionIcon, Menu, Tooltip } from "@mantine/core"; import { IconDots, IconEdit, IconTrash, IconCircleCheck, IconCircleCheckFilled, } from "@tabler/icons-react"; import { modals } from "@mantine/modals"; import { useTranslation } from "react-i18next"; import { useHasFeature } from "@/ee/hooks/use-feature"; import { Feature } from "@/ee/features"; import { useUpgradeLabel } from "@/ee/hooks/use-upgrade-label"; type CommentMenuProps = { onEditComment: () => void; onDeleteComment: () => void; onResolveComment?: () => void; canEdit?: boolean; isResolved?: boolean; isParentComment?: boolean; }; function CommentMenu({ onEditComment, onDeleteComment, onResolveComment, canEdit = true, isResolved = false, isParentComment = false, }: CommentMenuProps) { const { t } = useTranslation(); const canResolve = useHasFeature(Feature.COMMENT_RESOLUTION); const upgradeLabel = useUpgradeLabel(); //@ts-ignore const openDeleteModal = () => modals.openConfirmModal({ title: t("Are you sure you want to delete this comment?"), centered: true, labels: { confirm: t("Delete"), cancel: t("Cancel") }, confirmProps: { color: "red" }, onConfirm: onDeleteComment, }); return ( {canEdit && ( } > {t("Edit comment")} )} {isParentComment && (canResolve ? ( ) : ( ) } > {isResolved ? t("Re-open comment") : t("Resolve comment")} ) : ( }> {t("Resolve comment")} ))} } onClick={openDeleteModal} > {t("Delete comment")} ); } export default CommentMenu;