@@ -10,6 +10,7 @@ import global from './global.module.scss'
10
10
import modalDrawerStyles from './ModalDrawer/styles.module.scss'
11
11
import clsx from 'clsx'
12
12
import { useColorMode } from '@docusaurus/theme-common'
13
+ import { trackClickForSegment , trackInputChangeForSegment } from '@site/src/lib/segmentAnalytics'
13
14
import { AuthBox } from '@site/src/components/ParserOpenRPC/AuthBox'
14
15
import { MetamaskProviderContext } from '@site/src/theme/Root'
15
16
import ProjectsBox from '@site/src/components/ParserOpenRPC/ProjectsBox'
@@ -51,8 +52,27 @@ export default function ParserOpenRPC({ network, method, extraContent }: ParserP
51
52
const [ defExampleResponse , setDefExampleResponse ] = useState ( undefined )
52
53
const [ isLoading , setIsLoading ] = useState ( false )
53
54
const { colorMode } = useColorMode ( )
55
+ const trackAnalyticsForRequest = response => {
56
+ trackClickForSegment ( {
57
+ eventName : 'Request Sent' ,
58
+ clickType : 'Request Sent' ,
59
+ userExperience : 'B' ,
60
+ // @ts -ignore
61
+ ...( response ?. code && { responseStatus : response . code } ) ,
62
+ responseMsg : null ,
63
+ timestamp : Date . now ( ) ,
64
+ } )
65
+ }
54
66
const openModal = ( ) => {
55
67
setModalOpen ( true )
68
+ trackClickForSegment ( {
69
+ eventName : 'Customize Request' ,
70
+ clickType : 'Customize Request' ,
71
+ userExperience : 'B' ,
72
+ responseStatus : null ,
73
+ responseMsg : null ,
74
+ timestamp : Date . now ( ) ,
75
+ } )
56
76
}
57
77
const closeModal = ( ) => setModalOpen ( false )
58
78
@@ -144,6 +164,11 @@ export default function ParserOpenRPC({ network, method, extraContent }: ParserP
144
164
}
145
165
146
166
const onParamsChangeHandle = data => {
167
+ trackInputChangeForSegment ( {
168
+ eventName : 'Request Configuration Started' ,
169
+ userExperience : 'B' ,
170
+ timestamp : Date . now ( ) ,
171
+ } )
147
172
148
173
if ( typeof data !== 'object' || data === null || Object . keys ( data ) . length === 0 ) {
149
174
setParamsData ( [ ] )
@@ -167,6 +192,7 @@ export default function ParserOpenRPC({ network, method, extraContent }: ParserP
167
192
params : paramsData ,
168
193
} )
169
194
setReqResult ( response )
195
+ trackAnalyticsForRequest ( response )
170
196
if ( method === 'eth_getEncryptionPublicKey' && response ) {
171
197
setUserEncPublicKey ( response as string )
172
198
}
@@ -200,6 +226,7 @@ export default function ParserOpenRPC({ network, method, extraContent }: ParserP
200
226
if ( res . ok ) {
201
227
const response = await res . json ( )
202
228
setReqResult ( response )
229
+ trackAnalyticsForRequest ( response )
203
230
} else {
204
231
const errorText = await res . text ( )
205
232
const errorState = JSON . parse ( errorText )
0 commit comments