Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
bit-pm
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
燕伟桐
bit-pm
Commits
07984386
Unverified
提交
07984386
authored
5月 15, 2025
作者:
Will Chen
提交者:
GitHub
5月 15, 2025
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add loading indicator for in-progress message & fix bug with multiple loaders (#173)
上级
09fc028f
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
20 行增加
和
3 行删除
+20
-3
ChatMessage.tsx
src/components/chat/ChatMessage.tsx
+15
-2
MessagesList.tsx
src/components/chat/MessagesList.tsx
+5
-1
没有找到文件。
src/components/chat/ChatMessage.tsx
浏览文件 @
07984386
...
...
@@ -9,9 +9,10 @@ import { CheckCircle, XCircle } from "lucide-react";
interface
ChatMessageProps
{
message
:
Message
;
isLastMessage
:
boolean
;
}
const
ChatMessage
=
({
message
}:
ChatMessageProps
)
=>
{
const
ChatMessage
=
({
message
,
isLastMessage
}:
ChatMessageProps
)
=>
{
const
{
isStreaming
}
=
useStreamChat
();
return
(
<
div
...
...
@@ -26,7 +27,10 @@ const ChatMessage = ({ message }: ChatMessageProps) => {
: "bg-(--sidebar-accent)"
}`
}
>
{
message
.
role
===
"assistant"
&&
!
message
.
content
&&
isStreaming
?
(
{
message
.
role
===
"assistant"
&&
!
message
.
content
&&
isStreaming
&&
isLastMessage
?
(
<
div
className=
"flex h-6 items-center space-x-2 p-2"
>
<
motion
.
div
className=
"h-3 w-3 rounded-full bg-(--primary) dark:bg-blue-500"
...
...
@@ -67,7 +71,16 @@ const ChatMessage = ({ message }: ChatMessageProps) => {
suppressHydrationWarning
>
{
message
.
role
===
"assistant"
?
(
<>
<
DyadMarkdownParser
content=
{
message
.
content
}
/>
{
isLastMessage
&&
isStreaming
&&
(
<
div
className=
"mt-4 ml-4 relative w-5 h-5 animate-spin"
>
<
div
className=
"absolute top-0 left-1/2 transform -translate-x-1/2 w-2 h-2 bg-(--primary) dark:bg-blue-500 rounded-full"
></
div
>
<
div
className=
"absolute bottom-0 left-0 w-2 h-2 bg-(--primary) dark:bg-blue-500 rounded-full opacity-80"
></
div
>
<
div
className=
"absolute bottom-0 right-0 w-2 h-2 bg-(--primary) dark:bg-blue-500 rounded-full opacity-60"
></
div
>
</
div
>
)
}
</>
)
:
(
<
VanillaMarkdownParser
content=
{
message
.
content
}
/>
)
}
...
...
src/components/chat/MessagesList.tsx
浏览文件 @
07984386
...
...
@@ -36,7 +36,11 @@ export const MessagesList = forwardRef<HTMLDivElement, MessagesListProps>(
<
div
className=
"flex-1 overflow-y-auto p-4"
ref=
{
ref
}
>
{
messages
.
length
>
0
?
(
messages
.
map
((
message
,
index
)
=>
(
<
ChatMessage
key=
{
index
}
message=
{
message
}
/>
<
ChatMessage
key=
{
index
}
message=
{
message
}
isLastMessage=
{
index
===
messages
.
length
-
1
}
/>
))
)
:
(
<
div
className=
"flex flex-col items-center justify-center h-full max-w-2xl mx-auto"
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论