From b7d285d389f20bc8afc050722381a7c8f92e8c01 Mon Sep 17 00:00:00 2001 From: Ruby Dong Date: Thu, 29 May 2025 12:10:27 -0400 Subject: [PATCH 1/4] set up for analytics in telemetry events --- .../src/components/create-index-fields.tsx | 10 +- .../compass-telemetry/src/telemetry-events.ts | 131 +++++++++++++++--- 2 files changed, 118 insertions(+), 23 deletions(-) diff --git a/packages/compass-indexes/src/components/create-index-fields.tsx b/packages/compass-indexes/src/components/create-index-fields.tsx index 617504a7880..09968ac1894 100644 --- a/packages/compass-indexes/src/components/create-index-fields.tsx +++ b/packages/compass-indexes/src/components/create-index-fields.tsx @@ -13,6 +13,7 @@ import { } from '@mongodb-js/compass-components'; import type { Field } from '../modules/create-index'; +import { useTelemetry } from '@mongodb-js/compass-telemetry/provider'; /** * Current allowed types for indexes. @@ -89,6 +90,13 @@ function CreateIndexFields({ ); const comboboxOptions = schemaFields.map((value) => ({ value })); + const track = useTelemetry(); + const handleOnAddFieldClick = useCallback(() => { + onAddFieldClick(); + track('New Index Field Added', { + context: 'Create Index Modal', + }); + }, []); return ( )} - onAddItem={onAddFieldClick} + onAddItem={handleOnAddFieldClick} onRemoveItem={onRemoveFieldClick} addButtonTestId="add-index-field-button" removeButtonTestId="remove-index-field-button" diff --git a/packages/compass-telemetry/src/telemetry-events.ts b/packages/compass-telemetry/src/telemetry-events.ts index 580f8f30a61..a94ef3739f5 100644 --- a/packages/compass-telemetry/src/telemetry-events.ts +++ b/packages/compass-telemetry/src/telemetry-events.ts @@ -2716,6 +2716,82 @@ type UUIDEncounteredEvent = CommonEvent<{ }; }>; +type CreateIndexNewFieldAdded = CommonEvent<{ + name: 'New Index Field Added'; + payload: { + context: CreateIndexModalContext; + }; +}>; +type CreateIndexOptionsClicked = CommonEvent<{ + name: 'Options Clicked'; + payload: { + context: CreateIndexModalContext; + }; +}>; + +type CreateIndexCoveredQueriesButtonClicked = CommonEvent<{ + name: 'Covered Queries Button Clicked'; + payload: { + context: CreateIndexModalContext; + }; +}>; + +type CreateIndexSuggestedIndexButtonClicked = CommonEvent<{ + name: 'Suggested Index Button Clicked'; + payload: { + context: CreateIndexModalContext; + }; +}>; + +type CreateIndexIndexTabClicked = CommonEvent<{ + name: 'Start with an Index Tab Clicked'; + payload: { + context: CreateIndexModalContext; + }; +}>; + +type CreateIndexQueryTabClicked = CommonEvent<{ + name: 'Start with a Query Tab Clicked'; + payload: { + context: CreateIndexModalContext; + }; +}>; + +type CreateIndexCodeEquivalentToggled = CommonEvent<{ + name: 'Code Equivalent Toggled'; + payload: { + context: CreateIndexModalContext; + }; +}>; + +type CreateIndexModalClosed = CommonEvent<{ + name: 'Create Index Modal Closed'; + payload: { + context: CreateIndexModalContext; + }; +}>; + +type CreateIndexModalCancelled = CommonEvent<{ + name: 'Cancel Button Clicked'; + payload: { + context: CreateIndexModalContext; + }; +}>; + +type CreateIndexProgrammingLanguageLinkClicked = CommonEvent<{ + name: 'View Programming Language Syntax Clicked'; + payload: { + context: CreateIndexModalContext; + }; +}>; + +type CreateIndexCoveredQueriesLearnMoreClicked = CommonEvent<{ + name: 'Covered Queries Learn More Clicked'; + payload: { + context: CreateIndexModalContext; + }; +}>; + export type TelemetryEvent = | AggregationCanceledEvent | AggregationCopiedEvent @@ -2723,8 +2799,8 @@ export type TelemetryEvent = | AggregationEditedEvent | AggregationExecutedEvent | AggregationExplainedEvent - | AggregationExportedEvent | AggregationExportOpenedEvent + | AggregationExportedEvent | AggregationOpenedEvent | AggregationSavedAsViewEvent | AggregationSavedEvent @@ -2737,15 +2813,15 @@ export type TelemetryEvent = | AiResponseFailedEvent | AiResponseGeneratedEvent | ApplicationLaunchedEvent + | ApplicationRestartAcceptedEvent | AtlasLinkClickedEvent | AtlasSignInErrorEvent | AtlasSignInSuccessEvent | AtlasSignOutEvent | AutoupdateAcceptedEvent + | AutoupdateDisabledEvent | AutoupdateDismissedEvent - | ApplicationRestartAcceptedEvent | AutoupdateEnabledEvent - | AutoupdateDisabledEvent | BulkDeleteExecutedEvent | BulkDeleteOpenedEvent | BulkUpdateExecutedEvent @@ -2759,10 +2835,25 @@ export type TelemetryEvent = | ConnectionFailedEvent | ConnectionImportedEvent | ConnectionRemovedEvent + | CreateIndexButtonClickedEvent + | CreateIndexCodeEquivalentToggled + | CreateIndexCoveredQueriesButtonClicked + | CreateIndexCoveredQueriesLearnMoreClicked + | CreateIndexErrorGettingCoveredQueriesEvent + | CreateIndexErrorParsingQueryEvent + | CreateIndexIndexTabClicked + | CreateIndexModalCancelled + | CreateIndexModalClosed + | CreateIndexNewFieldAdded + | CreateIndexOptionsClicked + | CreateIndexProgrammingLanguageLinkClicked + | CreateIndexQueryTabClicked + | CreateIndexSuggestedIndexButtonClicked + | CumulativeLayoutShiftEvent | CurrentOpShowOperationDetailsEvent | DatabaseCreatedEvent - | DeleteExportedEvent | DeleteExportOpenedEvent + | DeleteExportedEvent | DetailViewHideOperationDetailsEvent | DetailViewKillOpEvent | DocumentClonedEvent @@ -2772,9 +2863,12 @@ export type TelemetryEvent = | DocumentUpdatedEvent | EditorTypeChangedEvent | ErrorFetchingAttributesEvent + | ExperimentViewedEvent | ExplainPlanExecutedEvent | ExportCompletedEvent | ExportOpenedEvent + | FirstContentfulPaintEvent + | FirstInputDelayEvent | FocusModeClosedEvent | FocusModeOpenedEvent | GuideCueDismissedEvent @@ -2782,12 +2876,13 @@ export type TelemetryEvent = | ImportCompletedEvent | ImportErrorLogOpenedEvent | ImportOpenedEvent - | IndexCreatedEvent | IndexCreateFailedEvent | IndexCreateOpenedEvent + | IndexCreatedEvent | IndexDroppedEvent | IndexEditedEvent | KeytarSecretsMigrationFailedEvent + | LargestContentfulPaintEvent | MyQueriesFilterEvent | MyQueriesSearchEvent | MyQueriesSortEvent @@ -2799,27 +2894,28 @@ export type TelemetryEvent = | PipelineAiFeedbackEvent | QueryEditedEvent | QueryExecutedEvent - | QueryExportedEvent | QueryExportOpenedEvent + | QueryExportedEvent | QueryHistoryClosedEvent | QueryHistoryFavoriteAddedEvent | QueryHistoryFavoriteCopiedEvent | QueryHistoryFavoriteRemovedEvent - | QueryHistoryFavoritesEvent | QueryHistoryFavoriteUsedEvent + | QueryHistoryFavoritesEvent | QueryHistoryOpenedEvent | QueryHistoryRecentEvent | QueryHistoryRecentUsedEvent | QueryResultsRefreshedEvent | SchemaAnalysisCancelledEvent | SchemaAnalyzedEvent - | SchemaExportedEvent | SchemaExportFailedEvent + | SchemaExportedEvent | SchemaValidationAddedEvent | SchemaValidationEditedEvent - | SchemaValidationUpdatedEvent | SchemaValidationGeneratedEvent + | SchemaValidationUpdatedEvent | ScreenEvent + | SecretStorageNotAvailableEvent | ShellEvent | SignalActionButtonClickedEvent | SignalClosedEvent @@ -2828,17 +2924,8 @@ export type TelemetryEvent = | SignalShownEvent | SwitchViewTypeEvent | ThemeChangedEvent - | UpdateExportedEvent - | UpdateExportOpenedEvent - | ViewUpdatedEvent - | SecretStorageNotAvailableEvent - | FirstContentfulPaintEvent - | LargestContentfulPaintEvent - | FirstInputDelayEvent - | CumulativeLayoutShiftEvent | TimeToFirstByteEvent - | ExperimentViewedEvent - | CreateIndexButtonClickedEvent - | CreateIndexErrorParsingQueryEvent - | CreateIndexErrorGettingCoveredQueriesEvent - | UUIDEncounteredEvent; + | UUIDEncounteredEvent + | UpdateExportOpenedEvent + | UpdateExportedEvent + | ViewUpdatedEvent; From 3398a49f9be0648b9d511f5802717ab24ca2c76b Mon Sep 17 00:00:00 2001 From: Ruby Dong Date: Thu, 29 May 2025 14:48:04 -0400 Subject: [PATCH 2/4] added the rest of analytics --- .../src/components/accordion.tsx | 5 +++++ .../create-index-actions.tsx | 10 +++++++++- .../src/components/create-index-fields.tsx | 6 ++++-- .../create-index-form/create-index-form.tsx | 16 +++++++++++++++ .../create-index-form/index-flow-section.tsx | 20 +++++++++++++++++-- .../create-index-form/mdb-code-viewer.tsx | 7 +++++++ .../create-index-form/query-flow-section.tsx | 8 +++++++- .../create-index-modal/create-index-modal.tsx | 6 ++++++ .../compass-telemetry/src/telemetry-events.ts | 1 + 9 files changed, 73 insertions(+), 6 deletions(-) diff --git a/packages/compass-components/src/components/accordion.tsx b/packages/compass-components/src/components/accordion.tsx index eb8f894e5c2..ff162d31bdb 100644 --- a/packages/compass-components/src/components/accordion.tsx +++ b/packages/compass-components/src/components/accordion.tsx @@ -52,12 +52,14 @@ interface AccordionProps extends React.HTMLProps { hintText?: string; open?: boolean; setOpen?: (newValue: boolean) => void; + onOpenCallback?: () => void; } function Accordion({ text, hintText, open: _open, setOpen: _setOpen, + onOpenCallback, ...props }: React.PropsWithChildren): React.ReactElement { const darkMode = useDarkMode(); @@ -70,6 +72,9 @@ function Accordion({ setOpenRef.current?.(newValue); return newValue; }); + if (typeof onOpenCallback === 'function') { + onOpenCallback(); + } }, []); const regionId = useId(); const labelId = useId(); diff --git a/packages/compass-indexes/src/components/create-index-actions/create-index-actions.tsx b/packages/compass-indexes/src/components/create-index-actions/create-index-actions.tsx index 20c20501d4c..8b0c31d446b 100644 --- a/packages/compass-indexes/src/components/create-index-actions/create-index-actions.tsx +++ b/packages/compass-indexes/src/components/create-index-actions/create-index-actions.tsx @@ -4,6 +4,7 @@ import { connect } from 'react-redux'; import { areAllFieldsFilledIn } from '../../utils/create-index-modal-validation'; import type { Field, Tab } from '../../modules/create-index'; import type { RootState } from '../../modules'; +import { useTelemetry } from '@mongodb-js/compass-telemetry/provider'; const containerStyles = css({ display: 'flex', @@ -45,6 +46,8 @@ function CreateIndexActions({ showIndexesGuidanceVariant: boolean; indexSuggestions: Record | null; }) { + const track = useTelemetry(); + let isCreateIndexButtonDisabled = false; if (showIndexesGuidanceVariant) { @@ -81,7 +84,12 @@ function CreateIndexActions({ diff --git a/packages/compass-indexes/src/components/create-index-fields.tsx b/packages/compass-indexes/src/components/create-index-fields.tsx index 09968ac1894..e13adf0e849 100644 --- a/packages/compass-indexes/src/components/create-index-fields.tsx +++ b/packages/compass-indexes/src/components/create-index-fields.tsx @@ -64,6 +64,8 @@ function CreateIndexFields({ onSelectFieldNameClick, onSelectFieldTypeClick, }: CreateIndexFieldsProps): React.ReactElement { + const track = useTelemetry(); + const [indexTypes, selectorWidth] = useMemo(() => { const serverSupportsColumnStoreIndex = hasColumnstoreIndexesSupport(serverVersion); @@ -89,8 +91,6 @@ function CreateIndexFields({ [onSelectFieldNameClick] ); - const comboboxOptions = schemaFields.map((value) => ({ value })); - const track = useTelemetry(); const handleOnAddFieldClick = useCallback(() => { onAddFieldClick(); track('New Index Field Added', { @@ -98,6 +98,8 @@ function CreateIndexFields({ }); }, []); + const comboboxOptions = schemaFields.map((value) => ({ value })); + return ( { return schemaFields @@ -108,6 +112,13 @@ function CreateIndexForm({ data-testid="create-index-form-flows" id="create-index-form-flows" onChange={(e) => { + const tabName = + e.target.value === 'IndexFlow' + ? 'Start with an Index' + : 'Start with a Query'; + track(`${tabName} Tab Clicked`, { + context: 'Create Index Modal', + }); onTabClick(e.target.value as Tab); }} value={currentTab} @@ -173,6 +184,11 @@ function CreateIndexForm({ { + track('Options Clicked', { + context: 'Create Index Modal', + }); + }} >
setIsCodeEquivalentToggleChecked(value)} + onChange={(value) => { + setIsCodeEquivalentToggleChecked(value); + track('Code Equivalent Toggled', { + context: 'Create Index Modal', + }); + }} checked={isCodeEquivalentToggleChecked} disabled={!areAllFieldsFilledIn} /> @@ -336,7 +345,14 @@ const IndexFlowSection = ({ {optimalQueries}

- + { + track('Covered Queries Learn More Clicked', { + context: 'Create Index Modal', + }); + }} + > Learn More diff --git a/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx b/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx index e3d7f46f913..49e4c6bbb5a 100644 --- a/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx +++ b/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx @@ -1,4 +1,5 @@ import { Code, Link, css, spacing } from '@mongodb-js/compass-components'; +import { useTelemetry } from '@mongodb-js/compass-telemetry/provider'; import React from 'react'; const containerStyles = css({ @@ -62,6 +63,7 @@ const MDBCodeViewer = ({ indexNameTypeMap: Record; dataTestId?: string; }) => { + const track = useTelemetry(); const GeneratedCode = generateCode({ dbName, collectionName, @@ -79,6 +81,11 @@ const MDBCodeViewer = ({ href="https://www.mongodb.com/docs/manual/core/indexes/create-index/" target="_blank" rel="noreferrer noopener" + onClick={() => { + track('View Programming Language Syntax Clicked', { + context: 'Create Index Modal', + }); + }} > here diff --git a/packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx b/packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx index 0c304747fff..7e1ea1f2ace 100644 --- a/packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx +++ b/packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx @@ -23,6 +23,7 @@ import type { } from '../../modules/create-index'; import { connect } from 'react-redux'; import { parseFilter } from 'mongodb-query-parser'; +import { useTelemetry } from '@mongodb-js/compass-telemetry/provider'; const inputQueryContainerStyles = css({ display: 'flex', @@ -109,8 +110,9 @@ const QueryFlowSection = ({ fetchingSuggestionsState: IndexSuggestionState; initialQuery: Document | null; }) => { + const track = useTelemetry(); const [inputQuery, setInputQuery] = React.useState( - JSON.stringify(initialQuery ?? '', null, 2) + initialQuery ? JSON.stringify(initialQuery, null, 2) : '' ); const [hasNewChanges, setHasNewChanges] = React.useState( initialQuery !== null @@ -143,6 +145,10 @@ const QueryFlowSection = ({ inputQuery: sanitizedInputQuery, }); + track('Suggested Index Button Clicked', { + context: 'Create Index Modal', + }); + setHasNewChanges(false); }, [inputQuery, dbName, collectionName, onSuggestedIndexButtonClick]); diff --git a/packages/compass-indexes/src/components/create-index-modal/create-index-modal.tsx b/packages/compass-indexes/src/components/create-index-modal/create-index-modal.tsx index 88205465d46..ddb140f2e30 100644 --- a/packages/compass-indexes/src/components/create-index-modal/create-index-modal.tsx +++ b/packages/compass-indexes/src/components/create-index-modal/create-index-modal.tsx @@ -25,6 +25,7 @@ import { type TrackFunction, useFireExperimentViewed, TestName, + useTelemetry, } from '@mongodb-js/compass-telemetry/provider'; import { useConnectionInfoRef } from '@mongodb-js/compass-connections/provider'; import { usePreference } from 'compass-preferences-model/provider'; @@ -55,10 +56,15 @@ function CreateIndexModal({ ...props }: CreateIndexModalProps) { const connectionInfoRef = useConnectionInfoRef(); + const track = useTelemetry(); + const onSetOpen = useCallback( (open) => { if (!open) { onCancelCreateIndexClick(); + track('Create Index Modal Closed', { + context: 'Create Index Modal', + }); } }, [onCancelCreateIndexClick] diff --git a/packages/compass-telemetry/src/telemetry-events.ts b/packages/compass-telemetry/src/telemetry-events.ts index a94ef3739f5..1ddd805595f 100644 --- a/packages/compass-telemetry/src/telemetry-events.ts +++ b/packages/compass-telemetry/src/telemetry-events.ts @@ -2722,6 +2722,7 @@ type CreateIndexNewFieldAdded = CommonEvent<{ context: CreateIndexModalContext; }; }>; + type CreateIndexOptionsClicked = CommonEvent<{ name: 'Options Clicked'; payload: { From c5d5002af8233908096e923a49867f555be9681f Mon Sep 17 00:00:00 2001 From: Ruby Dong Date: Mon, 2 Jun 2025 10:12:45 -0400 Subject: [PATCH 3/4] renamed prop to onToggle and removed sorting for telemetry events --- .../src/components/accordion.tsx | 8 +-- .../create-index-form/create-index-form.tsx | 2 +- .../compass-telemetry/src/telemetry-events.ts | 66 +++++++++---------- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/packages/compass-components/src/components/accordion.tsx b/packages/compass-components/src/components/accordion.tsx index ff162d31bdb..e5affd13c3d 100644 --- a/packages/compass-components/src/components/accordion.tsx +++ b/packages/compass-components/src/components/accordion.tsx @@ -52,14 +52,14 @@ interface AccordionProps extends React.HTMLProps { hintText?: string; open?: boolean; setOpen?: (newValue: boolean) => void; - onOpenCallback?: () => void; + onToggle?: () => void; } function Accordion({ text, hintText, open: _open, setOpen: _setOpen, - onOpenCallback, + onToggle, ...props }: React.PropsWithChildren): React.ReactElement { const darkMode = useDarkMode(); @@ -72,8 +72,8 @@ function Accordion({ setOpenRef.current?.(newValue); return newValue; }); - if (typeof onOpenCallback === 'function') { - onOpenCallback(); + if (typeof onToggle === 'function') { + onToggle(); } }, []); const regionId = useId(); diff --git a/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx b/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx index d8a45351e78..43118967b91 100644 --- a/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx +++ b/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx @@ -184,7 +184,7 @@ function CreateIndexForm({ { + onToggle={() => { track('Options Clicked', { context: 'Create Index Modal', }); diff --git a/packages/compass-telemetry/src/telemetry-events.ts b/packages/compass-telemetry/src/telemetry-events.ts index 1ddd805595f..d31f3344ef0 100644 --- a/packages/compass-telemetry/src/telemetry-events.ts +++ b/packages/compass-telemetry/src/telemetry-events.ts @@ -2800,8 +2800,8 @@ export type TelemetryEvent = | AggregationEditedEvent | AggregationExecutedEvent | AggregationExplainedEvent - | AggregationExportOpenedEvent | AggregationExportedEvent + | AggregationExportOpenedEvent | AggregationOpenedEvent | AggregationSavedAsViewEvent | AggregationSavedEvent @@ -2814,15 +2814,15 @@ export type TelemetryEvent = | AiResponseFailedEvent | AiResponseGeneratedEvent | ApplicationLaunchedEvent - | ApplicationRestartAcceptedEvent | AtlasLinkClickedEvent | AtlasSignInErrorEvent | AtlasSignInSuccessEvent | AtlasSignOutEvent | AutoupdateAcceptedEvent - | AutoupdateDisabledEvent | AutoupdateDismissedEvent + | ApplicationRestartAcceptedEvent | AutoupdateEnabledEvent + | AutoupdateDisabledEvent | BulkDeleteExecutedEvent | BulkDeleteOpenedEvent | BulkUpdateExecutedEvent @@ -2836,25 +2836,10 @@ export type TelemetryEvent = | ConnectionFailedEvent | ConnectionImportedEvent | ConnectionRemovedEvent - | CreateIndexButtonClickedEvent - | CreateIndexCodeEquivalentToggled - | CreateIndexCoveredQueriesButtonClicked - | CreateIndexCoveredQueriesLearnMoreClicked - | CreateIndexErrorGettingCoveredQueriesEvent - | CreateIndexErrorParsingQueryEvent - | CreateIndexIndexTabClicked - | CreateIndexModalCancelled - | CreateIndexModalClosed - | CreateIndexNewFieldAdded - | CreateIndexOptionsClicked - | CreateIndexProgrammingLanguageLinkClicked - | CreateIndexQueryTabClicked - | CreateIndexSuggestedIndexButtonClicked - | CumulativeLayoutShiftEvent | CurrentOpShowOperationDetailsEvent | DatabaseCreatedEvent - | DeleteExportOpenedEvent | DeleteExportedEvent + | DeleteExportOpenedEvent | DetailViewHideOperationDetailsEvent | DetailViewKillOpEvent | DocumentClonedEvent @@ -2864,12 +2849,9 @@ export type TelemetryEvent = | DocumentUpdatedEvent | EditorTypeChangedEvent | ErrorFetchingAttributesEvent - | ExperimentViewedEvent | ExplainPlanExecutedEvent | ExportCompletedEvent | ExportOpenedEvent - | FirstContentfulPaintEvent - | FirstInputDelayEvent | FocusModeClosedEvent | FocusModeOpenedEvent | GuideCueDismissedEvent @@ -2877,13 +2859,12 @@ export type TelemetryEvent = | ImportCompletedEvent | ImportErrorLogOpenedEvent | ImportOpenedEvent + | IndexCreatedEvent | IndexCreateFailedEvent | IndexCreateOpenedEvent - | IndexCreatedEvent | IndexDroppedEvent | IndexEditedEvent | KeytarSecretsMigrationFailedEvent - | LargestContentfulPaintEvent | MyQueriesFilterEvent | MyQueriesSearchEvent | MyQueriesSortEvent @@ -2895,28 +2876,27 @@ export type TelemetryEvent = | PipelineAiFeedbackEvent | QueryEditedEvent | QueryExecutedEvent - | QueryExportOpenedEvent | QueryExportedEvent + | QueryExportOpenedEvent | QueryHistoryClosedEvent | QueryHistoryFavoriteAddedEvent | QueryHistoryFavoriteCopiedEvent | QueryHistoryFavoriteRemovedEvent - | QueryHistoryFavoriteUsedEvent | QueryHistoryFavoritesEvent + | QueryHistoryFavoriteUsedEvent | QueryHistoryOpenedEvent | QueryHistoryRecentEvent | QueryHistoryRecentUsedEvent | QueryResultsRefreshedEvent | SchemaAnalysisCancelledEvent | SchemaAnalyzedEvent - | SchemaExportFailedEvent | SchemaExportedEvent + | SchemaExportFailedEvent | SchemaValidationAddedEvent | SchemaValidationEditedEvent - | SchemaValidationGeneratedEvent | SchemaValidationUpdatedEvent + | SchemaValidationGeneratedEvent | ScreenEvent - | SecretStorageNotAvailableEvent | ShellEvent | SignalActionButtonClickedEvent | SignalClosedEvent @@ -2925,8 +2905,28 @@ export type TelemetryEvent = | SignalShownEvent | SwitchViewTypeEvent | ThemeChangedEvent - | TimeToFirstByteEvent - | UUIDEncounteredEvent - | UpdateExportOpenedEvent | UpdateExportedEvent - | ViewUpdatedEvent; + | UpdateExportOpenedEvent + | ViewUpdatedEvent + | SecretStorageNotAvailableEvent + | FirstContentfulPaintEvent + | LargestContentfulPaintEvent + | FirstInputDelayEvent + | CumulativeLayoutShiftEvent + | TimeToFirstByteEvent + | ExperimentViewedEvent + | CreateIndexButtonClickedEvent + | CreateIndexErrorParsingQueryEvent + | CreateIndexErrorGettingCoveredQueriesEvent + | CreateIndexCodeEquivalentToggled + | CreateIndexCoveredQueriesButtonClicked + | CreateIndexCoveredQueriesLearnMoreClicked + | CreateIndexIndexTabClicked + | CreateIndexModalCancelled + | CreateIndexModalClosed + | CreateIndexNewFieldAdded + | CreateIndexOptionsClicked + | CreateIndexProgrammingLanguageLinkClicked + | CreateIndexQueryTabClicked + | CreateIndexSuggestedIndexButtonClicked + | UUIDEncounteredEvent; From 781c64f5eb4ab7b20dffd07da5e77d222e6e8917 Mon Sep 17 00:00:00 2001 From: Ruby Dong Date: Mon, 2 Jun 2025 11:16:50 -0400 Subject: [PATCH 4/4] use existing setOpen instead of new onToggle --- packages/compass-components/src/components/accordion.tsx | 5 ----- .../src/components/create-index-form/create-index-form.tsx | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/compass-components/src/components/accordion.tsx b/packages/compass-components/src/components/accordion.tsx index e5affd13c3d..eb8f894e5c2 100644 --- a/packages/compass-components/src/components/accordion.tsx +++ b/packages/compass-components/src/components/accordion.tsx @@ -52,14 +52,12 @@ interface AccordionProps extends React.HTMLProps { hintText?: string; open?: boolean; setOpen?: (newValue: boolean) => void; - onToggle?: () => void; } function Accordion({ text, hintText, open: _open, setOpen: _setOpen, - onToggle, ...props }: React.PropsWithChildren): React.ReactElement { const darkMode = useDarkMode(); @@ -72,9 +70,6 @@ function Accordion({ setOpenRef.current?.(newValue); return newValue; }); - if (typeof onToggle === 'function') { - onToggle(); - } }, []); const regionId = useId(); const labelId = useId(); diff --git a/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx b/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx index 43118967b91..55e42b7b674 100644 --- a/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx +++ b/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx @@ -184,7 +184,7 @@ function CreateIndexForm({ { + setOpen={() => { track('Options Clicked', { context: 'Create Index Modal', });