From d3287a0fa4d5ec64400054c4b4178896ee041e03 Mon Sep 17 00:00:00 2001 From: bunker-admin Date: Mon, 16 Feb 2026 21:31:47 -0700 Subject: [PATCH] Updates to howe the file tree udpates --- admin/src/pages/DocsPage.tsx | 18 ++++++++++++++++-- api/src/modules/docs/docs-files.service.ts | 16 +++++++++++++--- api/src/modules/docs/docs.routes.ts | 5 ++++- 3 files changed, 33 insertions(+), 6 deletions(-) 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(() => ( + +