diff --git a/packages/xgen/layouts/components/Neo/components/AIChat/Header/index.less b/packages/xgen/layouts/components/Neo/components/AIChat/Header/index.less
index 1760f367..993d33f1 100644
--- a/packages/xgen/layouts/components/Neo/components/AIChat/Header/index.less
+++ b/packages/xgen/layouts/components/Neo/components/AIChat/Header/index.less
@@ -3,7 +3,7 @@
align-items: center;
justify-content: space-between;
padding: 12px 16px;
- border-bottom: 1px solid #f0f0f0;
+ border-bottom: 1px solid var(--color_border_light);
.title {
font-size: 16px;
@@ -41,10 +41,10 @@
[data-theme='dark'] {
.header {
- border-bottom: 1px solid rgba(255, 255, 255, 0.08);
+ border-bottom: 1px solid var(--color_border_light);
.title {
- color: var(--color_title);
+ color: var(--color_text);
}
.actions {
diff --git a/packages/xgen/layouts/components/Neo/components/AIChat/History/index.less b/packages/xgen/layouts/components/Neo/components/AIChat/History/index.less
index a310b34d..69f63216 100644
--- a/packages/xgen/layouts/components/Neo/components/AIChat/History/index.less
+++ b/packages/xgen/layouts/components/Neo/components/AIChat/History/index.less
@@ -1,9 +1,9 @@
.history {
display: none;
position: fixed;
- background: #fff;
+ background: var(--color_bg_menu);
border-radius: 8px;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
+ box-shadow: var(--shadow);
width: 300px;
height: 400px;
z-index: 1050;
@@ -14,14 +14,14 @@
}
.header {
- padding: 8px;
- border-bottom: 1px solid var(--color_border);
display: flex;
- gap: 8px;
align-items: center;
+ padding: 12px;
+ border-bottom: 1px solid var(--color_border_light);
.search {
flex: 1;
+ margin-right: 8px;
:global {
.xgen-input {
@@ -40,20 +40,25 @@
}
}
- .clearBtn,
.closeBtn {
- padding: 4px;
- min-height: var(--base_height) !important;
- height: var(--base_height) !important;
- max-height: var(--base_height) !important;
- width: var(--base_height);
+ padding: 0;
+ width: 24px;
+ height: 24px;
display: flex;
align-items: center;
justify-content: center;
- color: var(--color_text_grey);
+ color: var(--color_text);
+ transition: all 0.2s ease;
+ background: transparent !important;
&:hover {
- color: var(--color_danger);
+ color: var(--color_main);
+ transform: scale(1.1);
+ }
+
+ svg {
+ font-size: 14px;
+ transition: all 0.2s ease;
}
}
}
@@ -70,7 +75,7 @@
.groupLabel {
font-size: 11px;
- color: rgba(0, 0, 0, 0.45);
+ color: var(--color_text_grey);
margin-bottom: 2px;
padding: 0 4px;
}
@@ -87,7 +92,7 @@
height: 32px;
&:hover {
- background-color: rgba(0, 0, 0, 0.04);
+ background-color: var(--color_border_soft);
.actions {
opacity: 1;
@@ -101,6 +106,7 @@
white-space: nowrap;
margin-right: 4px;
font-size: 13px;
+ color: var(--color_text);
}
}
@@ -109,7 +115,7 @@
align-items: center;
justify-content: center;
padding: 4px;
- color: rgba(0, 0, 0, 0.45);
+ color: var(--color_text_grey);
font-size: 13px;
.spinner {
@@ -128,13 +134,6 @@
}
}
-[data-theme='dark'] {
- .history {
- background: var(--color_bg_nav);
- border-color: var(--color_border);
- }
-}
-
.editWrapper {
display: flex;
align-items: center;
@@ -146,6 +145,7 @@
border: none !important;
padding: 0;
background: transparent;
+ color: var(--color_text);
&:focus {
box-shadow: none;
@@ -164,13 +164,12 @@
display: flex;
align-items: center;
justify-content: center;
- color: #666;
+ color: var(--color_text_grey);
transition: all 0.2s ease;
background: transparent !important;
&:hover {
- color: #1677ff;
- transform: scale(1.1);
+ color: var(--color_main);
}
svg {
@@ -202,12 +201,12 @@
display: flex;
align-items: center;
justify-content: center;
- color: #666;
+ color: var(--color_text_grey);
transition: all 0.2s ease;
background: transparent !important;
&:hover {
- color: #1677ff;
+ color: var(--color_main);
transform: scale(1.1);
}
diff --git a/packages/xgen/layouts/components/Neo/components/AIChat/History/index.tsx b/packages/xgen/layouts/components/Neo/components/AIChat/History/index.tsx
index c3587ce1..6aec15c0 100644
--- a/packages/xgen/layouts/components/Neo/components/AIChat/History/index.tsx
+++ b/packages/xgen/layouts/components/Neo/components/AIChat/History/index.tsx
@@ -4,27 +4,8 @@ import Icon from '@/widgets/Icon'
import styles from './index.less'
import { getLocale } from '@umijs/max'
import { useMemoizedFn } from 'ahooks'
-import { App } from '@/types'
+import useAIChat, { ChatGroup, ChatResponse } from '../../../hooks/useAIChat'
import clsx from 'clsx'
-import useAIChat from '../../../hooks/useAIChat'
-
-interface ChatItem {
- chat_id: string
- title: string | null
-}
-
-interface ChatGroup {
- label: string
- chats: ChatItem[]
-}
-
-interface ChatResponse {
- groups: ChatGroup[]
- page: number
- pagesize: number
- total: number
- last_page: number
-}
interface HistoryProps {
visible: boolean
@@ -50,7 +31,7 @@ const History = ({ visible, onClose, onSelect, triggerRef }: HistoryProps) => {
const is_cn = locale === 'zh-CN'
// Get methods from useAIChat hook
- const { getChats, deleteChat, updateChat, deleteAllChats } = useAIChat({})
+ const { getChats, deleteChat, updateChat } = useAIChat({})
// Load chats
const loadChats = useMemoizedFn(async (search?: string, pageNum: number = 1) => {
@@ -111,25 +92,6 @@ const History = ({ visible, onClose, onSelect, triggerRef }: HistoryProps) => {
}
})
- // Handle delete all chats
- const handleDeleteAll = useMemoizedFn(() => {
- Modal.confirm({
- title: is_cn ? '确认删除' : 'Confirm Delete',
- content: is_cn ? '确定要删除所有会话吗?' : 'Are you sure you want to delete all chats?',
- okText: is_cn ? '确定' : 'OK',
- cancelText: is_cn ? '取消' : 'Cancel',
- onOk: async () => {
- try {
- await deleteAllChats()
- message.success(is_cn ? '清空成功' : 'Cleared successfully')
- loadChats()
- } catch (error) {
- message.error(is_cn ? '清空失败' : 'Failed to clear')
- }
- }
- })
- })
-
useEffect(() => {
if (visible) {
loadChats()
@@ -179,12 +141,6 @@ const History = ({ visible, onClose, onSelect, triggerRef }: HistoryProps) => {
onChange={(e) => handleSearch(e.target.value)}
className={styles.search}
/>
- }
- />