From 4ddccefee3f9a858a4198b9530027bc7264eecc7 Mon Sep 17 00:00:00 2001 From: Pragadesh-45 <54320162+Pragadesh-45@users.noreply.github.com> Date: Tue, 27 Aug 2024 11:51:19 +0530 Subject: [PATCH] fix: multiple tab collection level settings (#2905) * added isFolderSettingsOpenedInTabs logic --- .../src/components/FolderSettings/index.js | 4 +-- .../Collection/CollectionItem/index.js | 28 +++++++++++++------ .../src/providers/ReduxStore/slices/tabs.js | 2 +- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/packages/bruno-app/src/components/FolderSettings/index.js b/packages/bruno-app/src/components/FolderSettings/index.js index e9b26c084..966c36b36 100644 --- a/packages/bruno-app/src/components/FolderSettings/index.js +++ b/packages/bruno-app/src/components/FolderSettings/index.js @@ -19,8 +19,8 @@ const FolderSettings = ({ collection, folder }) => { const setTab = (tab) => { dispatch( updatedFolderSettingsSelectedTab({ - collectionUid: collection.uid, - folderUid: folder.uid, + collectionUid: collection?.uid, + folderUid: folder?.uid, tab }) ); diff --git a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/index.js b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/index.js index 9fce06eec..6e5947e58 100644 --- a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/index.js +++ b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/index.js @@ -189,16 +189,28 @@ const CollectionItem = ({ item, collection, searchText }) => { toast.error('URL is required'); } }; + const viewFolderSettings = () => { - dispatch( - addTab({ - uid: uuid(), - collectionUid: collection.uid, - folderUid: item.uid, - type: 'folder-settings' - }) - ); + if (isItemAFolder(item)) { + if (itemIsOpenedInTabs(item, tabs)) { + dispatch( + focusTab({ + uid: item.uid + }) + ); + return; + } + dispatch( + addTab({ + uid: item.uid, + collectionUid: collection.uid, + type: 'folder-settings' + }) + ); + return; + } }; + const requestItems = sortRequestItems(filter(item.items, (i) => isItemARequest(i))); const folderItems = sortFolderItems(filter(item.items, (i) => isItemAFolder(i))); diff --git a/packages/bruno-app/src/providers/ReduxStore/slices/tabs.js b/packages/bruno-app/src/providers/ReduxStore/slices/tabs.js index b1de355a6..7c7038280 100644 --- a/packages/bruno-app/src/providers/ReduxStore/slices/tabs.js +++ b/packages/bruno-app/src/providers/ReduxStore/slices/tabs.js @@ -41,7 +41,7 @@ export const tabsSlice = createSlice({ requestPaneTab: action.payload.requestPaneTab || 'params', responsePaneTab: 'response', type: action.payload.type || 'request', - ...(action.payload.folderUid ? { folderUid: action.payload.folderUid } : {}) + ...(action.payload.uid ? { folderUid: action.payload.uid } : {}) }); state.activeTabUid = action.payload.uid; },