Hey is a decentralized and permissionless social media app built with Lens Protocol 馃尶
at main 46 lines 1.4 kB view raw
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);