import type { IRoom } from '@rocket.chat/core-typings'; import { isOmnichannelRoom } from '@rocket.chat/core-typings'; import { Icon } from '@rocket.chat/fuselage'; import type { ComponentProps } from 'react'; import { isValidElement } from 'react'; import { OmnichannelRoomIcon } from './OmnichannelRoomIcon'; import { useRoomIcon } from '../../hooks/useRoomIcon'; export const RoomIcon = ({ room, size = 'x16', isIncomingCall, placement = 'default', }: { room: Pick; size?: ComponentProps['size']; isIncomingCall?: boolean; placement?: 'sidebar' | 'default'; }) => { const iconPropsOrReactNode = useRoomIcon(room); if (isIncomingCall) { return ; } if (isOmnichannelRoom(room)) { return ; } if (isValidElement(iconPropsOrReactNode)) { return iconPropsOrReactNode; } if (!iconPropsOrReactNode) { return null; } return ; };