import each from 'lodash/each'; import find from 'lodash/find'; export const flattenItems = (items = []) => { const flattenedItems = []; const flatten = (itms, flattened) => { each(itms, (i) => { flattened.push(i); if(i.items && i.items.length) { flatten(i.items, flattened); } }) } flatten(items, flattenedItems); return flattenedItems; }; export const findItem = (items = [], itemUid) => { return find(items, (i) => i.uid === itemUid); }; export const findCollectionByUid = (collections, collectionUid) => { return find(collections, (c) => c.uid === collectionUid); }; export const findItemInCollection = (collection, itemUid) => { let flattenedItems = flattenItems(collection.items); return findItem(flattenedItems, itemUid); }