MCPcopy Create free account
hub / github.com/experdot/pointer / deleteFolders

Function deleteFolders

src/renderer/src/services/pagesService.ts:364–397  ·  view source on GitHub ↗
(ids: string[])

Source from the content-addressed store, hash-verified

362
363// 批量删除文件夹
364export async function deleteFolders(ids: string[]): Promise<void> {
365 if (ids.length === 0) return
366
367 const { page, folder } = stores
368
369 // 收集所有要删除的文件夹 ID(包括子文件夹)
370 const allFolderIds = new Set<string>()
371 for (const id of ids) {
372 allFolderIds.add(id)
373 for (const subId of getAllSubFolderIds(id, folder.folders)) {
374 allFolderIds.add(subId)
375 }
376 }
377
378 // 获取根目录现有页面的最大 order
379 const rootPages = page.pages.filter((p) => !p.parentFolderId)
380 const maxOrder = rootPages.reduce((max, p) => Math.max(max, p.order ?? 0), -1)
381
382 // 批量移动页面到根目录
383 const pagesToMove = page.pages.filter(
384 (p) => p.parentFolderId && allFolderIds.has(p.parentFolderId)
385 )
386 if (pagesToMove.length > 0) {
387 await page.updateMany(
388 pagesToMove.map((p, index) => ({
389 id: p.id,
390 changes: { parentFolderId: undefined, order: maxOrder + index + 1 }
391 }))
392 )
393 }
394
395 // 批量删除所有文件夹
396 await folder.deleteMany([...allFolderIds])
397}
398
399// 切换文件夹展开状态
400export async function toggleFolderExpanded(id: string): Promise<void> {

Callers 1

handleBatchDeleteFunction · 0.85

Calls 4

hasMethod · 0.80
updateManyMethod · 0.80
deleteManyMethod · 0.80
getAllSubFolderIdsFunction · 0.70

Tested by

no test coverage detected