RocketChat/Rocket.Chat

View on GitHub
packages/livechat/src/components/Messages/MessageAvatars/index.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import { memo } from 'preact/compat';

import { createClassName } from '../../../helpers/createClassName';
import { Avatar } from '../../Avatar';
import styles from './styles.scss';

type MessageAvatarsProps = {
    avatarResolver: (username: string) => string | undefined;
    usernames: string[];
    className?: string;
    style?: React.CSSProperties;
};

export const MessageAvatars = memo(({ avatarResolver = () => undefined, usernames = [], className, style = {} }: MessageAvatarsProps) => {
    const avatars = usernames.filter(Boolean);

    if (!avatars.length) {
        return null;
    }

    return (
        <div className={createClassName(styles, 'message-avatars', {}, [className])} style={style}>
            {avatars.map((username) => (
                <Avatar src={avatarResolver(username)} description={username} className={createClassName(styles, 'message-avatars__avatar')} />
            ))}
        </div>
    );
});