diff --git a/web/src/components/page-header.tsx b/web/src/components/page-header.tsx
new file mode 100644
index 00000000000..cc52e379503
--- /dev/null
+++ b/web/src/components/page-header.tsx
@@ -0,0 +1,26 @@
+import { ArrowLeft } from 'lucide-react';
+import { PropsWithChildren, ReactNode } from 'react';
+import { Button } from './ui/button';
+
+interface IPageHeaderProps extends PropsWithChildren {
+ back(): void;
+ title: ReactNode;
+}
+
+export function PageHeader({ back, title, children }: IPageHeaderProps) {
+ return (
+
+ );
+}
diff --git a/web/src/hooks/logic-hooks/navigate-hooks.ts b/web/src/hooks/logic-hooks/navigate-hooks.ts
index 51d2d51b4cf..2deae037d81 100644
--- a/web/src/hooks/logic-hooks/navigate-hooks.ts
+++ b/web/src/hooks/logic-hooks/navigate-hooks.ts
@@ -21,10 +21,20 @@ export const useNavigatePage = () => {
navigate(Routes.ProfileSetting);
}, [navigate]);
+ const navigateToChatList = useCallback(() => {
+ navigate(Routes.Chats);
+ }, [navigate]);
+
+ const navigateToChat = useCallback(() => {
+ navigate(Routes.Chat);
+ }, [navigate]);
+
return {
navigateToDatasetList,
navigateToDataset,
navigateToHome,
navigateToProfile,
+ navigateToChatList,
+ navigateToChat,
};
};
diff --git a/web/src/layouts/next-header.tsx b/web/src/layouts/next-header.tsx
index bd7ad573020..fe0dc175bc4 100644
--- a/web/src/layouts/next-header.tsx
+++ b/web/src/layouts/next-header.tsx
@@ -31,7 +31,7 @@ export function Header() {
const tagsData = useMemo(
() => [
{ path: Routes.Datasets, name: t('knowledgeBase'), icon: Library },
- { path: Routes.Chat, name: t('chat'), icon: MessageSquareText },
+ { path: Routes.Chats, name: t('chat'), icon: MessageSquareText },
{ path: Routes.Search, name: t('search'), icon: Search },
{ path: Routes.Agent, name: t('flow'), icon: Cpu },
{ path: Routes.Files, name: t('fileManager'), icon: File },
diff --git a/web/src/pages/next-chat/chat-card.tsx b/web/src/pages/next-chats/chat-card.tsx
similarity index 89%
rename from web/src/pages/next-chat/chat-card.tsx
rename to web/src/pages/next-chats/chat-card.tsx
index aea15f4b6bf..6d946f99a28 100644
--- a/web/src/pages/next-chat/chat-card.tsx
+++ b/web/src/pages/next-chats/chat-card.tsx
@@ -1,6 +1,7 @@
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
import { Button } from '@/components/ui/button';
import { Card, CardContent } from '@/components/ui/card';
+import { useNavigatePage } from '@/hooks/logic-hooks/navigate-hooks';
import { IDialog } from '@/interfaces/database/chat';
import { formatPureDate } from '@/utils/date';
import { ChevronRight, Trash2 } from 'lucide-react';
@@ -10,6 +11,8 @@ interface IProps {
}
export function ChatCard({ data }: IProps) {
+ const { navigateToChat } = useNavigatePage();
+
return (
@@ -36,7 +39,7 @@ export function ChatCard({ data }: IProps) {
-