@@ -10,6 +10,7 @@ import global from './global.module.scss'
1010import modalDrawerStyles from './ModalDrawer/styles.module.scss'
1111import clsx from 'clsx'
1212import { useColorMode } from '@docusaurus/theme-common'
13+ import { trackClickForSegment , trackInputChangeForSegment } from '@site/src/lib/segmentAnalytics'
1314import { AuthBox } from '@site/src/components/ParserOpenRPC/AuthBox'
1415import { MetamaskProviderContext } from '@site/src/theme/Root'
1516import ProjectsBox from '@site/src/components/ParserOpenRPC/ProjectsBox'
@@ -51,8 +52,27 @@ export default function ParserOpenRPC({ network, method, extraContent }: ParserP
5152 const [ defExampleResponse , setDefExampleResponse ] = useState ( undefined )
5253 const [ isLoading , setIsLoading ] = useState ( false )
5354 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+ }
5466 const openModal = ( ) => {
5567 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+ } )
5676 }
5777 const closeModal = ( ) => setModalOpen ( false )
5878
@@ -144,6 +164,11 @@ export default function ParserOpenRPC({ network, method, extraContent }: ParserP
144164 }
145165
146166 const onParamsChangeHandle = data => {
167+ trackInputChangeForSegment ( {
168+ eventName : 'Request Configuration Started' ,
169+ userExperience : 'B' ,
170+ timestamp : Date . now ( ) ,
171+ } )
147172
148173 if ( typeof data !== 'object' || data === null || Object . keys ( data ) . length === 0 ) {
149174 setParamsData ( [ ] )
@@ -167,6 +192,7 @@ export default function ParserOpenRPC({ network, method, extraContent }: ParserP
167192 params : paramsData ,
168193 } )
169194 setReqResult ( response )
195+ trackAnalyticsForRequest ( response )
170196 if ( method === 'eth_getEncryptionPublicKey' && response ) {
171197 setUserEncPublicKey ( response as string )
172198 }
@@ -200,6 +226,7 @@ export default function ParserOpenRPC({ network, method, extraContent }: ParserP
200226 if ( res . ok ) {
201227 const response = await res . json ( )
202228 setReqResult ( response )
229+ trackAnalyticsForRequest ( response )
203230 } else {
204231 const errorText = await res . text ( )
205232 const errorState = JSON . parse ( errorText )
0 commit comments