import * as React from 'react'; import { FormattedMessage } from 'react-intl'; import TetherComponent from 'react-tether'; import Checkmark16 from '../../../../../icon/line/Checkmark16'; import DeleteConfirmation from '../../common/delete-confirmation'; import Media from '../../../../../components/media'; import Pencil16 from '../../../../../icon/line/Pencil16'; import Trash16 from '../../../../../icon/line/Trash16'; import X16 from '../../../../../icon/fill/X16'; import { MenuItem } from '../../../../../components/menu'; import { ACTIVITY_TARGETS } from '../../../../common/interactionTargets'; import { COMMENT_STATUS_OPEN, COMMENT_STATUS_RESOLVED } from '../../../../../constants'; import messages from '../messages'; import type { FeedItemStatus } from '../../../../../common/types/feed'; import './BaseCommentMenu.scss'; export interface BaseCommentMenuProps { canDelete: boolean; canEdit: boolean; canResolve: boolean; handleDeleteCancel: () => void; handleDeleteClick: () => void; handleDeleteConfirm: () => void; handleEditClick: () => void; handleMenuClose: () => void; handleStatusUpdate: (selectedStatus: FeedItemStatus) => void; isConfirmingDelete: boolean; isResolved: boolean; onSelect: (isSelected: boolean) => void; } export const BaseCommentMenu = ({ canDelete, canEdit, canResolve, handleDeleteCancel, handleDeleteClick, handleDeleteConfirm, handleEditClick, handleMenuClose, handleStatusUpdate, isConfirmingDelete, isResolved, onSelect, }: BaseCommentMenuProps) => { return ( onSelect(true), }} isDisabled={isConfirmingDelete} menuProps={{ 'data-resin-component': ACTIVITY_TARGETS.COMMENT_OPTIONS, }} > {canResolve && isResolved && ( handleStatusUpdate(COMMENT_STATUS_OPEN)} > )} {canResolve && !isResolved && ( handleStatusUpdate(COMMENT_STATUS_RESOLVED)} > )} {canEdit && ( )} {canDelete && ( )} {isConfirmingDelete && ( )} ); };