From f967fc411581a5337e361d70d04d312a12c15193 Mon Sep 17 00:00:00 2001 From: moo-onthelawn <70078372+moo-onthelawn@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:16:40 -0600 Subject: [PATCH] chore(analytics): add fromDialogType to NavigateDialog events (#892) --- src/constants/analytics.ts | 1 + src/hooks/useAnalytics.ts | 32 +++++++++++++++++++++----------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/constants/analytics.ts b/src/constants/analytics.ts index 1c5536a70..c573ed954 100644 --- a/src/constants/analytics.ts +++ b/src/constants/analytics.ts @@ -128,6 +128,7 @@ export const AnalyticsEvents = unionize( }>(), NavigateDialog: ofType<{ type: DialogTypesTypes; + fromDialogType?: DialogTypesTypes; }>(), NavigateDialogClose: ofType<{ type: DialogTypesTypes; diff --git a/src/hooks/useAnalytics.ts b/src/hooks/useAnalytics.ts index cf956f1fd..3a011f5da 100644 --- a/src/hooks/useAnalytics.ts +++ b/src/hooks/useAnalytics.ts @@ -158,17 +158,27 @@ export const useAnalytics = () => { DialogTypesTypes | undefined >(); - useEffect(() => { - if (activeDialog?.type) { - track(AnalyticsEvents.NavigateDialog({ type: activeDialog.type })); - } - - if (previousActiveDialogType) { - track(AnalyticsEvents.NavigateDialogClose({ type: previousActiveDialogType })); - } - - setPreviousActiveDialogType(activeDialog?.type); - }, [activeDialog]); + useEffect( + () => { + if (activeDialog?.type) { + track( + AnalyticsEvents.NavigateDialog({ + type: activeDialog.type, + fromDialogType: previousActiveDialogType, + }) + ); + } + + if (previousActiveDialogType) { + track(AnalyticsEvents.NavigateDialogClose({ type: previousActiveDialogType })); + } + + setPreviousActiveDialogType(activeDialog?.type); + }, + // This effect should only trigger on updates to the current active dialog, not previousActiveDialogType + // eslint-disable-next-line react-hooks/exhaustive-deps + [activeDialog] + ); // AnalyticsEvent.NavigateExternal useEffect(() => {