diff --git a/packages/bruno-app/src/components/Sidebar/Collections/Collection/index.js b/packages/bruno-app/src/components/Sidebar/Collections/Collection/index.js index 3c19da4f6..93d0daca1 100644 --- a/packages/bruno-app/src/components/Sidebar/Collections/Collection/index.js +++ b/packages/bruno-app/src/components/Sidebar/Collections/Collection/index.js @@ -6,7 +6,7 @@ import filter from 'lodash/filter'; import { useDrop, useDrag } from 'react-dnd'; import { IconChevronRight, IconDots, IconLoader2 } from '@tabler/icons'; import Dropdown from 'components/Dropdown'; -import { toggleCollection } from 'providers/ReduxStore/slices/collections'; +import { toggleCollection, collapseFullCollection } from 'providers/ReduxStore/slices/collections'; import { mountCollection, moveCollectionAndPersist, handleCollectionItemDrop } from 'providers/ReduxStore/slices/collections/actions'; import { useDispatch, useSelector } from 'react-redux'; import { hideHomePage } from 'providers/ReduxStore/slices/app'; @@ -132,6 +132,10 @@ const Collection = ({ collection, searchText }) => { } }; + const handleCollapseFullCollection = () => { + dispatch(collapseFullCollection({ collectionUid: collection.uid })); + }; + const viewCollectionSettings = () => { dispatch( addTab({ @@ -311,6 +315,15 @@ const Collection = ({ collection, searchText }) => { > Share +
{ + menuDropdownTippyRef.current.hide(); + handleCollapseFullCollection(); + }} + > + Collapse +
{ diff --git a/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js b/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js index 909726a2a..236c4c69c 100644 --- a/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js +++ b/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js @@ -96,6 +96,13 @@ export const collectionsSlice = createSlice({ state.collections.push(collection); } }, + collapseFullCollection: (state, action) => { + const { collectionUid } = action.payload; + const collection = findCollectionByUid(state.collections, collectionUid); + if (collection) { + collapseAllItemsInCollection(collection); + } + }, updateCollectionMountStatus: (state, action) => { const collection = findCollectionByUid(state.collections, action.payload.collectionUid); if (collection) { @@ -2748,6 +2755,7 @@ export const { saveRequest, deleteRequestDraft, newEphemeralHttpRequest, + collapseFullCollection, toggleCollection, toggleCollectionItem, requestUrlChanged,