mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-03 06:12:14 +08:00
feat: dynamic title
This commit is contained in:
@@ -9,7 +9,7 @@ import { I18nProvider } from "@/core/i18n/context";
|
||||
import { detectLocaleServer } from "@/core/i18n/server";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Welcome to DeerFlow",
|
||||
title: "DeerFlow",
|
||||
description: "A LangChain-based framework for building super agents.",
|
||||
};
|
||||
|
||||
|
||||
@@ -119,6 +119,26 @@ export default function ChatPage() {
|
||||
return result;
|
||||
}, [thread, isNewThread]);
|
||||
|
||||
useEffect(() => {
|
||||
const pageTitle = isNewThread
|
||||
? t.pages.newChat
|
||||
: thread.values?.title && thread.values.title !== "Untitled"
|
||||
? thread.values.title
|
||||
: t.pages.untitled;
|
||||
if (thread.isThreadLoading) {
|
||||
document.title = `Loading... - ${t.pages.appName}`;
|
||||
} else {
|
||||
document.title = `${pageTitle} - ${t.pages.appName}`;
|
||||
}
|
||||
}, [
|
||||
isNewThread,
|
||||
t.pages.newChat,
|
||||
t.pages.untitled,
|
||||
t.pages.appName,
|
||||
thread.values.title,
|
||||
thread.isThreadLoading,
|
||||
]);
|
||||
|
||||
const [autoSelectFirstArtifact, setAutoSelectFirstArtifact] = useState(true);
|
||||
useEffect(() => {
|
||||
setArtifacts(thread.values.artifacts);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
"use client";
|
||||
|
||||
import Link from "next/link";
|
||||
import { useMemo, useState } from "react";
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
|
||||
import { Input } from "@/components/ui/input";
|
||||
import { ScrollArea } from "@/components/ui/scroll-area";
|
||||
@@ -19,6 +19,11 @@ export default function ChatsPage() {
|
||||
const { t } = useI18n();
|
||||
const { data: threads } = useThreads();
|
||||
const [search, setSearch] = useState("");
|
||||
|
||||
useEffect(() => {
|
||||
document.title = `${t.pages.chats} - ${t.pages.appName}`;
|
||||
}, [t.pages.chats, t.pages.appName]);
|
||||
|
||||
const filteredThreads = useMemo(() => {
|
||||
return threads?.filter((thread) => {
|
||||
return titleOfThread(thread).toLowerCase().includes(search.toLowerCase());
|
||||
|
||||
@@ -100,6 +100,14 @@ export const enUS: Translations = {
|
||||
searchChats: "Search chats",
|
||||
},
|
||||
|
||||
// Page titles (document title)
|
||||
pages: {
|
||||
appName: "DeerFlow",
|
||||
chats: "Chats",
|
||||
newChat: "New chat",
|
||||
untitled: "Untitled",
|
||||
},
|
||||
|
||||
// Tool calls
|
||||
toolCalls: {
|
||||
moreSteps: (count: number) => `${count} more step${count === 1 ? "" : "s"}`,
|
||||
|
||||
@@ -94,6 +94,14 @@ export interface Translations {
|
||||
searchChats: string;
|
||||
};
|
||||
|
||||
// Page titles (document title)
|
||||
pages: {
|
||||
appName: string;
|
||||
chats: string;
|
||||
newChat: string;
|
||||
untitled: string;
|
||||
};
|
||||
|
||||
// Tool calls
|
||||
toolCalls: {
|
||||
moreSteps: (count: number) => string;
|
||||
|
||||
@@ -98,6 +98,14 @@ export const zhCN: Translations = {
|
||||
searchChats: "搜索对话",
|
||||
},
|
||||
|
||||
// Page titles (document title)
|
||||
pages: {
|
||||
appName: "DeerFlow",
|
||||
chats: "对话",
|
||||
newChat: "新对话",
|
||||
untitled: "未命名",
|
||||
},
|
||||
|
||||
// Tool calls
|
||||
toolCalls: {
|
||||
moreSteps: (count: number) => `查看其他 ${count} 个步骤`,
|
||||
|
||||
Reference in New Issue
Block a user