diff --git a/apps/desktop/src/components/editor-area/note-header/listen-button.tsx b/apps/desktop/src/components/editor-area/note-header/listen-button.tsx index caa09592e7..d5349a51e4 100644 --- a/apps/desktop/src/components/editor-area/note-header/listen-button.tsx +++ b/apps/desktop/src/components/editor-area/note-header/listen-button.tsx @@ -1,16 +1,7 @@ import { Trans } from "@lingui/react/macro"; -import { useMutation, UseMutationResult, useQuery } from "@tanstack/react-query"; -import { - CheckIcon, - MicIcon, - MicOffIcon, - PauseIcon, - PlayIcon, - StopCircleIcon, - Volume2Icon, - VolumeOffIcon, -} from "lucide-react"; -import { useEffect, useState } from "react"; +import { useMutation, useQuery } from "@tanstack/react-query"; +import { MicIcon, MicOffIcon, PauseIcon, PlayIcon, StopCircleIcon, Volume2Icon, VolumeOffIcon } from "lucide-react"; +import { useState } from "react"; import SoundIndicator from "@/components/sound-indicator"; import { useHypr } from "@/contexts"; @@ -48,8 +39,6 @@ export default function ListenButton({ sessionId }: { sessionId: string }) { pause: s.pause, stop: s.stop, loading: s.loading, - hasShownConsent: s.hasShownConsent, - setHasShownConsent: s.setHasShownConsent, })); const isEnhancePending = useEnhancePendingState(sessionId); @@ -65,7 +54,7 @@ export default function ListenButton({ sessionId }: { sessionId: string }) { analyticsCommands.event({ event: "onboarding_video_started", - distinct_id: userId, + distinct_id: isOnboarding ? "onboarding" : userId, session_id: sessionId, }); } @@ -210,71 +199,31 @@ function WhenInactiveAndMeetingEndedOnboarding({ disabled, onClick }: { disabled ); } -export function WhenActive() { - const [open, setOpen] = useState(true); - const { sessionId } = useOngoingSession((s) => ({ sessionId: s.sessionId })); - const { onboardingSessionId } = useHypr(); - const isOnboarding = sessionId === onboardingSessionId; - +function WhenActive() { const ongoingSessionStore = useOngoingSession((s) => ({ pause: s.pause, stop: s.stop, - loading: s.loading, })); - - const { showConsent, setHasShownConsent } = useConsentManagement(isOnboarding); const audioControls = useAudioControls(); - useEffect(() => { - if (showConsent) { - listenerCommands.setSpeakerMuted(true).then(() => { - audioControls.refetchSpeakerMuted(); - }); - } - }, [showConsent, audioControls.refetchSpeakerMuted]); - - const handleConsentDecision = useMutation({ - mutationFn: async (recordEveryone: boolean) => { - if (recordEveryone) { - await listenerCommands.setSpeakerMuted(false); - } else { - await listenerCommands.setSpeakerMuted(true); - await listenerCommands.setMicMuted(false); - } - setHasShownConsent(true); - }, - onSuccess: () => { - audioControls.refetchSpeakerMuted(); - audioControls.refetchMicMuted(); - }, - }); + const [isPopoverOpen, setIsPopoverOpen] = useState(false); const handlePauseSession = () => { ongoingSessionStore.pause(); - setOpen(false); + setIsPopoverOpen(false); }; const handleStopSession = () => { ongoingSessionStore.stop(); - setOpen(false); - }; - - const handleOpenChange = (isOpen: boolean) => { - if (!isOpen && !showConsent) { - setOpen(false); - } else if (showConsent) { - setOpen(true); - } else { - setOpen(isOpen); - } + setIsPopoverOpen(false); }; return ( - + - - {showConsent ? : ( - - )} + ); } -function ConsentDialog({ - onDecision, -}: { - onDecision: UseMutationResult; -}) { - return ( -
-
-

- Recording Started -

-

- Did you get consent from everyone in the meeting? -

-
- - -
-
-
- ); -} - function RecordingControls({ audioControls, onPause, @@ -412,21 +321,6 @@ function AudioControlButton({ ); } -function useConsentManagement(isOnboarding: boolean) { - const ongoingSessionStore = useOngoingSession((s) => ({ - hasShownConsent: s.hasShownConsent, - setHasShownConsent: s.setHasShownConsent, - })); - - const effectiveHasShownConsent = isOnboarding ? true : ongoingSessionStore.hasShownConsent; - const showConsent = !effectiveHasShownConsent && !isOnboarding; - - return { - showConsent, - setHasShownConsent: ongoingSessionStore.setHasShownConsent, - }; -} - function useAudioControls() { const { data: isMicMuted, refetch: refetchMicMuted } = useQuery({ queryKey: ["mic-muted"], diff --git a/packages/utils/src/stores/ongoing-session.ts b/packages/utils/src/stores/ongoing-session.ts index 49646ff1ea..1655fcfb19 100644 --- a/packages/utils/src/stores/ongoing-session.ts +++ b/packages/utils/src/stores/ongoing-session.ts @@ -11,14 +11,12 @@ type State = { status: "inactive" | "running_active" | "running_paused"; amplitude: { mic: number; speaker: number }; enhanceController: AbortController | null; - hasShownConsent: boolean; }; type Actions = { get: () => State & Actions; cancelEnhance: () => void; setEnhanceController: (controller: AbortController | null) => void; - setHasShownConsent: (hasShown: boolean) => void; start: (sessionId: string) => void; stop: () => void; pause: () => void; @@ -31,7 +29,6 @@ const initialState: State = { loading: false, amplitude: { mic: 0, speaker: 0 }, enhanceController: null, - hasShownConsent: false, }; export type OngoingSessionStore = ReturnType; @@ -53,13 +50,6 @@ export const createOngoingSessionStore = (sessionsStore: ReturnType { - set((state) => - mutate(state, (draft) => { - draft.hasShownConsent = hasShown; - }) - ); - }, start: (sessionId: string) => { set((state) => mutate(state, (draft) => {