import React, { forwardRef, useEffect, useState } from 'react'; import { useNavigate } from "react-router-dom"; import useMediaQuery from '@mui/material/useMediaQuery'; import Box from '@mui/material/Box'; import { useTheme } from '@mui/material/styles'; import MuiMarkdown from 'mui-markdown'; import { BackstoryPageProps } from '../components/BackstoryTab'; import { Conversation, ConversationHandle } from '../components/Conversation'; import { ChatQuery } from '../components/ChatQuery'; import { MessageList } from '../components/Message'; import { CandidateInfo } from 'components/CandidateInfo'; import { connectionBase } from '../Global'; import { LoadingComponent } from 'components/LoadingComponent'; import { useUser } from "../components/UserContext"; import { Candidate, Tunables } from "../types/types"; import { Navigate } from 'react-router-dom'; const ChatPage = forwardRef((props: BackstoryPageProps, ref) => { const navigate = useNavigate(); const { sessionId, setSnack, submitQuery } = props; const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down('md')); const [questions, setQuestions] = useState([]); const { user } = useUser(); const candidate: Candidate | null = (user && user.userType === "UserType.CANDIDATE") ? user as Candidate : null; useEffect(() => { if (!candidate) { return; } setQuestions([ {candidate.questions?.map(({ question, tunables }, i: number) => )} , {`As with all LLM interactions, the results may not be 100% accurate. Please contact **${candidate.fullName}** if you have any questions.`} ]); }, [candidate, isMobile, submitQuery]); if (!candidate) { return (<>); } return ( ); }); export { ChatPage };