diff --git a/.gitignore b/.gitignore index a547bf3..50c8dda 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ dist-ssr *.njsproj *.sln *.sw? + +.env diff --git a/src/assets/Saravana_portrait_edited.JPG b/src/assets/Saravana_portrait_edited.JPG new file mode 100644 index 0000000..5134dd8 Binary files /dev/null and b/src/assets/Saravana_portrait_edited.JPG differ diff --git a/src/pages/InterviewRoom.jsx b/src/pages/InterviewRoom.jsx index 77472dc..5d166c4 100644 --- a/src/pages/InterviewRoom.jsx +++ b/src/pages/InterviewRoom.jsx @@ -24,23 +24,26 @@ const InterviewRoom = () => { date: "", time: "", }) - const [userRole, setUserRole] = useState(null) - const [showRoleConfirmation, setShowRoleConfirmation] = useState(true) - const [isFullScreen, setIsFullScreen] = useState(false) - const [questionRatings, setQuestionRatings] = useState({}) - const [hoveredQuestion, setHoveredQuestion] = useState(null) - const videoRef = useRef(null) - const questionTimerRef = useRef(null) - const fullScreenRef = useRef(null) + const [userRole, setUserRole] = useState(null); + const [showRoleConfirmation, setShowRoleConfirmation] = useState(true); + const [isFullScreen, setIsFullScreen] = useState(false); + const [questionRatings, setQuestionRatings] = useState({}); + const [hoveredQuestion, setHoveredQuestion] = useState(null); + const [selectedQuestion, setSelectedQuestion] = useState(null); + const videoRef = useRef(null); + const questionTimerRef = useRef(null); + const fullScreenRef = useRef(null); const transcriptIntervalRef = useRef(null) const recognitionRef = useRef(null) const lastTranscriptRef = useRef([]) - // New states for coding challenge const [showCodingModal, setShowCodingModal] = useState(false) const [codingChallenge, setCodingChallenge] = useState(null) const [showCompiler, setShowCompiler] = useState(false) + // New states for tab system + const [activeTab, setActiveTab] = useState("generated") + // Mock resume data useEffect(() => { // In a real app, this would be fetched from an API @@ -702,146 +705,300 @@ const InterviewRoom = () => { {/* Left Panel - Questions (only visible to interviewer) */} {userRole === "interviewer" && (
-
-

Suggested Questions

- -
- -
- {displayQuestions.length > 0 ? ( - displayQuestions.map((question, index) => ( -
setHoveredQuestion(question)} - onMouseLeave={() => setHoveredQuestion(null)} - > -

{question}

- - {/* Star rating for interviewer */} + {selectedQuestion ? ( +
+ {/* Selected Question View */} +
+
+

Selected Question

+ +
+
+

{selectedQuestion}

{ + handleRateQuestion(q, rating) + setSelectedQuestion(null) + }} /> - -
- - -
- )) - ) : ( -
-

No questions available yet.

-

Start recording to generate questions based on the conversation.

- )} -
- {pinnedQuestions.length > 0 && ( -
-

Pinned Questions

-
- {pinnedQuestions.map((question, index) => ( -
setHoveredQuestion(question)} - onMouseLeave={() => setHoveredQuestion(null)} + {/* Follow-up Section */} +
+ + +
+
+ ) : ( + <> +
+

Questions

+ +
+ +
+ + +
-
- + +
+
+ )) + ) : ( +
+

No questions available yet.

+

Start recording to generate questions based on the conversation.

+
+ )} +
+ )} + + {activeTab === "questionBank" && ( +
+ {[ + "What is your greatest strength?", + "Describe a time you faced a challenge at work.", + "How do you prioritize your tasks?", + "What are your career goals?", + "Why do you want to work here?", + ].map((question, index) => ( +
setHoveredQuestion(question)} + onMouseLeave={() => setHoveredQuestion(null)} + onClick={() => setSelectedQuestion(question)} + > +

{question}

+ +
+ + + + + + +
+ ))} +
+ )} + + {pinnedQuestions.length > 0 && ( +
+

Pinned Questions

+
+ {pinnedQuestions.map((question, index) => ( +
setHoveredQuestion(question)} + onMouseLeave={() => setHoveredQuestion(null)} + onClick={() => setSelectedQuestion(question)} + > +

{question}

+ +
+ +
+
+ ))}
- ))} -
-
+
+ )} + )}
)} @@ -1277,5 +1434,3 @@ const InterviewRoom = () => { } export default InterviewRoom - -