From 67a9657cf00569db700514283a0a58b0ad087905 Mon Sep 17 00:00:00 2001 From: Ahmad Abdolsaheb Date: Sat, 16 Nov 2024 20:28:29 +0300 Subject: [PATCH] feat: add sign out ga event (#57150) --- client/src/analytics/call-ga.ts | 6 ++++++ client/src/components/signout-modal/index.tsx | 2 ++ 2 files changed, 8 insertions(+) diff --git a/client/src/analytics/call-ga.ts b/client/src/analytics/call-ga.ts index c885e03fc2a..98da19af5b6 100644 --- a/client/src/analytics/call-ga.ts +++ b/client/src/analytics/call-ga.ts @@ -83,6 +83,11 @@ interface SignIn { event: 'sign_in'; } +interface SignOut { + event: 'sign_out'; + user_id: undefined; +} + export type GAevent = | DonationViewEvent | DonationEvent @@ -92,6 +97,7 @@ export type GAevent = | ExperimentViewEvent | ChallengeFailedEvent | UserData + | SignOut | SignIn; export default function callGA(payload: GAevent) { diff --git a/client/src/components/signout-modal/index.tsx b/client/src/components/signout-modal/index.tsx index 41a2a4aab1f..46073553260 100644 --- a/client/src/components/signout-modal/index.tsx +++ b/client/src/components/signout-modal/index.tsx @@ -8,6 +8,7 @@ import { Button, Modal, Spacer } from '@freecodecamp/ui'; import { hardGoTo as navigate, closeSignoutModal } from '../../redux/actions'; import { isSignoutModalOpenSelector } from '../../redux/selectors'; import { apiLocation } from '../../../config/env.json'; +import callGA from '../../analytics/call-ga'; const mapStateToProps = createSelector( isSignoutModalOpenSelector, @@ -41,6 +42,7 @@ function SignoutModal(props: SignoutModalProps): JSX.Element { const handleSignout = () => { closeSignoutModal(); + callGA({ event: 'sign_out', user_id: undefined }); navigate(`${apiLocation}/signout`); };