diff --git a/CHANGELOG.md b/CHANGELOG.md index df607e8c..7247e762 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to - ✨(frontend) add a sound tester to the output select menu - ✨(frontend) prompt for permissions when toggling a denied device - ⚗️(frontend) capture console.error in PostHog +- 📈(frontend) snapshot media devices on the happy path ### Changed diff --git a/src/frontend/src/features/analytics/telemetry.ts b/src/frontend/src/features/analytics/telemetry.ts index b2d2adcf..20b0dc69 100644 --- a/src/frontend/src/features/analytics/telemetry.ts +++ b/src/frontend/src/features/analytics/telemetry.ts @@ -135,7 +135,9 @@ export const captureMediaEvent = async ( | 'media-device-topology' | 'media-device-success' | 'device-not-found' - | 'permissions-denied', + | 'permissions-denied' + | 'visit-room' + | 'connection-event', props: Record ) => { captureEvent(event, { ...props, ...(await deviceSnapshot()) }) diff --git a/src/frontend/src/features/rooms/components/Conference.tsx b/src/frontend/src/features/rooms/components/Conference.tsx index 2471a1b0..215f6a74 100644 --- a/src/frontend/src/features/rooms/components/Conference.tsx +++ b/src/frontend/src/features/rooms/components/Conference.tsx @@ -26,11 +26,7 @@ import { css } from '@/styled-system/css' import { BackgroundProcessorFactory } from '../livekit/components/blur' import { LocalUserChoices } from '@/stores/userChoices' import { MediaDeviceErrorAlert } from './MediaDeviceErrorAlert' -import { - captureEvent, - reportError, - captureMediaEvent, -} from '@/features/analytics/telemetry' +import { captureMediaEvent, reportError } from '@/features/analytics/telemetry' import { useConfig } from '@/api/useConfig' import { isFireFox } from '@/utils/livekit' import { useIsMobile } from '@/utils/useIsMobile' @@ -65,7 +61,7 @@ export const Conference = ({ const { username } = useSnapshot(userStore) useEffect(() => { - captureEvent('visit-room', { slug: roomId }) + void captureMediaEvent('visit-room', { slug: roomId }) }, [roomId]) const fetchKey = [keys.room, roomId] diff --git a/src/frontend/src/features/rooms/livekit/components/ConnectionObserver.tsx b/src/frontend/src/features/rooms/livekit/components/ConnectionObserver.tsx index f4afc6eb..baab2a9d 100644 --- a/src/frontend/src/features/rooms/livekit/components/ConnectionObserver.tsx +++ b/src/frontend/src/features/rooms/livekit/components/ConnectionObserver.tsx @@ -14,7 +14,7 @@ import { connectionObserverStore } from '@/stores/connectionObserver' import { useFeatureFlagEnabled } from 'posthog-js/react' import { isMobileBrowser } from '@livekit/components-core' import { FeatureFlags } from '@/features/analytics/enums' -import { captureEvent } from '@/features/analytics/telemetry' +import { captureEvent, captureMediaEvent } from '@/features/analytics/telemetry' const CANDIDATE_POLL_INTERVAL_MS = 5000 @@ -182,7 +182,7 @@ export const ConnectionObserver = () => { // total session duration from first connect to final disconnect. if (connectionStartTimeRef.current != null) return connectionStartTimeRef.current = Date.now() - captureEvent('connection-event') + void captureMediaEvent('connection-event', {}) } const handleReconnect = () => {