Skip to content

Commit 4a3729a

Browse files
authored
fix(compass-collection): Fix misfiring Mock Data Generator Screen Viewed analytics event – CLOUDP-355779 (#7523)
* WIP * Replace with useTrackOnChange
1 parent 3e31fdd commit 4a3729a

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

packages/compass-collection/src/components/mock-data-generator-modal/mock-data-generator-modal.spec.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1447,6 +1447,16 @@ describe('MockDataGeneratorModal', () => {
14471447
}
14481448
);
14491449
});
1450+
1451+
it('does not fire a track event when the modal is closed', async () => {
1452+
const result = await renderModal({ currentStep, isOpen: false });
1453+
expect(result.track).to.not.have.been.calledWith(
1454+
'Mock Data Generator Screen Viewed',
1455+
{
1456+
screen: currentStep,
1457+
}
1458+
);
1459+
});
14501460
});
14511461
});
14521462
});

packages/compass-collection/src/components/mock-data-generator-modal/mock-data-generator-modal.tsx

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useCallback, useEffect, useMemo } from 'react';
1+
import React, { useCallback, useMemo } from 'react';
22
import { connect } from 'react-redux';
33

44
import {
@@ -33,7 +33,10 @@ import FakerSchemaEditorScreen from './faker-schema-editor-screen';
3333
import ScriptScreen from './script-screen';
3434
import DocumentCountScreen from './document-count-screen';
3535
import PreviewScreen from './preview-screen';
36-
import { useTelemetry } from '@mongodb-js/compass-telemetry/provider';
36+
import {
37+
useTelemetry,
38+
useTrackOnChange,
39+
} from '@mongodb-js/compass-telemetry/provider';
3740
import {
3841
useIsAIFeatureEnabled,
3942
usePreference,
@@ -125,11 +128,16 @@ const MockDataGeneratorModal = ({
125128
onNextStep,
126129
]);
127130

128-
useEffect(() => {
129-
track('Mock Data Generator Screen Viewed', {
130-
screen: currentStep,
131-
});
132-
}, [currentStep, track]);
131+
useTrackOnChange(
132+
(track) => {
133+
if (isOpen) {
134+
track('Mock Data Generator Screen Viewed', {
135+
screen: currentStep,
136+
});
137+
}
138+
},
139+
[currentStep, isOpen]
140+
);
133141

134142
const isDocumentCountInvalid = !validateDocumentCount(documentCount).isValid;
135143

0 commit comments

Comments
 (0)