Hey is a decentralized and permissionless social media app built with Lens Protocol 馃尶
1import type { PostFragment } from "@hey/indexer";
2import { memo } from "react";
3import PostWarning from "@/components/Shared/Post/PostWarning";
4import PostWrapper from "@/components/Shared/Post/PostWrapper";
5import {
6 getBlockedByMeMessage,
7 getBlockedMeMessage
8} from "@/helpers/getBlockedMessage";
9import HiddenPost from "./HiddenPost";
10import PostAvatar from "./PostAvatar";
11import PostBody from "./PostBody";
12import PostHeader from "./PostHeader";
13
14interface QuotedPostProps {
15 isNew?: boolean;
16 post: PostFragment;
17}
18
19const QuotedPost = ({ isNew = false, post }: QuotedPostProps) => {
20 const isBlockededByMe = post.author.operations?.isBlockedByMe;
21 const hasBlockedMe = post.author.operations?.hasBlockedMe;
22
23 if (hasBlockedMe) {
24 return <PostWarning message={getBlockedMeMessage(post.author)} />;
25 }
26
27 if (isBlockededByMe) {
28 return <PostWarning message={getBlockedByMeMessage(post.author)} />;
29 }
30
31 return (
32 <PostWrapper
33 className="cursor-pointer p-4 first:rounded-t-xl last:rounded-b-xl"
34 post={post}
35 >
36 <div className="flex items-center gap-x-2">
37 <PostAvatar post={post} quoted />
38 <PostHeader isNew={isNew} post={post} quoted />
39 </div>
40 {post.isDeleted ? (
41 <HiddenPost type={post.__typename} />
42 ) : (
43 <PostBody post={post} showMore />
44 )}
45 </PostWrapper>
46 );
47};
48
49export default memo(QuotedPost);