MCPcopy Create free account
hub / github.com/massCodeIO/massCode / ensureSelectedFolderIsVisible

Function ensureSelectedFolderIsVisible

src/renderer/composables/useFolders.ts:261–307  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

259}
260
261async function ensureSelectedFolderIsVisible() {
262 if (!state.folderId || !folders.value) {
263 return
264 }
265
266 const parentIds = findParentFolderIds(state.folderId, flatFolderList.value)
267
268 if (parentIds.length === 0) {
269 return
270 }
271
272 const foldersToOpen = parentIds.filter((parentId) => {
273 const folder = flatFolderList.value.find(f => f.id === parentId)
274 return folder && folder.isOpen === 0
275 })
276
277 if (foldersToOpen.length === 0) {
278 return
279 }
280
281 try {
282 const updateResults = await Promise.allSettled(
283 foldersToOpen.map(folderId =>
284 api.folders.patchFoldersById(String(folderId), { isOpen: 1 }),
285 ),
286 )
287
288 const failedUpdates = updateResults
289 .map((result, index) => ({ result, folderId: foldersToOpen[index] }))
290 .filter(({ result }) => result.status === 'rejected')
291
292 if (failedUpdates.length > 0) {
293 console.warn('Some folders failed to open:', failedUpdates)
294 }
295
296 await getFolders(false)
297 }
298 catch (error) {
299 console.error('Error while opening parent folders:', error)
300 try {
301 await getFolders(false)
302 }
303 catch (fallbackError) {
304 console.error('Failed to refresh folders:', fallbackError)
305 }
306 }
307}
308
309function getFolderByIdFromTree(
310 nodes: any[] | undefined,

Callers 2

getFoldersFunction · 0.70
selectFolderFunction · 0.70

Calls 2

findParentFolderIdsFunction · 0.70
getFoldersFunction · 0.70

Tested by

no test coverage detected