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

Function clearFolder

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

Source from the content-addressed store, hash-verified

325
326// 清空文件夹(删除子项但保留文件夹本身)
327export async function clearFolder(id: string): Promise<void> {
328 const { page, folder, message, tab } = stores
329
330 // 获取所有子文件夹 ID
331 const subFolderIds = getAllSubFolderIds(id, folder.folders)
332 const allFolderIds = [id, ...subFolderIds]
333
334 // 删除所有子页面
335 const pagesToDelete = page.pages.filter(
336 (p) => p.parentFolderId && allFolderIds.includes(p.parentFolderId)
337 )
338 const pageIds = pagesToDelete.map((p) => p.id)
339
340 // 清除消息缓存
341 for (const pageId of pageIds) {
342 message.evict(pageId)
343 await useMessageQueueStore.getState().removeRecord(pageId)
344 }
345
346 // 关闭对应的标签页
347 const tabsToClose = tab.tabs.filter((t) => t.dataId && pageIds.includes(t.dataId))
348 for (const existingTab of tabsToClose) {
349 tab.closeTab(existingTab.id)
350 }
351
352 // 批量删除页面
353 if (pageIds.length > 0) {
354 await page.deleteMany(pageIds)
355 }
356
357 // 删除所有子文件夹(不删除当前文件夹)
358 if (subFolderIds.length > 0) {
359 await folder.deleteMany(subFolderIds)
360 }
361}
362
363// 批量删除文件夹
364export async function deleteFolders(ids: string[]): Promise<void> {

Callers 1

handleClearFolderFunction · 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