Hey is a decentralized and permissionless social media app built with Lens Protocol 馃尶
1import getAvatar from "@hey/helpers/getAvatar";
2import { isRepost } from "@hey/helpers/postHelpers";
3import type { AnyPostFragment, TimelineItemFragment } from "@hey/indexer";
4import { memo } from "react";
5import AccountLink from "@/components/Shared/Account/AccountLink";
6import { Image } from "@/components/Shared/UI";
7import cn from "@/helpers/cn";
8import stopEventPropagation from "@/helpers/stopEventPropagation";
9
10interface PostAvatarProps {
11 timelineItem?: TimelineItemFragment;
12 post: AnyPostFragment;
13 quoted?: boolean;
14}
15
16const PostAvatar = ({
17 timelineItem,
18 post,
19 quoted = false
20}: PostAvatarProps) => {
21 const targetPost = isRepost(post) ? post?.repostOf : post;
22 const rootPost = timelineItem ? timelineItem?.primary : targetPost;
23 const account = timelineItem ? rootPost.author : targetPost.author;
24
25 return (
26 <AccountLink
27 account={account}
28 className="contents"
29 onClick={stopEventPropagation}
30 >
31 <Image
32 alt={account.address}
33 className={cn(
34 quoted ? "size-6" : "size-11",
35 "z-[1] cursor-pointer rounded-full border border-gray-200 bg-gray-200 dark:border-gray-700"
36 )}
37 height={quoted ? 25 : 44}
38 loading="lazy"
39 src={getAvatar(account)}
40 width={quoted ? 25 : 44}
41 />
42 </AccountLink>
43 );
44};
45
46export default memo(PostAvatar);