import type { IModerationAudit, IUser } from '@rocket.chat/core-typings'; import { Box } from '@rocket.chat/fuselage'; import React from 'react'; import { GenericTableCell, GenericTableRow } from '../../../components/GenericTable'; import UserAvatar from '../../../components/avatar/UserAvatar'; import { useFormatDateAndTime } from '../../../hooks/useFormatDateAndTime'; import ModerationConsoleActions from './ModerationConsoleActions'; export type ModerationConsoleRowProps = { report: IModerationAudit; onClick: (id: IUser['_id']) => void; isDesktopOrLarger: boolean; }; const ModerationConsoleTableRow = ({ report, onClick, isDesktopOrLarger }: ModerationConsoleRowProps): JSX.Element => { const { userId: _id, rooms, name, count, message, username, ts } = report; const roomNames = rooms.map((room) => { if (room.t === 'd') { return room.name || 'Private'; } return room.fname || room.name; }); const formatDateAndTime = useFormatDateAndTime(); const concatenatedRoomNames = roomNames.join(', '); return ( onClick(_id)} onClick={(): void => onClick(_id)} tabIndex={0} role='link' action> {username && ( )} {name || username} {!isDesktopOrLarger && name && ( {' '} {`@${username}`}{' '} )} {isDesktopOrLarger && ( {username} )} {message} {concatenatedRoomNames} {formatDateAndTime(ts)} {count} e.stopPropagation()}> ); }; export default ModerationConsoleTableRow;