11"use client" ;
2+ import {
3+ Popover ,
4+ PopoverContent ,
5+ PopoverTrigger ,
6+ } from "@/components/ui/popover" ;
7+ import axios from "axios" ;
8+ import { NextResponse } from "next/server" ;
29import { BiRepost } from "react-icons/bi" ;
310import { FaRegBookmark , FaRegComment } from "react-icons/fa6" ;
411import { FiHeart } from "react-icons/fi" ;
512import { IoIosStats } from "react-icons/io" ;
6- import { RiShare2Line } from "react-icons/ri" ;
13+ import { RiDeleteBinLine , RiShare2Line } from "react-icons/ri" ;
714import { UserAvatar } from "./usrAvatar" ;
815
916interface TweetProps {
@@ -18,36 +25,68 @@ interface TweetProps {
1825}
1926
2027export const TweetComp = ( { tweet } : TweetProps ) => {
28+ const handleDelete = async ( ) => {
29+ try {
30+ console . log ( "Deleting the Tweet" , tweet . id ) ;
31+ const response = await axios . delete ( `/api/post?id=${ tweet . id } ` ) ;
32+ console . log ( "Tweet Deleted" , response ) ;
33+ return NextResponse . json ( { status : 200 } ) ;
34+ } catch ( error ) {
35+ console . log ( "Error while Deleting Tweet" , error ) ;
36+ }
37+ } ;
2138 return (
2239 < div >
2340 < div >
2441 < div className = "border border-slate-800 border-spacing-x-0.5" >
2542 < div className = "flex p-3 gap-2" >
26- < div className = "mt-1" >
43+ < div className = "mt-1 cursor-pointer " >
2744 < UserAvatar />
2845 </ div >
2946 < div className = "" >
3047 < div className = "grid grid-cols-6" >
3148 < div className = "flex col-span-5" >
32- < p > { tweet . user . name } </ p >
49+ < p className = "font-bold cursor-pointer" > { tweet . user . name } </ p >
3350 { /* <p> @tweet.content</p> */ }
34- < p > · { new Date ( tweet . createdDate ) . toLocaleDateString ( ) } </ p >
51+ < span className = "px-1 " > .</ span >
52+ < p className = "text-slate-500" >
53+ { " " }
54+ { new Date ( tweet . createdDate ) . toLocaleDateString ( ) }
55+ </ p >
56+ </ div >
57+ { /* <p className="text-end">...</p> */ }
58+ < div className = "ml-auto cursor-pointer hover:bg-black hover:rounded-2xl" >
59+ < Popover >
60+ < PopoverTrigger className = "font-bold text-slate-500" >
61+ ...
62+ </ PopoverTrigger >
63+ < PopoverContent >
64+ < div className = "text-red-700 flex items-center gap-2 cursor-pointer" >
65+ < div
66+ className = "flex items-center gap-1 cursor-pointer"
67+ onClick = { handleDelete }
68+ >
69+ < RiDeleteBinLine />
70+ Delete
71+ </ div >
72+ </ div >
73+ </ PopoverContent >
74+ </ Popover >
3575 </ div >
36- < p className = "text-end" > ...</ p >
3776 </ div >
3877 < div className = "flex flex-col" >
3978 < div className = "list-inside" > { tweet . content } </ div >
40- < div className = "" > Image Part</ div >
79+ < div className = "cursor-pointer " > Image Part</ div >
4180 </ div >
4281 < div className = "flex space-x-24 text-slate-600" >
43- < FaRegComment />
44- < BiRepost />
45- < FiHeart />
82+ < FaRegComment className = "cursor-pointer" />
83+ < BiRepost className = "cursor-pointer" />
84+ < FiHeart className = "cursor-pointer" />
4685 { /* <span>{tweet.likes} </span> */ }
47- < IoIosStats />
86+ < IoIosStats className = "cursor-pointer" />
4887 < div className = "flex" >
49- < FaRegBookmark />
50- < RiShare2Line />
88+ < FaRegBookmark className = "cursor-pointer" />
89+ < RiShare2Line className = "cursor-pointer" />
5190 </ div >
5291 </ div >
5392 </ div >
0 commit comments