@@ -8,6 +8,7 @@ import { useTheme } from '../contexts/ThemeContext';
88import { cn } from '@/lib/utils' ;
99import { Badge } from '@/components/ui/badge' ;
1010import { PARAMETER_DESCRIPTION , type ParameterName } from '../data/parameterDescription' ;
11+ import { QueryParam } from '@/lib/types' ;
1112
1213type EventDetailsProps = {
1314 selectedMessage : Entry ;
@@ -53,8 +54,6 @@ type EventDetailProps = {
5354 selectedMessage : Entry ;
5455} ;
5556function EventDetail ( { selectedMessage } : EventDetailProps ) {
56- const { theme } = useTheme ( ) ;
57-
5857 switch ( selectedMessage . type ) {
5958 case 'PAQ_ENTRY' :
6059 case 'PPAS_ENTRY' : {
@@ -126,63 +125,12 @@ function EventDetail({ selectedMessage }: EventDetailProps) {
126125 case 'PAQ_NETWORK_EVENT' :
127126 case 'PPAS_NETWORK_EVENT' : {
128127 if ( selectedMessage . payload . type === 'SINGLE' ) {
129- const eventType = getEventType ( selectedMessage . payload . params ) ;
130- return (
131- < div >
132- Network event: < span className = "font-bold" > { eventType } </ span >
133- { eventType === 'Broken Event' && selectedMessage . payload . params . length == 0 && (
134- < div className = "mt-2 font-bold" >
135- This may be Last heartbeat ping, these are currently not supported and displayed as
136- broken events.
137- </ div >
138- ) }
139- < div className = "mt-2" >
140- < b > Parameters:</ b >
141- < Separator />
142- { selectedMessage . payload . params . map ( ( e , i ) => (
143- < div key = { i } className = "flex" >
144- < span
145- className = { cn (
146- 'font-bold' ,
147- theme === 'light' ? 'text-slate-600' : 'text-slate-400'
148- ) }
149- title = {
150- PARAMETER_DESCRIPTION [ e . name as ParameterName ] ||
151- ( e . name . startsWith ( 'dimension' ) && PARAMETER_DESCRIPTION [ 'dimensionID' ] ) ||
152- ''
153- }
154- >
155- { e . name } :{ ' ' }
156- </ span >
157- < span className = "ml-[1ch] break-words" >
158- { import . meta. env . CHROME ? decodeURIComponent ( e . value ) : e . value }
159- </ span >
160- </ div >
161- ) ) }
162- </ div >
163- </ div >
164- ) ;
128+ return < NetworkEvent eventParams = { selectedMessage . payload . params } /> ;
165129 } else {
166130 return selectedMessage . payload . requestsParams . map ( ( params , i ) => {
167- const eventType = getEventType ( params ) ;
168131 return (
169132 < Fragment key = { i } >
170- < div >
171- network event: < span className = "font-bold" > { eventType } </ span >
172- { eventType === 'Broken Event' && params . length == 0 && (
173- < div className = "mt-2 font-bold" >
174- This may be Last heartbeat ping, these are currently not supported and displayed
175- as broken events.
176- </ div >
177- ) }
178- < div >
179- { params . map ( ( e , i ) => (
180- < div key = { i } >
181- { e . name } : < span className = "font-bold" > { e . value } </ span >
182- </ div >
183- ) ) }
184- </ div >
185- </ div >
133+ < NetworkEvent eventParams = { params } />
186134 < Separator className = "my-3" />
187135 </ Fragment >
188136 ) ;
@@ -194,3 +142,42 @@ function EventDetail({ selectedMessage }: EventDetailProps) {
194142 }
195143 }
196144}
145+
146+ function NetworkEvent ( { eventParams } : { eventParams : QueryParam [ ] } ) {
147+ const { theme } = useTheme ( ) ;
148+
149+ const eventType = getEventType ( eventParams ) ;
150+
151+ return (
152+ < div >
153+ Network event: < span className = "font-bold" > { eventType } </ span >
154+ { eventType === 'Broken Event' && eventParams . length == 0 && (
155+ < div className = "mt-2 font-bold" >
156+ This may be Last heartbeat ping, these are currently not supported and displayed as broken
157+ events.
158+ </ div >
159+ ) }
160+ < div className = "mt-2" >
161+ < b > Parameters:</ b >
162+ < Separator />
163+ { eventParams . map ( ( e , i ) => (
164+ < div key = { i } className = "flex" >
165+ < span
166+ className = { cn ( 'font-bold' , theme === 'light' ? 'text-slate-600' : 'text-slate-400' ) }
167+ title = {
168+ PARAMETER_DESCRIPTION [ e . name as ParameterName ] ||
169+ ( e . name . startsWith ( 'dimension' ) && PARAMETER_DESCRIPTION [ 'dimensionID' ] ) ||
170+ ''
171+ }
172+ >
173+ { e . name } :{ ' ' }
174+ </ span >
175+ < span className = "ml-[1ch] break-words" >
176+ { import . meta. env . CHROME ? decodeURIComponent ( e . value ) : e . value }
177+ </ span >
178+ </ div >
179+ ) ) }
180+ </ div >
181+ </ div >
182+ ) ;
183+ }
0 commit comments