From 094bf7bc60122c94ff16caf51a6df58125a7a3af Mon Sep 17 00:00:00 2001 From: Jack Scotson Date: Sun, 8 Oct 2023 10:47:34 +0100 Subject: [PATCH 1/7] fix(#251): Uses os.release to get correct pathsep for windows --- .../src/providers/ReduxStore/slices/collections/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 495989eb1..72c82f8ce 100644 --- a/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js +++ b/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js @@ -1,4 +1,3 @@ -import path from 'path'; import { uuid } from 'utils/common'; import find from 'lodash/find'; import map from 'lodash/map'; @@ -24,8 +23,9 @@ import { } from 'utils/collections'; import { parseQueryParams, stringifyQueryParams } from 'utils/url'; import { getSubdirectoriesFromRoot, getDirectoryName } from 'utils/common/platform'; +import os from 'os'; -const PATH_SEPARATOR = path.sep; +const PATH_SEPARATOR = /Windows/i.test(os.release()) ? '\\' : '/'; const initialState = { collections: [] From ff3c666f485b983efa52f4849757b2191d358a8a Mon Sep 17 00:00:00 2001 From: Jack Scotson Date: Tue, 10 Oct 2023 17:32:17 +0100 Subject: [PATCH 2/7] use isWindowsOS() --- .../src/providers/ReduxStore/slices/collections/index.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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 c0e904399..bd78d4c4f 100644 --- a/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js +++ b/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js @@ -22,10 +22,9 @@ import { areItemsTheSameExceptSeqUpdate } from 'utils/collections'; import { parseQueryParams, stringifyQueryParams } from 'utils/url'; -import { getSubdirectoriesFromRoot, getDirectoryName } from 'utils/common/platform'; -import os from 'os'; +import { getSubdirectoriesFromRoot, getDirectoryName, isWindowsOS } from 'utils/common/platform'; -const PATH_SEPARATOR = /Windows/i.test(os.release()) ? '\\' : '/'; +const PATH_SEPARATOR = isWindowsOS() ? '\\' : '/'; const initialState = { collections: [], From b07ccbdfab5d0560253235f2bb864fdc96aa2e11 Mon Sep 17 00:00:00 2001 From: Jack Scotson Date: Sat, 14 Oct 2023 16:32:29 +0100 Subject: [PATCH 3/7] adds PATH_SEPARATOR constant --- .../src/providers/ReduxStore/slices/collections/actions.js | 4 +--- .../src/providers/ReduxStore/slices/collections/index.js | 4 +--- packages/bruno-app/src/utils/common/platform.js | 2 ++ 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js b/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js index 111f26d3e..f18c7edfa 100644 --- a/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js +++ b/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js @@ -21,7 +21,7 @@ import { } from 'utils/collections'; import { collectionSchema, itemSchema, environmentSchema, environmentsSchema } from '@usebruno/schema'; import { waitForNextTick } from 'utils/common'; -import { getDirectoryName, isWindowsOS } from 'utils/common/platform'; +import { getDirectoryName, isWindowsOS, PATH_SEPARATOR } from 'utils/common/platform'; import { sendNetworkRequest, cancelNetworkRequest } from 'utils/network'; import { @@ -46,8 +46,6 @@ import { import { closeAllCollectionTabs } from 'providers/ReduxStore/slices/tabs'; import { resolveRequestFilename } from 'utils/common/platform'; -const PATH_SEPARATOR = path.sep; - export const renameCollection = (newName, collectionUid) => (dispatch, getState) => { const state = getState(); const collection = findCollectionByUid(state.collections.collections, collectionUid); 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 70e12a3f8..9e64ff0f4 100644 --- a/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js +++ b/packages/bruno-app/src/providers/ReduxStore/slices/collections/index.js @@ -24,9 +24,7 @@ import { areItemsTheSameExceptSeqUpdate } from 'utils/collections'; import { parseQueryParams, stringifyQueryParams } from 'utils/url'; -import { getSubdirectoriesFromRoot, getDirectoryName, isWindowsOS } from 'utils/common/platform'; - -const PATH_SEPARATOR = isWindowsOS() ? '\\' : '/'; +import { getSubdirectoriesFromRoot, getDirectoryName, PATH_SEPARATOR } from 'utils/common/platform'; const initialState = { collections: [], diff --git a/packages/bruno-app/src/utils/common/platform.js b/packages/bruno-app/src/utils/common/platform.js index 771daaf14..03ff9539e 100644 --- a/packages/bruno-app/src/utils/common/platform.js +++ b/packages/bruno-app/src/utils/common/platform.js @@ -48,3 +48,5 @@ export const isMacOS = () => { return osFamily.includes('os x'); }; + +export const PATH_SEPARATOR = isWindowsOS() ? '\\' : '/'; From 7808a6db05bdf123ab47237ef94a7b3172c5fbfb Mon Sep 17 00:00:00 2001 From: Jack Scotson Date: Sat, 14 Oct 2023 16:36:10 +0100 Subject: [PATCH 4/7] Revert "fix(#251, #265): phantoms folders fix on rename/delete needs to be run only on windows" This reverts commit fcc12fb089472716328054665d767d7b0ae48e04. # Conflicts: # packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js # packages/bruno-app/src/utils/common/platform.js --- .../ReduxStore/slices/collections/actions.js | 36 ++++++------------- .../bruno-app/src/utils/common/platform.js | 1 - 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js b/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js index f18c7edfa..79f3384b8 100644 --- a/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js +++ b/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js @@ -171,11 +171,7 @@ export const cancelRequest = (cancelTokenUid, item, collection) => (dispatch) => .catch((err) => console.log(err)); }; -// todo: this can be directly put inside the collections/index.js file -// the coding convention is to put only actions that need ipc in this file -export const sortCollections = (order) => (dispatch) => { - dispatch(_sortCollections(order)); -}; + export const runCollectionFolder = (collectionUid, folderUid, recursive) => (dispatch, getState) => { const state = getState(); const collection = findCollectionByUid(state.collections.collections, collectionUid); @@ -293,19 +289,10 @@ export const renameItem = (newName, itemUid, collectionUid) => (dispatch, getSta } const { ipcRenderer } = window; - ipcRenderer - .invoke('renderer:rename-item', item.pathname, newPathname, newName) - .then(() => { - // In case of Mac and Linux, we get the unlinkDir and addDir IPC events from electron which takes care of updating the state - // But in windows we don't get those events, so we need to update the state manually - // This looks like an issue in our watcher library chokidar - // GH: https://github.com/usebruno/bruno/issues/251 - if (isWindowsOS()) { - dispatch(_renameItem({ newName, itemUid, collectionUid })); - } - resolve(); - }) - .catch(reject); + ipcRenderer.invoke('renderer:rename-item', item.pathname, newPathname, newName).then(() => { + dispatch(_renameItem({ newName, itemUid, collectionUid })) + resolve() + }).catch(reject); }); }; @@ -390,14 +377,8 @@ export const deleteItem = (itemUid, collectionUid) => (dispatch, getState) => { ipcRenderer .invoke('renderer:delete-item', item.pathname, item.type) .then(() => { - // In case of Mac and Linux, we get the unlinkDir IPC event from electron which takes care of updating the state - // But in windows we don't get those events, so we need to update the state manually - // This looks like an issue in our watcher library chokidar - // GH: https://github.com/usebruno/bruno/issues/265 - if (isWindowsOS()) { - dispatch(_deleteItem({ itemUid, collectionUid })); - } - resolve(); + dispatch(_deleteItem({ itemUid, collectionUid })) + resolve() }) .catch((error) => reject(error)); } @@ -405,6 +386,9 @@ export const deleteItem = (itemUid, collectionUid) => (dispatch, getState) => { }); }; +export const sortCollections = () => (dispatch) => { + dispatch(_sortCollections()) +} export const moveItem = (collectionUid, draggedItemUid, targetItemUid) => (dispatch, getState) => { const state = getState(); const collection = findCollectionByUid(state.collections.collections, collectionUid); diff --git a/packages/bruno-app/src/utils/common/platform.js b/packages/bruno-app/src/utils/common/platform.js index 03ff9539e..24b4a41ac 100644 --- a/packages/bruno-app/src/utils/common/platform.js +++ b/packages/bruno-app/src/utils/common/platform.js @@ -1,7 +1,6 @@ import trim from 'lodash/trim'; import path from 'path'; import slash from './slash'; -import platform from 'platform'; export const isElectron = () => { if (!window) { From 0f1fb72e216c7e56e98bcc770bc724af76de4ae6 Mon Sep 17 00:00:00 2001 From: Jack Scotson Date: Sat, 14 Oct 2023 16:38:12 +0100 Subject: [PATCH 5/7] fix(#251): Re-add platform var --- packages/bruno-app/src/utils/common/platform.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/bruno-app/src/utils/common/platform.js b/packages/bruno-app/src/utils/common/platform.js index 24b4a41ac..03ff9539e 100644 --- a/packages/bruno-app/src/utils/common/platform.js +++ b/packages/bruno-app/src/utils/common/platform.js @@ -1,6 +1,7 @@ import trim from 'lodash/trim'; import path from 'path'; import slash from './slash'; +import platform from 'platform'; export const isElectron = () => { if (!window) { From 211f941b9f9e56b2809890d295db953ceaf83be4 Mon Sep 17 00:00:00 2001 From: Jack Scotson Date: Sun, 15 Oct 2023 10:16:41 +0100 Subject: [PATCH 6/7] rm renameitem --- .../src/providers/ReduxStore/slices/collections/actions.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js b/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js index 79f3384b8..3a5e17bce 100644 --- a/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js +++ b/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js @@ -31,7 +31,6 @@ import { requestCancelled, responseReceived, newItem as _newItem, - renameItem as _renameItem, cloneItem as _cloneItem, deleteItem as _deleteItem, saveRequest as _saveRequest, @@ -290,7 +289,6 @@ export const renameItem = (newName, itemUid, collectionUid) => (dispatch, getSta const { ipcRenderer } = window; ipcRenderer.invoke('renderer:rename-item', item.pathname, newPathname, newName).then(() => { - dispatch(_renameItem({ newName, itemUid, collectionUid })) resolve() }).catch(reject); }); From 074cbf0c03056e8ad5e8db2b340eea6520ad391c Mon Sep 17 00:00:00 2001 From: Jack Scotson Date: Sun, 15 Oct 2023 10:25:35 +0100 Subject: [PATCH 7/7] cleanup --- .../src/providers/ReduxStore/slices/collections/actions.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js b/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js index 3a5e17bce..1c3295a19 100644 --- a/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js +++ b/packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js @@ -288,9 +288,7 @@ export const renameItem = (newName, itemUid, collectionUid) => (dispatch, getSta } const { ipcRenderer } = window; - ipcRenderer.invoke('renderer:rename-item', item.pathname, newPathname, newName).then(() => { - resolve() - }).catch(reject); + ipcRenderer.invoke('renderer:rename-item', item.pathname, newPathname, newName).then(resolve).catch(reject); }); };