fix: hide docs in leaf directories from tree display

This commit is contained in:
2026-03-18 20:30:31 +08:00
parent c0e0f91aa4
commit d95e6c11ec

View File

@@ -71,13 +71,25 @@ export const ApiDocViewer = ({ onDocsPathChange, showAddModal, onCloseAddModal }
setExternalDocs(docs) setExternalDocs(docs)
const dirs = new Set(docs.map(d => {
const parts = d.relativePath.split('/')
return parts.length >= 2 ? parts.slice(0, -1).join('/') : ''
}))
const dirsWithSubdirs = new Set(
docs
.filter(d => d.relativePath.split('/').length >= 3)
.map(d => d.relativePath.split('/').slice(0, -1).join('/'))
)
const leafDirs = new Set([...dirs].filter(d => !dirsWithSubdirs.has(d)))
const fileList = docs const fileList = docs
.filter(doc => { .filter(doc => {
const parts = doc.relativePath.split('/') const parts = doc.relativePath.split('/')
if (parts.length < 2) return true if (parts.length < 2) return true
const filename = parts[parts.length - 1].replace(/\.md$/, '') const parentDir = parts.slice(0, -1).join('/')
const parentFolder = parts[parts.length - 2] return !leafDirs.has(parentDir)
return filename !== parentFolder
}) })
.map(d => d.relativePath) .map(d => d.relativePath)
const tree = buildFileTree(fileList, '/') const tree = buildFileTree(fileList, '/')