Skip to content

Commit

Permalink
fix(usebruno#251, usebruno#265): phantoms folders fix on rename/delet…
Browse files Browse the repository at this point in the history
…e needs to be run only on windows
  • Loading branch information
helloanoop committed Oct 1, 2023
1 parent 3d8dee9 commit fcc12fb
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import {
} from 'utils/collections';
import { collectionSchema, itemSchema, environmentSchema, environmentsSchema } from '@usebruno/schema';
import { waitForNextTick } from 'utils/common';
import { getDirectoryName } from 'utils/common/platform';
import { getDirectoryName, isWindowsOS } from 'utils/common/platform';
import { sendNetworkRequest, cancelNetworkRequest } from 'utils/network';

import {
Expand Down Expand Up @@ -263,10 +263,19 @@ 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);
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);
});
};

Expand Down Expand Up @@ -351,8 +360,14 @@ export const deleteItem = (itemUid, collectionUid) => (dispatch, getState) => {
ipcRenderer
.invoke('renderer:delete-item', item.pathname, item.type)
.then(() => {
dispatch(_deleteItem({ itemUid, collectionUid }))
resolve()
// 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();
})
.catch((error) => reject(error));
}
Expand All @@ -361,8 +376,8 @@ export const deleteItem = (itemUid, collectionUid) => (dispatch, getState) => {
};

export const sortCollections = () => (dispatch) => {
dispatch(_sortCollections())
}
dispatch(_sortCollections());
};
export const moveItem = (collectionUid, draggedItemUid, targetItemUid) => (dispatch, getState) => {
const state = getState();
const collection = findCollectionByUid(state.collections.collections, collectionUid);
Expand Down
8 changes: 8 additions & 0 deletions packages/bruno-app/src/utils/common/platform.js
Original file line number Diff line number Diff line change
@@ -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) {
Expand Down Expand Up @@ -33,3 +34,10 @@ export const getDirectoryName = (pathname) => {

return path.dirname(pathname);
};

export const isWindowsOS = () => {
const os = platform.os;
const osFamily = os.family.toLowerCase();

return osFamily.includes('windows');
};

0 comments on commit fcc12fb

Please sign in to comment.