@@ -5,6 +5,7 @@ import { mdiEmail } from '@mdi/js'
55import { asError , ErrorLike } from '@sourcegraph/common'
66import { gql , useMutation } from '@sourcegraph/http-client'
77import { useTemporarySetting } from '@sourcegraph/shared/src/settings/temporary'
8+ import { TelemetryProps } from '@sourcegraph/shared/src/telemetry/telemetryService'
89import { Checkbox , Form , H3 , Modal , Text , Button , Icon , useLocalStorage } from '@sourcegraph/wildcard'
910
1011import { AuthenticatedUser } from '../../auth'
@@ -22,7 +23,10 @@ const SUBMIT_CODY_SURVEY = gql`
2223 }
2324`
2425
25- const CodySurveyToastInner : React . FC < { onSubmitEnd : ( ) => void } > = ( { onSubmitEnd } ) => {
26+ const CodySurveyToastInner : React . FC < { onSubmitEnd : ( ) => void } & TelemetryProps > = ( {
27+ onSubmitEnd,
28+ telemetryService,
29+ } ) => {
2630 const [ isCodyForWork , setIsCodyForWork ] = useState ( false )
2731 const [ isCodyForPersonalStuff , setIsCodyForPersonalStuff ] = useState ( false )
2832
@@ -45,13 +49,19 @@ const CodySurveyToastInner: React.FC<{ onSubmitEnd: () => void }> = ({ onSubmitE
4549
4650 const handleSubmit = useCallback (
4751 ( event : React . FormEvent < HTMLFormElement > ) => {
52+ const eventParams = { isCodyForPersonalStuff, isCodyForWork }
53+ telemetryService . log ( 'CodyUsageToastSubmitted' , eventParams , eventParams )
4854 event . preventDefault ( )
4955 // eslint-disable-next-line no-console
5056 submitCodySurvey ( ) . catch ( console . error ) . finally ( onSubmitEnd )
5157 } ,
52- [ onSubmitEnd , submitCodySurvey ]
58+ [ isCodyForPersonalStuff , isCodyForWork , onSubmitEnd , submitCodySurvey , telemetryService ]
5359 )
5460
61+ useEffect ( ( ) => {
62+ telemetryService . log ( 'CodySurveyToastViewed' )
63+ } , [ telemetryService ] )
64+
5565 return (
5666 < Modal position = "center" aria-label = "Welcome message" >
5767 < H3 className = "mb-4 d-flex align-items-center" >
@@ -84,9 +94,10 @@ const CodySurveyToastInner: React.FC<{ onSubmitEnd: () => void }> = ({ onSubmitE
8494 )
8595}
8696
87- const CodyVerifyEmailToast : React . FC < { onNext : ( ) => void ; authenticatedUser : AuthenticatedUser } > = ( {
97+ const CodyVerifyEmailToast : React . FC < { onNext : ( ) => void ; authenticatedUser : AuthenticatedUser } & TelemetryProps > = ( {
8898 onNext,
8999 authenticatedUser,
100+ telemetryService,
90101} ) => {
91102 const [ sending , setSending ] = useState ( false )
92103 const [ resentEmailTo , setResentEmailTo ] = useState < string | null > ( null )
@@ -110,6 +121,10 @@ const CodyVerifyEmailToast: React.FC<{ onNext: () => void; authenticatedUser: Au
110121 }
111122 } , [ authenticatedUser ] )
112123
124+ useEffect ( ( ) => {
125+ telemetryService . log ( 'VerifyEmailToastViewed' )
126+ } , [ telemetryService ] )
127+
113128 return (
114129 < Modal position = "center" aria-label = "Welcome message" >
115130 < H3 className = "mb-4" >
@@ -174,21 +189,32 @@ export const useCodySurveyToast = (): {
174189 }
175190}
176191
177- export const CodySurveyToast : React . FC < {
178- authenticatedUser ?: AuthenticatedUser
179- } > = ( { authenticatedUser } ) => {
192+ export const CodySurveyToast : React . FC <
193+ {
194+ authenticatedUser ?: AuthenticatedUser
195+ } & TelemetryProps
196+ > = ( { authenticatedUser, telemetryService } ) => {
180197 const { show, dismiss } = useCodySurveyToast ( )
181198 const codyEnabled = useIsCodyEnabled ( )
182199 const [ showVerifyEmail , setShowVerifyEmail ] = useState ( show && codyEnabled . needsEmailVerification )
183- const dismissVerifyEmail = useCallback ( ( ) => setShowVerifyEmail ( false ) , [ setShowVerifyEmail ] )
200+ const dismissVerifyEmail = useCallback ( ( ) => {
201+ telemetryService . log ( 'VerifyEmailToastDismissed' )
202+ setShowVerifyEmail ( false )
203+ } , [ telemetryService ] )
184204
185205 if ( ! show ) {
186206 return null
187207 }
188208
189209 if ( showVerifyEmail && authenticatedUser ) {
190- return < CodyVerifyEmailToast onNext = { dismissVerifyEmail } authenticatedUser = { authenticatedUser } />
210+ return (
211+ < CodyVerifyEmailToast
212+ onNext = { dismissVerifyEmail }
213+ authenticatedUser = { authenticatedUser }
214+ telemetryService = { telemetryService }
215+ />
216+ )
191217 }
192218
193- return < CodySurveyToastInner onSubmitEnd = { dismiss } />
219+ return < CodySurveyToastInner onSubmitEnd = { dismiss } telemetryService = { telemetryService } />
194220}
0 commit comments