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

Function deleteFolder

src/renderer/src/services/pagesService.ts:294–324  ·  view source on GitHub ↗
(id: string)

Source from the content-addressed store, hash-verified

292
293// 删除文件夹及其全部子项(包括嵌套的页面和子文件夹)
294export async function deleteFolder(id: string): Promise<void> {
295 const { page, folder, message, tab } = stores
296
297 const allFolderIds = [id, ...getAllSubFolderIds(id, folder.folders)]
298
299 // 删除所有子页面
300 const pagesToDelete = page.pages.filter(
301 (p) => p.parentFolderId && allFolderIds.includes(p.parentFolderId)
302 )
303 const pageIds = pagesToDelete.map((p) => p.id)
304
305 // 清除消息缓存
306 for (const pageId of pageIds) {
307 message.evict(pageId)
308 await useMessageQueueStore.getState().removeRecord(pageId)
309 }
310
311 // 关闭对应的标签页
312 const tabsToClose = tab.tabs.filter((t) => t.dataId && pageIds.includes(t.dataId))
313 for (const existingTab of tabsToClose) {
314 tab.closeTab(existingTab.id)
315 }
316
317 // 批量删除页面
318 if (pageIds.length > 0) {
319 await page.deleteMany(pageIds)
320 }
321
322 // 删除所有文件夹(包括子文件夹)
323 await folder.deleteMany(allFolderIds)
324}
325
326// 清空文件夹(删除子项但保留文件夹本身)
327export async function clearFolder(id: string): Promise<void> {

Callers 1

TreeViewFunction · 0.85

Calls 5

evictMethod · 0.80
removeRecordMethod · 0.80
closeTabMethod · 0.80
deleteManyMethod · 0.80
getAllSubFolderIdsFunction · 0.70

Tested by

no test coverage detected