diff --git a/renderer/providers/ReduxStore/slices/collections.js b/renderer/providers/ReduxStore/slices/collections.js index 378230972..dc1bb4def 100644 --- a/renderer/providers/ReduxStore/slices/collections.js +++ b/renderer/providers/ReduxStore/slices/collections.js @@ -14,6 +14,7 @@ import { findParentItemInCollection, transformCollectionToSaveToIdb, addDepth, + collapseCollection, deleteItemInCollection, isItemARequest, isItemAFolder @@ -34,6 +35,7 @@ export const collectionsSlice = createSlice({ initialState, reducers: { _loadCollections: (state, action) => { + each(action.payload.collections, (c) => collapseCollection(c)); each(action.payload.collections, (c) => addDepth(c.items)); state.collections = action.payload.collections; }, diff --git a/renderer/utils/collections/index.js b/renderer/utils/collections/index.js index c1f8b449e..f42e8e818 100644 --- a/renderer/utils/collections/index.js +++ b/renderer/utils/collections/index.js @@ -28,6 +28,22 @@ export const addDepth = (items = []) => { depth(items, 1); }; +export const collapseCollection = (collection) => { + collection.collapsed = true; + + const collapseItem = (items) => { + each(items, (i) => { + i.collapsed = true; + + if(i.items && i.items.length) { + collapseItem(i.items); + } + }) + } + + collapseItem(collection.items, 1); +}; + export const sortItems = (collection) => { const sort = (obj) => { if(obj.items && obj.items.length) {