fix(agent): redirect to blank page when navigating home from model page
This commit is contained in:
@@ -11,6 +11,7 @@ export default {
|
||||
yes: 'Yes',
|
||||
no: 'No',
|
||||
total: 'Total',
|
||||
know: 'Known',
|
||||
rename: 'Rename',
|
||||
name: 'Name',
|
||||
save: 'Save',
|
||||
@@ -106,6 +107,7 @@ export default {
|
||||
noMoreData: `That's all. Nothing more.`,
|
||||
},
|
||||
knowledgeDetails: {
|
||||
pleaseAddEmbeddingModel: 'Please add embedding model and LLM in the model provider first, then set them in "Set Default Model".',
|
||||
localUpload: 'Local Upload',
|
||||
fileSize: 'File Size',
|
||||
fileType: 'File Type',
|
||||
|
||||
@@ -11,6 +11,7 @@ export default {
|
||||
yes: '是',
|
||||
no: '否',
|
||||
total: '总共',
|
||||
know: '知道了',
|
||||
rename: '重命名',
|
||||
name: '名称',
|
||||
save: '保存',
|
||||
@@ -99,6 +100,7 @@ export default {
|
||||
noMoreData: '没有更多数据了',
|
||||
},
|
||||
knowledgeDetails: {
|
||||
pleaseAddEmbeddingModel: '请先在模型提供商中添加嵌入模型和LLM,然后在"设置默认模型"中设置它们。',
|
||||
localUpload: '本地上传',
|
||||
fileSize: '文件大小',
|
||||
fileType: '文件类型',
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
import { useState, useCallback, useEffect, useRef } from 'react';
|
||||
import agentService from '@/services/agent_service';
|
||||
import userService from '@/services/user_service';
|
||||
import type { IAgent, IGraph } from '@/interfaces/database/agent';
|
||||
import type { IAgentPaginationParams, IAgentCreateRequestBody, IAgentSettingRequestBody } from '@/interfaces/request/agent';
|
||||
import logger from '@/utils/logger';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { useSnackbar } from '@/hooks/useSnackbar';
|
||||
import { useDialog } from '@/hooks/useDialog';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { isEmpty } from 'lodash';
|
||||
|
||||
export interface UseAgentListState {
|
||||
agents: IAgent[];
|
||||
@@ -39,6 +43,28 @@ export const useAgentList = (initialParams?: IAgentPaginationParams) => {
|
||||
const [currentPage, setCurrentPage] = useState(initialParams?.page || 1);
|
||||
const [pageSize, setPageSize] = useState(initialParams?.page_size || 10);
|
||||
const [keywords, setKeywords] = useState(initialParams?.keywords || '');
|
||||
const { showMessage } = useSnackbar();
|
||||
const dialog = useDialog();
|
||||
const navigate = useNavigate();
|
||||
const { t } = useTranslation();
|
||||
|
||||
// 查询是否有默认的模型
|
||||
const checkDefaultModel = useCallback(async (id: string) => {
|
||||
const { data: res } = await userService.getTenantInfo();
|
||||
if (res.code === 0) {
|
||||
const { data } = res;
|
||||
if (isEmpty(data.embd_id) || isEmpty(data.llm_id)) {
|
||||
await dialog.warning({
|
||||
title: t('common.warn'),
|
||||
content: t('knowledgeDetails.pleaseAddEmbeddingModel'),
|
||||
confirmText: t('common.know')
|
||||
});
|
||||
navigate(`/models`);
|
||||
} else {
|
||||
navigate(`/route-ragflow/agent/${id}`);
|
||||
}
|
||||
}
|
||||
}, [dialog, navigate, showMessage]);
|
||||
|
||||
const fetchAgentList = useCallback(async (params?: IAgentPaginationParams) => {
|
||||
setLoading(true);
|
||||
@@ -81,6 +107,7 @@ export const useAgentList = (initialParams?: IAgentPaginationParams) => {
|
||||
currentPage,
|
||||
pageSize,
|
||||
keywords,
|
||||
checkDefaultModel,
|
||||
fetchAgents: fetchAgentList,
|
||||
setKeywords,
|
||||
setCurrentPage,
|
||||
|
||||
@@ -15,6 +15,7 @@ export default {
|
||||
total: 'Total',
|
||||
rename: 'Rename',
|
||||
name: 'Name',
|
||||
know: 'Known',
|
||||
save: 'Save',
|
||||
namePlaceholder: 'Please input name',
|
||||
next: 'Next',
|
||||
@@ -425,6 +426,7 @@ export default {
|
||||
paginationInfo: 'Total {{total}} knowledge bases, page {{current}} of {{totalPages}}',
|
||||
},
|
||||
knowledgeDetails: {
|
||||
pleaseAddEmbeddingModel: 'Please add embedding model and LLM in the model provider first, then set them in "Set Default Model".',
|
||||
fileSize: 'File Size',
|
||||
fileType: 'File Type',
|
||||
uploadedBy: 'Uploaded by',
|
||||
|
||||
@@ -13,6 +13,7 @@ export default {
|
||||
cancel: '否',
|
||||
total: '总共',
|
||||
rename: '重命名',
|
||||
know: '知道了',
|
||||
name: '名称',
|
||||
save: '保存',
|
||||
namePlaceholder: '请输入名称',
|
||||
@@ -423,6 +424,7 @@ export default {
|
||||
paginationInfo: '共 {{total}} 个知识库,第 {{current}} 页,共 {{totalPages}} 页',
|
||||
},
|
||||
knowledgeDetails: {
|
||||
pleaseAddEmbeddingModel: '请先在模型提供商中添加嵌入模型和LLM,然后在"设置默认模型"中设置它们。',
|
||||
fileSize: '文件大小',
|
||||
fileType: '文件类型',
|
||||
uploadedBy: '创建者',
|
||||
|
||||
@@ -17,7 +17,6 @@ import EditAgentDialog from './components/EditAgentDialog';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { useDialog } from '@/hooks/useDialog';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
|
||||
function AgentListPage() {
|
||||
const [searchValue, setSearchValue] = useState('');
|
||||
const [createOpen, setCreateOpen] = useState(false);
|
||||
@@ -31,6 +30,7 @@ function AgentListPage() {
|
||||
pageSize,
|
||||
setCurrentPage,
|
||||
setKeywords,
|
||||
checkDefaultModel,
|
||||
refresh,
|
||||
} = useAgentList({ page: 1, page_size: 10 });
|
||||
|
||||
@@ -40,8 +40,8 @@ function AgentListPage() {
|
||||
const ops = useAgentOperations();
|
||||
|
||||
const totalPages = useMemo(() => {
|
||||
return Math.ceil((agents?.length || 0) / pageSize) || 1;
|
||||
}, [agents, pageSize]);
|
||||
return Math.ceil((total || 0) / pageSize) || 1;
|
||||
}, [total, pageSize]);
|
||||
|
||||
const currentPageData = useMemo(() => {
|
||||
const startIndex = (currentPage - 1) * pageSize;
|
||||
@@ -108,7 +108,7 @@ function AgentListPage() {
|
||||
onCreateAgent={() => setCreateOpen(true)}
|
||||
onEdit={(agent) => { setEditTarget(agent); setEditOpen(true); }}
|
||||
onView={(agent) => {
|
||||
navigate(`/route-ragflow/agent/${agent.id}`);
|
||||
checkDefaultModel(agent.id);
|
||||
}}
|
||||
onDelete={async (agent) => {
|
||||
const confirmed = await dialog.confirm({
|
||||
|
||||
Reference in New Issue
Block a user