Fix: metadata data synchronization issues; add memory tab in home page (#12368)

### What problem does this PR solve?

fix: metadata data synchronization issues; add memory tab in home page

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
chanx
2025-12-31 17:19:04 +08:00
committed by GitHub
parent 7d4d687dde
commit 365f9b01ae
5 changed files with 186 additions and 79 deletions

View File

@ -10,18 +10,21 @@ import { useNavigate } from 'umi';
import { Agents } from './agent-list';
import { SeeAllAppCard } from './application-card';
import { ChatList } from './chat-list';
import { MemoryList } from './memory-list';
import { SearchList } from './search-list';
const IconMap = {
[Routes.Chats]: 'chats',
[Routes.Searches]: 'searches',
[Routes.Agents]: 'agents',
[Routes.Memories]: 'memory',
};
const EmptyTypeMap = {
[Routes.Chats]: EmptyCardType.Chat,
[Routes.Searches]: EmptyCardType.Search,
[Routes.Agents]: EmptyCardType.Agent,
[Routes.Memories]: EmptyCardType.Memory,
};
export function Applications() {
@ -47,6 +50,7 @@ export function Applications() {
{ value: Routes.Chats, label: t('chat.chatApps') },
{ value: Routes.Searches, label: t('search.searchApps') },
{ value: Routes.Agents, label: t('header.flow') },
{ value: Routes.Memories, label: t('memories.memory') },
],
[t],
);
@ -96,6 +100,12 @@ export function Applications() {
setLoading={(loading: boolean) => setLoading(loading)}
></SearchList>
)}
{val === Routes.Memories && (
<MemoryList
setListLength={(length: number) => setListLength(length)}
setLoading={(loading: boolean) => setLoading(loading)}
></MemoryList>
)}
{listLength > 0 && (
<SeeAllAppCard
click={() => handleNavigate({ isCreate: false })}

View File

@ -0,0 +1,79 @@
import { HomeCard } from '@/components/home-card';
import { MoreButton } from '@/components/more-button';
import { useNavigatePage } from '@/hooks/logic-hooks/navigate-hooks';
import { useEffect } from 'react';
import { AddOrEditModal } from '../memories/add-or-edit-modal';
import { useFetchMemoryList, useRenameMemory } from '../memories/hooks';
import { ICreateMemoryProps } from '../memories/interface';
import { MemoryDropdown } from '../memories/memory-dropdown';
export function MemoryList({
setListLength,
setLoading,
}: {
setListLength: (length: number) => void;
setLoading?: (loading: boolean) => void;
}) {
const { data, refetch: refetchList, isLoading } = useFetchMemoryList();
const { navigateToMemory } = useNavigatePage();
// const {
// openCreateModal,
// showSearchRenameModal,
// hideSearchRenameModal,
// searchRenameLoading,
// onSearchRenameOk,
// initialSearchName,
// } = useRenameSearch();
const {
openCreateModal,
showMemoryRenameModal,
hideMemoryModal,
searchRenameLoading,
onMemoryRenameOk,
initialMemory,
} = useRenameMemory();
const onMemoryConfirm = (data: ICreateMemoryProps) => {
onMemoryRenameOk(data, () => {
refetchList();
});
};
useEffect(() => {
setListLength(data?.data?.memory_list?.length || 0);
setLoading?.(isLoading || false);
}, [data, setListLength, isLoading, setLoading]);
return (
<>
{data?.data.memory_list.slice(0, 10).map((x) => (
<HomeCard
key={x.id}
data={{
name: x?.name,
avatar: x?.avatar,
description: x?.description,
update_time: x?.create_time,
}}
onClick={navigateToMemory(x.id)}
moreDropdown={
<MemoryDropdown
memory={x}
showMemoryRenameModal={showMemoryRenameModal}
>
<MoreButton></MoreButton>
</MemoryDropdown>
}
></HomeCard>
))}
{openCreateModal && (
<AddOrEditModal
initialMemory={initialMemory}
isCreate={false}
open={openCreateModal}
loading={searchRenameLoading}
onClose={hideMemoryModal}
onSubmit={onMemoryConfirm}
/>
)}
</>
);
}