From 529803f791cc0ed9e1ec536de72558fbf8e9eed6 Mon Sep 17 00:00:00 2001 From: Pooja Belaramani Date: Tue, 22 Apr 2025 13:18:25 +0530 Subject: [PATCH 1/2] fix: app crash when we rename folder in fs --- .../RequestTabPanel/FolderNotFound/index.js | 42 +++++++++++++++++++ .../src/components/RequestTabPanel/index.js | 8 +--- 2 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 packages/bruno-app/src/components/RequestTabPanel/FolderNotFound/index.js diff --git a/packages/bruno-app/src/components/RequestTabPanel/FolderNotFound/index.js b/packages/bruno-app/src/components/RequestTabPanel/FolderNotFound/index.js new file mode 100644 index 000000000..eff188890 --- /dev/null +++ b/packages/bruno-app/src/components/RequestTabPanel/FolderNotFound/index.js @@ -0,0 +1,42 @@ +import React, { useEffect, useState, useCallback } from 'react'; +import { closeTabs } from 'providers/ReduxStore/slices/tabs'; +import { useDispatch } from 'react-redux'; + +const FolderNotFound = ({ folderUid }) => { + const dispatch = useDispatch(); + const [showErrorMessage, setShowErrorMessage] = useState(false); + + const closeTab = useCallback(() => { + dispatch( + closeTabs({ + tabUids: [folderUid] + }) + ); + }, [dispatch, folderUid]); + + useEffect(() => { + setTimeout(() => { + setShowErrorMessage(true); + }, 300); + }, []); + + if (!showErrorMessage) { + return null; + } + + return ( +
+
+
Folder no longer exists.
+
+ This can happen when the folder was renamed or deleted on your filesystem. +
+
+ +
+ ); +}; + +export default FolderNotFound; \ No newline at end of file diff --git a/packages/bruno-app/src/components/RequestTabPanel/index.js b/packages/bruno-app/src/components/RequestTabPanel/index.js index 90c6e2f41..5f53a5e02 100644 --- a/packages/bruno-app/src/components/RequestTabPanel/index.js +++ b/packages/bruno-app/src/components/RequestTabPanel/index.js @@ -25,7 +25,7 @@ import { produce } from 'immer'; import CollectionOverview from 'components/CollectionSettings/Overview'; import RequestNotLoaded from './RequestNotLoaded'; import RequestIsLoading from './RequestIsLoading'; -import { closeTabs } from 'providers/ReduxStore/slices/tabs'; +import FolderNotFound from './FolderNotFound'; const MIN_LEFT_PANE_WIDTH = 300; const MIN_RIGHT_PANE_WIDTH = 350; @@ -165,11 +165,7 @@ const RequestTabPanel = () => { if (focusedTab.type === 'folder-settings') { const folder = findItemInCollection(collection, focusedTab.folderUid); if (!folder) { - dispatch( - closeTabs({ - tabUids: [activeTabUid] - }) - ); + return ; } return ; From 2b246e431b9c1c8e9cbf7922be4a2c12b527c95b Mon Sep 17 00:00:00 2001 From: Pooja Belaramani Date: Fri, 25 Apr 2025 15:58:53 +0530 Subject: [PATCH 2/2] change: no found folder tab --- .../bruno-app/src/components/RequestTabs/RequestTab/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/bruno-app/src/components/RequestTabs/RequestTab/index.js b/packages/bruno-app/src/components/RequestTabs/RequestTab/index.js index 562fc319f..5ec489c3e 100644 --- a/packages/bruno-app/src/components/RequestTabs/RequestTab/index.js +++ b/packages/bruno-app/src/components/RequestTabs/RequestTab/index.js @@ -76,7 +76,9 @@ const RequestTab = ({ tab, collection, tabIndex, collectionRequestTabs, folderUi className={`flex items-center justify-between tab-container px-1 ${tab.preview ? "italic" : ""}`} onMouseUp={handleMouseUp} // Add middle-click behavior here > - {tab.type === 'folder-settings' ? ( + {tab.type === 'folder-settings' && !folder ? ( + + ) : tab.type === 'folder-settings' ? ( dispatch(makeTabPermanent({ uid: tab.uid }))} type={tab.type} tabName={folder?.name} /> ) : ( dispatch(makeTabPermanent({ uid: tab.uid }))} type={tab.type} />