11'use client'
22
33import { CaptureResult } from 'posthog-js'
4- import { useState , useEffect } from 'react'
4+ import { useState } from 'react'
55
66interface EventDisplayProps {
77 events : CaptureResult [ ]
88}
99
10- interface EventWithTimestamp extends CaptureResult {
11- capturedAt : number
12- }
13-
1410export function EventDisplay ( { events } : EventDisplayProps ) {
1511 const [ expandedEvents , setExpandedEvents ] = useState < Set < string > > ( new Set ( ) )
16- const [ eventsWithTimestamp , setEventsWithTimestamp ] = useState < EventWithTimestamp [ ] > ( [ ] )
17- const [ , setTick ] = useState ( 0 )
18-
19- useEffect ( ( ) => {
20- const newEvents = events . filter ( ( e ) => ! eventsWithTimestamp . find ( ( existing ) => existing . uuid === e . uuid ) )
21- if ( newEvents . length > 0 ) {
22- setEventsWithTimestamp ( ( prev ) => [ ...prev , ...newEvents . map ( ( e ) => ( { ...e , capturedAt : Date . now ( ) } ) ) ] )
23- }
24- } , [ events , eventsWithTimestamp ] )
25-
26- useEffect ( ( ) => {
27- const interval = setInterval ( ( ) => setTick ( ( t ) => t + 1 ) , 1000 )
28- return ( ) => clearInterval ( interval )
29- } , [ ] )
3012
3113 const toggleExpanded = ( uuid : string ) => {
3214 setExpandedEvents ( ( prev ) => {
@@ -40,15 +22,6 @@ export function EventDisplay({ events }: EventDisplayProps) {
4022 } )
4123 }
4224
43- const getTimeAgo = ( timestamp : number ) => {
44- const seconds = Math . floor ( ( Date . now ( ) - timestamp ) / 1000 )
45- if ( seconds < 60 ) return `${ seconds } s ago`
46- const minutes = Math . floor ( seconds / 60 )
47- if ( minutes < 60 ) return `${ minutes } m ago`
48- const hours = Math . floor ( minutes / 60 )
49- return `${ hours } h ago`
50- }
51-
5225 return (
5326 < div
5427 style = { {
@@ -69,11 +42,11 @@ export function EventDisplay({ events }: EventDisplayProps) {
6942 < h2 style = { { fontSize : '1.125rem' , fontWeight : 'bold' , marginBottom : '0.75rem' , color : '#1f2937' } } >
7043 PostHog Events
7144 </ h2 >
72- { eventsWithTimestamp . length === 0 ? (
45+ { events . length === 0 ? (
7346 < p style = { { color : '#6b7280' , fontSize : '0.875rem' } } > No events captured yet...</ p >
7447 ) : (
7548 < div style = { { display : 'flex' , flexDirection : 'column' , gap : '0.5rem' } } >
76- { eventsWithTimestamp . map ( ( event ) => (
49+ { events . map ( ( event ) => (
7750 < div
7851 key = { event . uuid }
7952 style = { {
@@ -86,18 +59,7 @@ export function EventDisplay({ events }: EventDisplayProps) {
8659 } }
8760 onClick = { ( ) => toggleExpanded ( event . uuid ) }
8861 >
89- < div
90- style = { {
91- display : 'flex' ,
92- justifyContent : 'space-between' ,
93- alignItems : 'center' ,
94- } }
95- >
96- < div style = { { fontWeight : '600' , color : '#2563eb' } } > { event . event } </ div >
97- < div style = { { color : '#9ca3af' , fontSize : '0.65rem' } } >
98- { getTimeAgo ( event . capturedAt ) }
99- </ div >
100- </ div >
62+ < div style = { { fontWeight : '600' , color : '#2563eb' } } > { event . event } </ div >
10163 { expandedEvents . has ( event . uuid ) && (
10264 < div
10365 style = { {
0 commit comments