import React, { useState, useEffect, useRef } from 'react';const questions = [ "What's your company? And what does it do?", "Who is your target customer?", "What's new about what you're doing?", "What's your progress been like so far?", "Howdo you make money?", "What's your biggest risk?", "Who's on your team?", "Why did you pick this idea to work on?", "Who would be your biggest competitor?", "How will you get users?",];const YCInterviewSimulator = () => { const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0); const [userAnswer, setUserAnswer] = useState(''); const [feedback, setFeedback] = useState(''); const [interviewComplete, setInterviewComplete] = useState(false); const [timeLeft, setTimeLeft] = useState(60); const [isRecording, setIsRecording] = useState(false); const mediaRecorder = useRef(null); useEffect(() => { if (timeLeft > 0 && !interviewComplete) { const timerId = setTimeout(() => setTimeLeft(timeLeft - 1), 1000); return () => clearTimeout(timerId); } else if (timeLeft === 0 && !interviewComplete) { handleNextQuestion(); } }, [timeLeft, interviewComplete]); const handleNextQuestion = () => { if (currentQuestionIndex < questions.length - 1) { setCurrentQuestionIndex(currentQuestionIndex + 1); setUserAnswer(''); setFeedback(''); setTimeLeft(60); } else { setInterviewComplete(true); } }; const handleSubmitAnswer = () => { setFeedback("Great answer! Remember to be concise and show your passion."); }; const restartInterview = () => { setCurrentQuestionIndex(0); setUserAnswer(''); setFeedback(''); setInterviewComplete(false); setTimeLeft(60); }; const startRecording = async () => { try { const stream = await navigator.mediaDevices.getUserMedia({ audio: true }); mediaRecorder.current = new MediaRecorder(stream); mediaRecorder.current.ondataavailable = (event) => { if (event.data.size > 0) { const reader = new FileReader(); reader.onload = () => { setUserAnswer(prevAnswer => prevAnswer + ' ' + reader.result); }; reader.readAsText(event.data); } }; mediaRecorder.current.start(); setIsRecording(true); } catch (error) { console.error('Error accessing microphone:', error); } }; const stopRecording = () => { if (mediaRecorder.current && isRecording) { mediaRecorder.current.stop(); setIsRecording(false); } }; return (

YC Interview Simulator

{!interviewComplete ? ( <>

Question {currentQuestionIndex + 1}:

{questions[currentQuestionIndex]}

Time left: {timeLeft} seconds