import React, { useState } from 'react';
import { Card, CardContent } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { Avatar, AvatarImage, AvatarFallback } from "@/components/ui/avatar";
import { Textarea } from "@/components/ui/textarea";
import { ScrollArea } from "@/components/ui/scroll-area";
import { MessageCircle, ThumbsUp, Reply, X } from "lucide-react";
const DiscussionSection = () => {
const [comment, setComment] = useState('');
const [replyingTo, setReplyingTo] = useState(null);
const [discussions, setDiscussions] = useState([
{
id: 1,
user: 'Sarah Chen',
avatar: '/api/placeholder/32/32',
content: 'This is really interesting! I particularly liked the section about state management.',
likes: 12,
replies: [
{
id: 101,
user: 'Alex Kim',
avatar: '/api/placeholder/32/32',
content: '@Sarah Chen Thanks for sharing your thoughts!',
timestamp: '1 hour ago'
}
],
timestamp: '2 hours ago'
},
{
id: 2,
user: 'Alex Kim',
avatar: '/api/placeholder/32/32',
content: 'Great explanation! Could you elaborate more on the useEffect implementation?',
likes: 8,
replies: [],
timestamp: '1 hour ago'
}
]);
const handleSubmit = () => {
if (comment.trim()) {
if (replyingTo) {
// Add reply to existing comment
const updatedDiscussions = discussions.map(discussion => {
if (discussion.id === replyingTo.commentId) {
return {
...discussion,
replies: [...discussion.replies, {
id: Date.now(),
user: 'Current User',
avatar: '/api/placeholder/32/32',
content: comment,
timestamp: 'Just now'
}]
};
}
return discussion;
});
setDiscussions(updatedDiscussions);
setReplyingTo(null);
} else {
// Add new top-level comment
const newComment = {
id: Date.now(),
user: 'Current User',
avatar: '/api/placeholder/32/32',
content: comment,
likes: 0,
replies: [],
timestamp: 'Just now'
};
setDiscussions([...discussions, newComment]);
}
setComment('');
}
};
const handleReply = (commentId, userName) => {
setReplyingTo({ commentId, userName });
setComment(`@${userName} `);
};
const cancelReply = () => {
setReplyingTo(null);
setComment('');
};
return (
<>
{discussion.content} {reply.content}