feat: 聊天侧边栏新对话按钮统一为 antd Button 样式

This commit is contained in:
2026-06-03 15:17:05 +08:00
parent 02a202290f
commit 714da2d633
2 changed files with 32 additions and 14 deletions

View File

@@ -1,7 +1,7 @@
import { DeleteOutlined, MoreOutlined } from "@ant-design/icons"; import { DeleteOutlined, MoreOutlined, PlusOutlined } from "@ant-design/icons";
import { Conversations } from "@ant-design/x"; import { Conversations } from "@ant-design/x";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { App, Spin } from "antd"; import { App, Button, Spin } from "antd";
import { useMemo, useState } from "react"; import { useMemo, useState } from "react";
import type { Conversation } from "../../../shared/api"; import type { Conversation } from "../../../shared/api";
@@ -52,13 +52,11 @@ export function ChatPage() {
return ( return (
<div className="app-chat-page"> <div className="app-chat-page">
<div className="app-chat-conversations"> <div className="app-chat-conversations">
{isLoading ? ( <div className="app-chat-conversations-header">
<Spin /> <Button
) : ( block
<Conversations icon={<PlusOutlined />}
activeKey={activeConversationId ?? ""} onClick={() => {
creation={{
onClick: () => {
void createConversation(project.id, defaultModelId ?? undefined) void createConversation(project.id, defaultModelId ?? undefined)
.then((conv) => { .then((conv) => {
void queryClient.invalidateQueries({ queryKey: CONVERSATIONS_KEY }); void queryClient.invalidateQueries({ queryKey: CONVERSATIONS_KEY });
@@ -67,8 +65,17 @@ export function ChatPage() {
.catch((err: Error) => { .catch((err: Error) => {
void message.error(`创建会话失败:${err.message}`); void message.error(`创建会话失败:${err.message}`);
}); });
},
}} }}
type="primary"
>
</Button>
</div>
{isLoading ? (
<Spin />
) : (
<Conversations
activeKey={activeConversationId ?? ""}
items={conversations} items={conversations}
menu={(conv) => ({ menu={(conv) => ({
items: [ items: [
@@ -85,6 +92,7 @@ export function ChatPage() {
trigger: <MoreOutlined />, trigger: <MoreOutlined />,
})} })}
onActiveChange={(key) => setActiveConversationId(key)} onActiveChange={(key) => setActiveConversationId(key)}
rootClassName="app-chat-conversations-list"
/> />
)} )}
</div> </div>

View File

@@ -90,6 +90,16 @@ body {
background: var(--ant-color-bg-container); background: var(--ant-color-bg-container);
} }
.app-chat-conversations-header {
padding: var(--ant-padding-sm);
border-bottom: 1px solid var(--ant-color-border-secondary);
}
.app-chat-conversations-list {
flex: 1;
min-height: 0;
}
.app-chat-panel { .app-chat-panel {
display: flex; display: flex;
flex: 1; flex: 1;