11import { useState , useEffect } from 'react'
2+ import { usePostHog } from '@posthog/react'
23import type { FakePost } from '@/lib/data/fake-data'
34import cn from '@/lib/utils/cn'
45import { getLikedPosts , toggleLikedPost } from '@/lib/utils/localStorage'
@@ -8,6 +9,7 @@ interface PostCardProps {
89}
910
1011export function PostCard ( { post } : PostCardProps ) {
12+ const posthog = usePostHog ( )
1113 const [ liked , setLiked ] = useState ( false )
1214 const [ likes , setLikes ] = useState ( post . likes )
1315
@@ -19,17 +21,27 @@ export function PostCard({ post }: PostCardProps) {
1921 const handleLike = ( ) => {
2022 const newLikedState = toggleLikedPost ( post . id )
2123 setLiked ( newLikedState )
22- setLikes ( ( prev ) => ( prev + ( newLikedState ? 1 : - 1 ) ) )
24+ setLikes ( ( prev ) => prev + ( newLikedState ? 1 : - 1 ) )
25+
26+ if ( newLikedState ) {
27+ posthog ?. capture ( 'post_liked' , {
28+ post_id : post . id ,
29+ post_username : post . username ,
30+ post_verified : post . verified ,
31+ } )
32+ } else {
33+ posthog ?. capture ( 'post_unliked' , {
34+ post_id : post . id ,
35+ post_username : post . username ,
36+ post_verified : post . verified ,
37+ } )
38+ }
2339 }
2440
2541 return (
2642 < div className = "bg-primary/5 border border-primary/20 rounded-lg p-4 mb-4" >
2743 < div className = "flex items-center gap-3 mb-3" >
28- < img
29- src = { post . avatar }
30- alt = { post . username }
31- className = "w-10 h-10 rounded-full"
32- />
44+ < img src = { post . avatar } alt = { post . username } className = "w-10 h-10 rounded-full" />
3345 < div className = "flex-1" >
3446 < div className = "flex items-center gap-2" >
3547 < span className = "font-bold text-primary" > { post . username } </ span >
@@ -47,21 +59,14 @@ export function PostCard({ post }: PostCardProps) {
4759
4860 { post . image && (
4961 < div className = "mb-3 rounded-lg overflow-hidden" >
50- < img
51- src = { post . image }
52- alt = "Post"
53- className = "w-full h-auto"
54- />
62+ < img src = { post . image } alt = "Post" className = "w-full h-auto" />
5563 </ div >
5664 ) }
5765
5866 < div className = "flex items-center gap-6 text-primary/70" >
5967 < button
6068 onClick = { handleLike }
61- className = { cn (
62- 'flex items-center gap-2 hover:text-accent transition' ,
63- liked && 'text-red-500'
64- ) }
69+ className = { cn ( 'flex items-center gap-2 hover:text-accent transition' , liked && 'text-red-500' ) }
6570 >
6671 < span className = "text-xl" > { liked ? '❤️' : '🤍' } </ span >
6772 < span className = "text-sm" >
@@ -84,4 +89,3 @@ export function PostCard({ post }: PostCardProps) {
8489 </ div >
8590 )
8691}
87-
0 commit comments