Skip to content
Snippets Groups Projects
Commit c3be8425 authored by Lukas's avatar Lukas
Browse files

Create separate compoennts for post content and post comments

parent ba0e85de
No related branches found
No related tags found
1 merge request!510Lbudginas/#411 add post comments
import Hive from "@/types/Hive";
import PostContent from "./PostContent";
interface PostCommentsProps {
comments: Hive.Content[];
}
const PostComments: React.FC<PostCommentsProps> = ({ comments }) => {
if (!comments || !comments.length) return null;
return comments.map((comment) => {
return (
<div
className="flex mt-4 justify-center"
key={comment.id}
>
<div className="w-[70%]">
<PostContent
active_votes={comment.active_votes}
data={comment}
/>
</div>
</div>
);
});
};
export default PostComments;
import { useState } from "react";
import Hive from "@/types/Hive";
import PostContentCard from "./PostContentCard";
import PostPropertiesTable from "./PostPropertiesTable";
import VoteDetailsTable from "./VoteDetailsTable";
interface PostContentProps {
active_votes: Hive.PostPageVoteDetails[];
data: Hive.Content;
}
const PostContent: React.FC<PostContentProps> = ({ active_votes, data }) => {
const [isPropertiesOpen, setIsPropertiesOpen] = useState(false);
const [isVoteDetailsOpen, setIsVoteDetailsOpen] = useState(false);
const handlePropertiesToggle = () => setIsPropertiesOpen(!isPropertiesOpen);
const handleVoteDetailsToggle = () =>
setIsVoteDetailsOpen(!isVoteDetailsOpen);
const voters = active_votes.map((vote) => vote.voter) ?? [];
return (
<>
<PostContentCard
isPropertiesOpen={isPropertiesOpen}
isVoteDetailsOpen={isVoteDetailsOpen}
handlePropertiesToggle={handlePropertiesToggle}
handleVoteDetailsToggle={handleVoteDetailsToggle}
voteDetailsLength={active_votes.length ?? 0}
voters={voters}
data={data}
/>
<PostPropertiesTable
isPropertiesOpen={isPropertiesOpen}
data={data}
/>
{active_votes.length && (
<VoteDetailsTable
isVoteDetailsOpen={isVoteDetailsOpen}
voteDetails={active_votes}
/>
)}
</>
);
};
export default PostContent;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment