import { isOmnichannelRoom } from '@rocket.chat/core-typings'; import { SidebarItemIcon } from '@rocket.chat/fuselage'; import { escapeHTML } from '@rocket.chat/tools'; import { RoomAvatar } from '@rocket.chat/ui-avatar'; import { useUserId } from '@rocket.chat/ui-contexts'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; import SidePanelOmnichannelBadges from './SidePanelOmnichannelBadges'; import { OmnichannelRoomIcon } from '../../../../components/RoomIcon/OmnichannelRoomIcon'; import type { LivechatInquiryLocalRecord } from '../../../../hooks/useLivechatInquiryStore'; import { roomCoordinator } from '../../../../lib/rooms/roomCoordinator'; import { isIOsDevice } from '../../../../lib/utils/isIOsDevice'; import { normalizeMessagePreview } from '../../../../lib/utils/normalizeMessagePreview/normalizeMessagePreview'; import { useOmnichannelPriorities } from '../../../omnichannel/hooks/useOmnichannelPriorities'; import SidePanelItem from '../SidepanelItem'; import RoomMenu from '../SidepanelItem/RoomMenu'; export type InquireSidePanelItemProps = { room: LivechatInquiryLocalRecord; openedRoom?: string; }; const InquireSidePanelItem = ({ room, openedRoom, ...props }: InquireSidePanelItemProps) => { const { t } = useTranslation(); const isAnonymous = !useUserId(); const highlighted = Boolean(room.alert); const { alert, rid, t: type } = room; const time = 'lastMessage' in room ? room.lastMessage?.ts : undefined; const message = room.lastMessage && `${escapeHTML(room.lastMessage.u.name || room.lastMessage.u.username)}: ${normalizeMessagePreview(room.lastMessage, t)}`; const title = roomCoordinator.getRoomName(room.t, room) || ''; const href = roomCoordinator.getRouteLink(room.t, room) || ''; const badges = <>{isOmnichannelRoom(room) && }; const isQueued = room.status === 'queued'; const { enabled: isPriorityEnabled } = useOmnichannelPriorities(); const menu = !isIOsDevice && !isAnonymous && (!isQueued || (isQueued && isPriorityEnabled)) ? ( ) : undefined; return ( } icon={ room.source && ( } /> ) } unread={highlighted} time={time} subtitle={message ? : null} badges={badges} menu={menu} {...props} /> ); }; export default memo(InquireSidePanelItem);