From e827540a6db27ebe8b02c2f0a0d7cc59affcb548 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Fri, 21 Mar 2025 11:39:30 +0000 Subject: [PATCH] Record an event when the "unsaved doc" alert is displayed (#24431) GitOrigin-RevId: 87ccdf5a15173afa7548532d72fb1d3e32f255fe --- .../unsaved-docs/unsaved-docs-alert.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/services/web/frontend/js/features/ide-react/components/unsaved-docs/unsaved-docs-alert.tsx b/services/web/frontend/js/features/ide-react/components/unsaved-docs/unsaved-docs-alert.tsx index 782cc44635..70d0d69885 100644 --- a/services/web/frontend/js/features/ide-react/components/unsaved-docs/unsaved-docs-alert.tsx +++ b/services/web/frontend/js/features/ide-react/components/unsaved-docs/unsaved-docs-alert.tsx @@ -1,7 +1,9 @@ -import { FC, useMemo } from 'react' +import { FC, useEffect, useMemo, useRef } from 'react' import { useFileTreePathContext } from '@/features/file-tree/contexts/file-tree-path' import { useTranslation } from 'react-i18next' import OLNotification from '@/features/ui/components/ol/ol-notification' +import { sendMB } from '@/infrastructure/event-tracking' +import { useConnectionContext } from '@/features/ide-react/context/connection-context' const MAX_UNSAVED_ALERT_SECONDS = 15 @@ -23,8 +25,21 @@ const UnsavedDocAlert: FC<{ docId: string; seconds: number }> = ({ seconds, }) => { const { pathInFolder, findEntityByPath } = useFileTreePathContext() + const { socket } = useConnectionContext() const { t } = useTranslation() + const recordedRef = useRef(false) + + useEffect(() => { + if (!recordedRef.current) { + recordedRef.current = true + sendMB('unsaved-doc-alert-shown', { + docId, + transport: socket.socket.transport?.name, + }) + } + }, [docId, socket]) + const doc = useMemo(() => { const path = pathInFolder(docId) return path ? findEntityByPath(path) : null