f587ff643f
Co-authored-by: Eugen Rochko <eugen@zeonfederated.com> Co-authored-by: Claire <claire.github-309c@sitedethib.com>
32 lines
916 B
TypeScript
32 lines
916 B
TypeScript
import { Link } from 'react-router-dom';
|
|
|
|
import { Avatar } from 'mastodon/components/avatar';
|
|
import { NOTIFICATIONS_GROUP_MAX_AVATARS } from 'mastodon/models/notification_group';
|
|
import { useAppSelector } from 'mastodon/store';
|
|
|
|
const AvatarWrapper: React.FC<{ accountId: string }> = ({ accountId }) => {
|
|
const account = useAppSelector((state) => state.accounts.get(accountId));
|
|
|
|
if (!account) return null;
|
|
|
|
return (
|
|
<Link
|
|
to={`/@${account.acct}`}
|
|
title={`@${account.acct}`}
|
|
data-hover-card-account={account.id}
|
|
>
|
|
<Avatar account={account} size={28} />
|
|
</Link>
|
|
);
|
|
};
|
|
|
|
export const AvatarGroup: React.FC<{ accountIds: string[] }> = ({
|
|
accountIds,
|
|
}) => (
|
|
<div className='notification-group__avatar-group'>
|
|
{accountIds.slice(0, NOTIFICATIONS_GROUP_MAX_AVATARS).map((accountId) => (
|
|
<AvatarWrapper key={accountId} accountId={accountId} />
|
|
))}
|
|
</div>
|
|
);
|