diff --git a/admin/src/pages/DocsPage.tsx b/admin/src/pages/DocsPage.tsx index d80b13a6..b22d2d87 100644 --- a/admin/src/pages/DocsPage.tsx +++ b/admin/src/pages/DocsPage.tsx @@ -48,6 +48,7 @@ import { FontSizeOutlined, BuildOutlined, HolderOutlined, + QuestionCircleOutlined, } from '@ant-design/icons'; import Editor from '@monaco-editor/react'; import type { OnMount } from '@monaco-editor/react'; @@ -402,11 +403,12 @@ export default function DocsPage() { const [messageApi, contextHolder] = message.useMessage(); // Fetch file tree - const fetchTree = useCallback(async (showLoading = true) => { + const fetchTree = useCallback(async (showLoading = true, force = false) => { try { if (showLoading) setLoading(true); setFetchError(false); - const res = await api.get('/docs/files'); + const url = force ? '/docs/files?force=true' : '/docs/files'; + const res = await api.get(url); setFileTree(res.data); setCachedTree(res.data); } catch { @@ -690,6 +692,11 @@ export default function DocsPage() { } }, []); + const refreshTree = useCallback(() => { + invalidateTreeCache(); + fetchTree(false, true); + }, [fetchTree]); + // File tree context menu const getContextMenuItems = useCallback((nodePath: string, isDirectory: boolean): MenuProps['items'] => { const items: MenuProps['items'] = []; @@ -848,6 +855,10 @@ export default function DocsPage() { // Header actions const headerActions = useMemo(() => ( + +