feat(web): update document title
This commit is contained in:
@@ -2,11 +2,12 @@
|
||||
* @Author: ZhaoYing
|
||||
* @Date: 2026-02-03 16:29:37
|
||||
* @Last Modified by: ZhaoYing
|
||||
* @Last Modified time: 2026-03-26 15:37:18
|
||||
* @Last Modified time: 2026-04-14 10:01:05
|
||||
*/
|
||||
import React, { useEffect, useState, useRef } from 'react';
|
||||
import { useParams } from 'react-router-dom';
|
||||
import { Flex } from 'antd'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
import ConfigHeader from './components/ConfigHeader'
|
||||
import type { AgentRef, ClusterRef, WorkflowRef, Config } from './types'
|
||||
@@ -30,6 +31,7 @@ import Logs from './Logs';
|
||||
const ApplicationConfig: React.FC = () => {
|
||||
// Hooks
|
||||
const { id, source } = useParams();
|
||||
const { t } = useTranslation()
|
||||
|
||||
// Refs for different application types
|
||||
const agentRef = useRef<AgentRef>(null)
|
||||
@@ -95,6 +97,13 @@ const ApplicationConfig: React.FC = () => {
|
||||
getApplicationInfo()
|
||||
}, [id])
|
||||
|
||||
useEffect(() => {
|
||||
if (application?.name) {
|
||||
const appName = t('memoryBear');
|
||||
document.title = `${application.name} - ${appName}`;
|
||||
}
|
||||
}, [application?.name])
|
||||
|
||||
/**
|
||||
* Fetch application information
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: ZhaoYing
|
||||
* @Date: 2026-02-03 17:33:15
|
||||
* @Last Modified by: ZhaoYing
|
||||
* @Last Modified time: 2026-03-26 14:56:00
|
||||
* @Last Modified time: 2026-04-14 16:17:29
|
||||
*/
|
||||
/**
|
||||
* Memory Management Page
|
||||
@@ -74,7 +74,8 @@ const MemoryManagement: React.FC = () => {
|
||||
};
|
||||
|
||||
/** Navigate to engine configuration page */
|
||||
const handleClick = (id: number, type: string) => {
|
||||
const handleClick = (id: number, type: string, config_name: string) => {
|
||||
document.title = `${config_name} - ${t('memoryBear')}`;
|
||||
switch (type) {
|
||||
case 'memoryExtractionEngine':
|
||||
navigate(`/memory-extraction-engine/${id}`)
|
||||
@@ -130,7 +131,7 @@ const MemoryManagement: React.FC = () => {
|
||||
align="center"
|
||||
justify="space-between"
|
||||
className="rb:cursor-pointer rb:bg-[#F6F6F6] rb:h-8 rb:rounded-lg rb:font-medium rb:leading-5 rb:pl-2! rb:pr-1! rb:hover:shadow-[0px_2px_8px_0px_rgba(23,23,25,0.16)]"
|
||||
onClick={() => handleClick(item.config_id, key)}
|
||||
onClick={() => handleClick(item.config_id, key, item.config_name)}
|
||||
>
|
||||
{t(`memory.${key}`)}
|
||||
<div
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: ZhaoYing
|
||||
* @Date: 2026-02-03 14:10:20
|
||||
* @Last Modified by: ZhaoYing
|
||||
* @Last Modified time: 2026-03-26 18:55:37
|
||||
* @Last Modified time: 2026-04-14 15:54:05
|
||||
*/
|
||||
import { type FC, useEffect, useState, useRef } from 'react'
|
||||
import { useParams, useNavigate } from 'react-router-dom';
|
||||
@@ -46,6 +46,10 @@ const Detail: FC = () => {
|
||||
getData()
|
||||
}, [id, query])
|
||||
|
||||
useEffect(() => {
|
||||
document.title = `${data.scene_name} - ${t('memoryBear')}`;
|
||||
}, [data.scene_name])
|
||||
|
||||
/**
|
||||
* Fetch ontology class list data
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: ZhaoYing
|
||||
* @Date: 2026-02-05 10:44:08
|
||||
* @Last Modified by: ZhaoYing
|
||||
* @Last Modified time: 2026-02-05 10:56:28
|
||||
* @Last Modified time: 2026-04-14 16:27:08
|
||||
*/
|
||||
import { type FC, useEffect, useRef, useState } from "react";
|
||||
import { useTranslation } from 'react-i18next';
|
||||
@@ -71,6 +71,7 @@ const SkillConfig: FC = () => {
|
||||
.then(res => {
|
||||
form.setFieldsValue(res as SkillFormData)
|
||||
setData(res as SkillFormData)
|
||||
document.title = `${(res as SkillFormData).name} - ${t('memoryBear')}`;
|
||||
})
|
||||
.finally(() => {
|
||||
setLoading(false)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: ZhaoYing
|
||||
* @Date: 2026-02-03 17:57:26
|
||||
* @Last Modified by: ZhaoYing
|
||||
* @Last Modified time: 2026-03-26 18:59:53
|
||||
* @Last Modified time: 2026-04-14 16:38:21
|
||||
*/
|
||||
/**
|
||||
* Neo4j User Memory Detail View
|
||||
@@ -22,7 +22,7 @@ import InterestDistribution from './components/InterestDistribution'
|
||||
import NodeStatistics from './components/NodeStatistics'
|
||||
import RelationshipNetwork from './components/RelationshipNetwork'
|
||||
import MemoryInsight from './components/MemoryInsight'
|
||||
import type { EndUserProfileRef, MemoryInsightRef, AboutMeRef } from './types'
|
||||
import type { EndUserProfileRef, MemoryInsightRef, AboutMeRef, EndUser } from './types'
|
||||
import {
|
||||
analyticsRefresh,
|
||||
} from '@/api/memory'
|
||||
@@ -39,8 +39,11 @@ const Neo4j: FC = () => {
|
||||
const [selectedKey, setSelectedKey] = useState<string | null>(null)
|
||||
|
||||
/** Update displayed name */
|
||||
const handleNameUpdate = (data: { other_name?: string; id: string }) => {
|
||||
setName(data.other_name && data.other_name !== '' ? data.other_name : data.id)
|
||||
const handleNameUpdate = (data?: EndUser) => {
|
||||
if (!data) return
|
||||
let name = data.other_name && data.other_name !== '' ? data.other_name : data.id || data.end_user_id
|
||||
setName(name)
|
||||
document.title = `${name} - ${t('memoryBear')}`;
|
||||
}
|
||||
|
||||
/** Navigate back */
|
||||
@@ -78,7 +81,7 @@ const Neo4j: FC = () => {
|
||||
<Flex className="rb:h-full!" gap={12}>
|
||||
<Flex gap={15} vertical justify="space-between" align="center" className="rb:h-full! rb:px-4! rb:pt-6! rb:pb-5! rb:bg-white rb:w-20 rb:rounded-xl">
|
||||
<Flex gap={15} vertical>
|
||||
<Popover
|
||||
<Popover
|
||||
content={t('userMemory.memoryWindow', { name: name })}
|
||||
placement="right"
|
||||
arrow={false}
|
||||
@@ -87,7 +90,7 @@ const Neo4j: FC = () => {
|
||||
<div className="rb:mb-4.25! rb:size-12 rb:rounded-xl rb:bg-cover rb:bg-[url('@/assets/images/userMemory/logo.png')]"></div>
|
||||
</Popover>
|
||||
|
||||
<Flex
|
||||
<Flex
|
||||
align="center"
|
||||
justify="center"
|
||||
className={clsx("rb:cursor-pointer rb:size-12 rb:rounded-xl rb:group", {
|
||||
@@ -155,7 +158,7 @@ const Neo4j: FC = () => {
|
||||
<div className="rb:cursor-pointer rb:size-6 rb:bg-cover rb:bg-[url('@/assets/images/userMemory/logout.svg')]" onClick={goBack}></div>
|
||||
</Flex>
|
||||
</Flex>
|
||||
|
||||
|
||||
<Flex vertical className="rb:flex-1">
|
||||
<NodeStatistics />
|
||||
<RelationshipNetwork />
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: ZhaoYing
|
||||
* @Date: 2026-02-03 17:57:11
|
||||
* @Last Modified by: ZhaoYing
|
||||
* @Last Modified time: 2026-03-31 15:29:45
|
||||
* @Last Modified time: 2026-04-14 15:56:15
|
||||
*/
|
||||
/**
|
||||
* RAG User Memory Detail View
|
||||
@@ -97,6 +97,10 @@ const Rag: FC = () => {
|
||||
}
|
||||
const name = loading.detail ? '' : data?.name && data?.name !== '' ? data.name : id
|
||||
|
||||
useEffect(() => {
|
||||
document.title = `${name} - ${t('memoryBear')}`;
|
||||
}, [name])
|
||||
|
||||
const [refreshLoading, setRefreshLoading] = useState(false)
|
||||
const handleRefresh = () => {
|
||||
if (refreshLoading || !id) return
|
||||
|
||||
Reference in New Issue
Block a user