Skip to content

Commit 6baba6a

Browse files
authored
feat: Add analytics for code copied, index strategy docs clicked, and updated code equivalent toggle event CLOUDP-323670 (#7000)
* add analytics for input index copied + updated code equivalent toggle * add code copied for index suggestions and event for strategy doc clicked * make onCopy a required field * cleaned up oncopy call
1 parent 7ddb9f6 commit 6baba6a

File tree

6 files changed

+51
-1
lines changed

6 files changed

+51
-1
lines changed

packages/compass-indexes/src/components/create-index-form/index-flow-section.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ const IndexFlowSection = ({
272272
setIsCodeEquivalentToggleChecked(value);
273273
track('Code Equivalent Toggled', {
274274
context: 'Create Index Modal',
275+
toggled: value === true ? 'On' : 'Off',
275276
});
276277
}}
277278
checked={isCodeEquivalentToggleChecked}
@@ -290,6 +291,11 @@ const IndexFlowSection = ({
290291
dbName={dbName}
291292
collectionName={collectionName}
292293
indexNameTypeMap={indexNameTypeMap}
294+
onCopy={() => {
295+
track('Input Index Copied', {
296+
context: 'Create Index Modal',
297+
});
298+
}}
293299
/>
294300
) : (
295301
createIndexFieldsComponent

packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.spec.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ describe('MDBCodeViewer', () => {
2525
dbName={dbName}
2626
collectionName={collectionName}
2727
indexNameTypeMap={indexNameTypeMap}
28+
onCopy={() => {}}
2829
/>
2930
);
3031
};

packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,13 @@ const MDBCodeViewer = ({
5656
dbName,
5757
collectionName,
5858
indexNameTypeMap,
59+
onCopy,
5960
dataTestId,
6061
}: {
6162
dbName: string;
6263
collectionName: string;
6364
indexNameTypeMap: Record<string, string | number>;
65+
onCopy: () => void;
6466
dataTestId?: string;
6567
}) => {
6668
const track = useTelemetry();
@@ -72,7 +74,11 @@ const MDBCodeViewer = ({
7274

7375
return (
7476
<div className={containerStyles}>
75-
<Code data-testid={dataTestId || 'mdb-code-viewer'} language="javascript">
77+
<Code
78+
data-testid={dataTestId || 'mdb-code-viewer'}
79+
language="javascript"
80+
onCopy={onCopy}
81+
>
7682
{GeneratedCode}
7783
</Code>
7884
<span className={programmingLanguageLinkStyles}>

packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,11 @@ const QueryFlowSection = ({
257257
dbName={dbName}
258258
collectionName={collectionName}
259259
indexNameTypeMap={indexSuggestions}
260+
onCopy={() => {
261+
track('Index Suggestions Copied', {
262+
context: 'Create Index Modal',
263+
});
264+
}}
260265
/>
261266
</div>
262267
</>

packages/compass-indexes/src/components/create-index-modal/create-index-modal-header.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
Link,
88
useDarkMode,
99
} from '@mongodb-js/compass-components';
10+
import { useTelemetry } from '@mongodb-js/compass-telemetry/provider';
1011
import React from 'react';
1112

1213
const headerStyle = css({
@@ -24,6 +25,7 @@ const subtitleDarkStyle = css({
2425

2526
const CreateIndexModalHeader = () => {
2627
const darkMode = useDarkMode();
28+
const track = useTelemetry();
2729
return (
2830
<div className={headerStyle}>
2931
<H3 data-testid="create-index-modal-header-title">Create Index</H3>
@@ -39,6 +41,11 @@ const CreateIndexModalHeader = () => {
3941
href="https://docs.mongodb.com/manual/applications/indexes/"
4042
target="_blank"
4143
rel="noopener noreferrer"
44+
onClick={() => {
45+
track('Index Strategies Documentation Clicked', {
46+
context: 'Create Index Modal',
47+
});
48+
}}
4249
>
4350
Index Strategies Documentation
4451
</Link>

packages/compass-telemetry/src/telemetry-events.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2817,6 +2817,7 @@ type CreateIndexCodeEquivalentToggled = CommonEvent<{
28172817
name: 'Code Equivalent Toggled';
28182818
payload: {
28192819
context: CreateIndexModalContext;
2820+
toggled: 'On' | 'Off';
28202821
};
28212822
}>;
28222823

@@ -2848,6 +2849,27 @@ type CreateIndexCoveredQueriesLearnMoreClicked = CommonEvent<{
28482849
};
28492850
}>;
28502851

2852+
type CreateIndexInputIndexCopied = CommonEvent<{
2853+
name: 'Input Index Copied';
2854+
payload: {
2855+
context: CreateIndexModalContext;
2856+
};
2857+
}>;
2858+
2859+
type CreateIndexIndexSuggestionsCopied = CommonEvent<{
2860+
name: 'Index Suggestions Copied';
2861+
payload: {
2862+
context: CreateIndexModalContext;
2863+
};
2864+
}>;
2865+
2866+
type CreateIndexStrategiesDocumentationClicked = CommonEvent<{
2867+
name: 'Index Strategies Documentation Clicked';
2868+
payload: {
2869+
context: CreateIndexModalContext;
2870+
};
2871+
}>;
2872+
28512873
export type TelemetryEvent =
28522874
| AggregationCanceledEvent
28532875
| AggregationCopiedEvent
@@ -2989,4 +3011,7 @@ export type TelemetryEvent =
29893011
| CreateIndexProgrammingLanguageLinkClicked
29903012
| CreateIndexQueryTabClicked
29913013
| CreateIndexSuggestedIndexButtonClicked
3014+
| CreateIndexInputIndexCopied
3015+
| CreateIndexIndexSuggestionsCopied
3016+
| CreateIndexStrategiesDocumentationClicked
29923017
| UUIDEncounteredEvent;

0 commit comments

Comments
 (0)