Spaces:
Sleeping
Sleeping
File size: 1,480 Bytes
e4d3d8a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
import { cn } from "@/lib/utils"
import { VideoComment } from "@/types"
import { useEffect, useState } from "react"
import { DefaultAvatar } from "../default-avatar"
export function CommentCard({
comment,
replies = []
}: {
comment?: VideoComment,
replies: VideoComment[]
}) {
const [userThumbnail, setUserThumbnail] = useState(comment?.user?.thumbnail || "")
useEffect(() => {
setUserThumbnail(comment?.user?.thumbnail || "")
}, [comment?.user?.thumbnail])
if (!comment) { return null }
const handleBadUserThumbnail = () => {
try {
if (userThumbnail) {
setUserThumbnail("")
}
} catch (err) {
}
}
return (
<div className={cn(
`flex flex-col`,
)}>
{/* THE COMMENT INFO - HORIZONTAL */}
<div className={cn(
`flex flex-col`,
)}>
<div
className={cn(
`flex flex-col items-center justify-center`,
`rounded-full overflow-hidden`,
`w-26 h-26`
)}
>
{comment.user.thumbnail
? <img
src={comment.user.thumbnail}
onError={handleBadUserThumbnail}
/>
: <DefaultAvatar
username={comment.user.userName}
bgColor="#fde047"
textColor="#1c1917"
width={104}
roundShape
/>}
</div>
</div>
{/* THE REPLIES */}
{/* TODO */}
</div>
)
} |