Skip to content

Commit d165ddd

Browse files
committed
refactor: consolidate into ChatMessage
1 parent 515166b commit d165ddd

File tree

4 files changed

+55
-64
lines changed

4 files changed

+55
-64
lines changed

packages/frontend/src/pages/AiBuilder/components/ChatMessages/AiMessage.tsx

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import { Box, Flex, Text } from '@chakra-ui/react'
2+
3+
import { Message } from '@/hooks/useChatStream'
4+
import { ChakraStreamdown } from '@/theme/components/Streamdown'
5+
6+
import ChatMessageToolbar from './ChatMessageToolbar'
7+
import PlumberAvatar from './PlumberAvatar'
8+
9+
interface ChatMessageProps {
10+
message: Message
11+
}
12+
13+
const AiMessage = ({ message }: ChatMessageProps) => {
14+
return (
15+
<Flex gap={3} w="full" align="start">
16+
<PlumberAvatar mt={3} />
17+
<Box flex={1} color="gray.900">
18+
<ChakraStreamdown isAnimating={false}>
19+
{message.text || ''}
20+
</ChakraStreamdown>
21+
<ChatMessageToolbar />
22+
</Box>
23+
</Flex>
24+
)
25+
}
26+
27+
const UserMessage = ({ message }: ChatMessageProps) => {
28+
return (
29+
<Flex justify="flex-end">
30+
<Box
31+
maxW="80%"
32+
bg="gray.100"
33+
color="gray.900"
34+
px={4}
35+
py={3}
36+
borderRadius="lg"
37+
>
38+
<Text fontSize="sm" whiteSpace="pre-wrap">
39+
{message.text}
40+
</Text>
41+
</Box>
42+
</Flex>
43+
)
44+
}
45+
46+
const ChatMessage = ({ message }: { message: Message }) => {
47+
if (message.isUser) {
48+
return <UserMessage message={message} />
49+
}
50+
return <AiMessage message={message} />
51+
}
52+
53+
export default ChatMessage

packages/frontend/src/pages/AiBuilder/components/ChatMessages/UserMessage.tsx

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

packages/frontend/src/pages/AiBuilder/components/ChatMessages/index.tsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ import { Box, Flex, VStack } from '@chakra-ui/react'
22

33
import { Message } from '@/hooks/useChatStream'
44

5-
import AiMessage from './AiMessage'
5+
import ChatMessage from './ChatMessage'
66
import StreamingMessage from './StreamingMessage'
7-
import UserMessage from './UserMessage'
87

98
interface ChatMessagesProps {
109
messages: Message[]
@@ -35,13 +34,7 @@ export default function ChatMessages({
3534
<Box w="full" maxW="4xl" mx="auto" px={4} py={6}>
3635
<VStack align="stretch" spacing={4}>
3736
{messages.map((message, index) => (
38-
<Box key={index}>
39-
{message.isUser ? (
40-
<UserMessage message={message} />
41-
) : (
42-
<AiMessage message={message} />
43-
)}
44-
</Box>
37+
<ChatMessage key={index} message={message} />
4538
))}
4639

4740
{/* Streaming response */}

0 commit comments

Comments
 (0)