Skip to content

Commit 5f60f1c

Browse files
committed
refactor away ConversationV1
1 parent b811c39 commit 5f60f1c

File tree

5 files changed

+13
-115
lines changed

5 files changed

+13
-115
lines changed

src/client/components/ChatV2/ChatV2.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import { getCompletionStreamV3 } from './util'
3838
import PromptSelector from './PromptSelector'
3939
import { useQuery } from '@tanstack/react-query'
4040
import ModelSelector from './ModelSelector'
41+
import { ConversationSplash } from './general/ConversationSplash'
4142

4243
function useLocalStorageStateWithURLDefault(key: string, defaultValue: string, urlKey: string) {
4344
const [value, setValue] = useLocalStorageState(key, defaultValue)
@@ -115,7 +116,6 @@ export const ChatV2 = () => {
115116

116117
// Refs
117118
const chatContainerRef = useRef<HTMLDivElement | null>(null)
118-
const conversationRef = useRef<HTMLElement | null>(null)
119119
const inputFieldRef = useRef<HTMLElement | null>(null)
120120
const fileInputRef = useRef<HTMLInputElement | null>(null)
121121
const scrollRef = useRef<HTMLDivElement | null>(null)
@@ -472,9 +472,7 @@ export const ChatV2 = () => {
472472
)}
473473

474474
<Conversation
475-
courseName={course && getLanguageValue(course.name, i18n.language)}
476-
courseDate={course?.activityPeriod}
477-
conversationRef={conversationRef}
475+
initial={<ConversationSplash courseName={course && getLanguageValue(course.name, i18n.language)} courseDate={course?.activityPeriod} />}
478476
messages={messages}
479477
completion={completion}
480478
isStreaming={isStreaming}

src/client/components/ChatV2/Conversation.tsx

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import { oneDark } from 'react-syntax-highlighter/dist/cjs/styles/prism'
66
import rehypeKatex from 'rehype-katex'
77
import remarkGfm from 'remark-gfm'
88
import remarkMath from 'remark-math'
9-
import type { ActivityPeriod } from '../../types'
10-
import { ConversationSplash } from './general/ConversationSplash'
119
import { LoadingMessage } from './general/LoadingMessage'
1210
import { preprocessMath } from './util'
1311
import 'katex/dist/katex.min.css'
@@ -17,7 +15,7 @@ import { t } from 'i18next'
1715
import FormatQuoteIcon from '@mui/icons-material/FormatQuote'
1816
import useLocalStorageState from '../../hooks/useLocalStorageState'
1917
import { BlueButton } from './general/Buttons'
20-
import type { ChatMessage, Message, ToolCallResultEvent, ToolCallStatusEvent } from '../../../shared/chat'
18+
import type { ChatMessage, ToolCallResultEvent, ToolCallStatusEvent } from '../../../shared/chat'
2119
import { useId, useMemo } from 'react'
2220

2321
const UserMessage = ({ content, attachments }: { content: string; attachments?: string }) => (
@@ -269,7 +267,7 @@ const AssistantMessage = ({
269267
)
270268
}
271269

272-
const MessageItem = ({ message, setActiveToolResult }: { message: ChatMessage; setActiveToolResult: (data: ToolCallResultEvent) => void }) => {
270+
export const MessageItem = ({ message, setActiveToolResult }: { message: ChatMessage; setActiveToolResult: (data: ToolCallResultEvent) => void }) => {
273271
if (message.role === 'assistant') {
274272
return (
275273
<Box
@@ -291,23 +289,19 @@ const MessageItem = ({ message, setActiveToolResult }: { message: ChatMessage; s
291289
}
292290

293291
export const Conversation = ({
294-
courseName,
295-
courseDate,
296-
conversationRef,
297292
messages,
298293
completion,
299294
toolCalls,
300295
isStreaming,
301296
setActiveToolResult,
297+
initial,
302298
}: {
303-
courseName?: string
304-
courseDate?: ActivityPeriod
305-
conversationRef: React.RefObject<HTMLElement>
306299
messages: ChatMessage[]
307300
completion: string
308301
toolCalls: { [callId: string]: ToolCallStatusEvent }
309302
isStreaming: boolean
310303
setActiveToolResult: (data: ToolCallResultEvent) => void
304+
initial?: React.ReactElement
311305
}) => {
312306
const [reminderSeen, setReminderSeen] = useLocalStorageState<boolean>('reminderSeen', false)
313307

@@ -323,9 +317,8 @@ export const Conversation = ({
323317
padding: '1rem 0',
324318
justifyContent: messages.length === 0 ? 'center' : 'flex-start',
325319
}}
326-
ref={conversationRef}
327320
>
328-
{messages.length === 0 && <ConversationSplash courseName={courseName} courseDate={courseDate} />}
321+
{messages.length === 0 && initial}
329322
{messages.map((message, idx) => {
330323
return <MessageItem key={idx} message={message} setActiveToolResult={setActiveToolResult} />
331324
})}

src/client/components/ChatV2/ConversationV1.tsx

Lines changed: 0 additions & 93 deletions
This file was deleted.

src/client/components/Courses/Course/Prompt.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { useTranslation } from 'react-i18next'
55

66
import { enqueueSnackbar } from 'notistack'
77
import { Prompt as PromptType, SetState } from '../../../types'
8-
import { Response } from '../../ChatV2/ConversationV1'
8+
import { MessageItem } from '../../ChatV2/Conversation'
99
import SystemMessage from '../../ChatV2/SystemMessage'
1010
import { useEditPromptMutation } from '../../../hooks/usePromptMutation'
1111
import { useParams, Link as RouterLink } from 'react-router-dom'
@@ -110,8 +110,8 @@ const Prompt = ({ prompt, handleDelete, mandatoryPromptId }: { prompt: PromptTyp
110110
<SystemMessage system={systemMessage} setSystem={() => {}} showInfo={false} disabled />
111111
</Box>
112112
<Box>
113-
{messages.map(({ role, content }, index) => (
114-
<Response key={content} role={role} content={content} id={`message-${index}`} />
113+
{messages.map((msg) => (
114+
<MessageItem key={msg.content} message={msg} setActiveToolResult={(_d) => {}} />
115115
))}
116116
</Box>
117117
</>

src/client/components/Courses/Course/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import useCurrentUser from '../../../hooks/useCurrentUser'
1111
import { useCreatePromptMutation, useDeletePromptMutation } from '../../../hooks/usePromptMutation'
1212
import usePrompts from '../../../hooks/usePrompts'
1313
import type { Responsebility, User } from '../../../types'
14-
import Conversation from '../../ChatV2/ConversationV1'
14+
import { Conversation } from '../../ChatV2/Conversation'
1515
import SystemMessage from '../../ChatV2/SystemMessage'
1616
import Rag from '../../Rag/Rag'
1717
import { formatDate, getCurTypeLabel } from '../util'
@@ -25,7 +25,7 @@ import apiClient from '../../../util/apiClient'
2525
import { ActionUserSearch } from '../../Admin/UserSearch'
2626
import { useCourseRagIndices } from '../../../hooks/useRagIndices'
2727
import RagSelector, { RagSelectorDescription } from '../../ChatV2/RagSelector'
28-
import { ChatMessage } from '../../../../shared/chat'
28+
import type { ChatMessage } from '../../../../shared/chat'
2929

3030
const Course = () => {
3131
const [showTeachers, setShowTeachers] = useState(false)
@@ -401,7 +401,7 @@ const Prompts = ({ courseId, chatInstanceId }: { courseId: string; chatInstanceI
401401

402402
<SystemMessage system={system} setSystem={setSystem} disabled={false} creation />
403403

404-
<Conversation messages={messages} completion="" />
404+
<Conversation messages={messages} completion="" toolCalls={{}} isStreaming={false} setActiveToolResult={(_d) => {}} />
405405

406406
<Box sx={{ py: 2, display: 'flex', alignItems: 'start' }}>
407407
{!mandatoryPromptId ? (

0 commit comments

Comments
 (0)