import { JSXElement } from "solid-js"; import { EngagementIcon } from "../Util/Icons"; import { PublicComment } from "../Util/api"; import { NewCommentInputArea } from "./NewComment"; interface CommentProps { comment: PublicComment; } /** * Comment is a component that displays a single comment. * @param {Object} props The properties for the Comment component. * @param {string} props.postId The id of the post that the comment is a reply to. * @returns {JSXElement} A JSXElement of a comment */ export function Comment({ comment }: CommentProps): JSXElement { return ( <div class="flex min-w-full flex-col rounded-lg border-b-2 border-b-secondary bg-base-300 px-5 py-3 text-base-content transition-all hover:bg-base-300 "> <div class="flex flex-row"> <div class="pb-2 text-xs text-gray-500">{comment.created_at}</div> </div> <div class="text-sm">{comment.content}</div> <div class="flex justify-between py-5 align-baseline"> <div class="btn self-start"> {/* Placeholder icon, tbd */} <EngagementIcon /> </div> <section> <ul class="timeline timeline-vertical"> <li> <div class="timeline-start">{comment.created_at}</div> <div class="divider timeline-middle">:</div> <div class="timeline-end timeline-box">{comment.content}</div> <hr /> </li> <li> <div class="timeline-end">{comment.created_at}</div> <div class="timeline-middle">:</div> <div class="timeline-start timeline-box">{comment.content}</div> <hr /> </li> </ul> </section> </div> <NewCommentInputArea parentCommentId={comment.parent_comment_id} parentPostId={comment.parent_post_id} /> </div> ); }