From 933e075f8b9059f4468460496826e947a4bf51c5 Mon Sep 17 00:00:00 2001 From: balibabu Date: Mon, 21 Jul 2025 17:52:15 +0800 Subject: [PATCH] Feat: Display agent version in pages #3221 (#8947) ### What problem does this PR solve? Feat: Display agent version in pages #3221 ### Type of change - [x] New Feature (non-breaking change which adds functionality) --- web/src/hooks/logic-hooks/use-pagination.ts | 24 ++++++ web/src/pages/agent/version-dialog/index.tsx | 79 ++++++++++++-------- web/tailwind.config.js | 1 + 3 files changed, 72 insertions(+), 32 deletions(-) create mode 100644 web/src/hooks/logic-hooks/use-pagination.ts diff --git a/web/src/hooks/logic-hooks/use-pagination.ts b/web/src/hooks/logic-hooks/use-pagination.ts new file mode 100644 index 000000000..47e3cf46c --- /dev/null +++ b/web/src/hooks/logic-hooks/use-pagination.ts @@ -0,0 +1,24 @@ +import { useCallback, useMemo, useState } from 'react'; + +export function useClientPagination(list: Array) { + const [page, setPage] = useState(1); + const [pageSize, setPageSize] = useState(10); + + const onPaginationChange = useCallback((page: number, pageSize: number) => { + setPage(page); + setPageSize(pageSize); + }, []); + + const pagedList = useMemo(() => { + return list?.slice((page - 1) * pageSize, page * pageSize); + }, [list, page, pageSize]); + + return { + page, + pageSize, + setPage, + setPageSize, + onPaginationChange, + pagedList, + }; +} diff --git a/web/src/pages/agent/version-dialog/index.tsx b/web/src/pages/agent/version-dialog/index.tsx index b2ed56f33..13915bb84 100644 --- a/web/src/pages/agent/version-dialog/index.tsx +++ b/web/src/pages/agent/version-dialog/index.tsx @@ -6,7 +6,9 @@ import { DialogHeader, DialogTitle, } from '@/components/ui/dialog'; +import { RAGFlowPagination } from '@/components/ui/ragflow-pagination'; import { Spin } from '@/components/ui/spin'; +import { useClientPagination } from '@/hooks/logic-hooks/use-pagination'; import { useFetchVersion, useFetchVersionList, @@ -34,6 +36,9 @@ export function VersionDialog({ const [selectedId, setSelectedId] = useState(''); const { data: agent, loading: versionLoading } = useFetchVersion(selectedId); + const { page, pageSize, onPaginationChange, pagedList } = + useClientPagination(data); + const handleClick = useCallback( (id: string) => () => { setSelectedId(id); @@ -58,19 +63,21 @@ export function VersionDialog({ - {t('flow.historyversion')} + + {t('flow.historyversion')} + -
+
{loading ? ( ) : ( -
    - {data.map((x) => ( +
      + {pagedList.map((x) => (
    • @@ -80,51 +87,59 @@ export function VersionDialog({
    )}
-
{versionLoading ? ( ) : ( - +
-
{agent?.title}
+
{agent?.title}

- {formatDate(agent?.create_date)} + Created: {formatDate(agent?.create_date)}

- - ({ - ...x, - type: 'default', - })) || [] - } - fitView - nodeTypes={nodeTypes} - edgeTypes={{}} - zoomOnScroll={true} - panOnDrag={true} - zoomOnDoubleClick={false} - preventScrolling={true} - minZoom={0.1} - > - - - +
+ + ({ + ...x, + type: 'default', + })) || [] + } + fitView + nodeTypes={nodeTypes} + edgeTypes={{}} + zoomOnScroll={true} + panOnDrag={true} + zoomOnDoubleClick={false} + preventScrolling={true} + minZoom={0.1} + className="!bg-background-agent" + > + + + +
)}
+
); diff --git a/web/tailwind.config.js b/web/tailwind.config.js index e2c2a2e4b..95918ca74 100644 --- a/web/tailwind.config.js +++ b/web/tailwind.config.js @@ -52,6 +52,7 @@ module.exports = { 'background-card': 'var(--background-card)', 'background-checked': 'var(--background-checked)', 'background-highlight': 'var(--background-highlight)', + 'background-agent': 'var(--background-agent)', 'input-border': 'var(--input-border)', 'dot-green': 'var(--dot-green)',