import { useEffect } from 'react'; import { Check, Mic, Video } from 'lucide-react'; import { OnboardingStep, SUCCESS_DWELL_MS } from './onboarding-step'; import { useTapGesture } from './use-tap-gesture'; import { VideoAudioToggle } from '@/components/video-audio-toggle'; import { useMediaSettingsStore } from '@/stores/media-settings-store'; export function ToggleStep({ onAdvance }: { onAdvance: () => void }) { const recordingMode = useMediaSettingsStore((s) => s.recordingMode); const setRecordingMode = useMediaSettingsStore((s) => s.setRecordingMode); const { satisfied } = useTapGesture({ targetKey: 'v', onTap: () => { const current = useMediaSettingsStore.getState().recordingMode; setRecordingMode(current === 'video' ? 'audio' : 'video'); }, }); useEffect(() => { if (!satisfied) return; const t = setTimeout(onAdvance, SUCCESS_DWELL_MS); return () => clearTimeout(t); }, [satisfied, onAdvance]); // Teaching the toggle shouldn't permanently change the user's default mode. useEffect(() => { const original = useMediaSettingsStore.getState().recordingMode; return () => setRecordingMode(original); }, [setRecordingMode]); const isVideo = recordingMode === 'video'; return ( {' '} {isVideo ? 'Back to video.' : 'Audio it is.'} ) : null } >
{isVideo ?
); }