mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-11 09:51:30 +00:00
Merge pull request #5722 from Skewnart/fix/reorder-items-when-deleting
fix: Reorder items when deleting request or directory
This commit is contained in:
@@ -3,7 +3,7 @@ import Modal from 'components/Modal';
|
||||
import { isItemAFolder } from 'utils/tabs';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import { closeTabs } from 'providers/ReduxStore/slices/tabs';
|
||||
import { deleteItem } from 'providers/ReduxStore/slices/collections/actions';
|
||||
import { deleteItem, reorderDirectoryItems } from 'providers/ReduxStore/slices/collections/actions';
|
||||
import { recursivelyGetAllItemUids } from 'utils/collections';
|
||||
import StyledWrapper from './StyledWrapper';
|
||||
|
||||
@@ -11,7 +11,8 @@ const DeleteCollectionItem = ({ onClose, item, collectionUid }) => {
|
||||
const dispatch = useDispatch();
|
||||
const isFolder = isItemAFolder(item);
|
||||
const onConfirm = () => {
|
||||
dispatch(deleteItem(item.uid, collectionUid)).then(() => {
|
||||
dispatch(deleteItem(item.uid, collectionUid)).then(({ parentDirectory }) => {
|
||||
dispatch(reorderDirectoryItems(parentDirectory, item.uid));
|
||||
|
||||
if (isFolder) {
|
||||
// close all tabs that belong to the folder
|
||||
|
||||
@@ -921,12 +921,13 @@ export const deleteItem = (itemUid, collectionUid) => (dispatch, getState) => {
|
||||
|
||||
const item = findItemInCollection(collection, itemUid);
|
||||
if (item) {
|
||||
const parentDirectoryItem = findParentItemInCollection(collection, itemUid) || collection;
|
||||
const { ipcRenderer } = window;
|
||||
|
||||
ipcRenderer
|
||||
.invoke('renderer:delete-item', item.pathname, item.type)
|
||||
.then(() => {
|
||||
resolve();
|
||||
resolve({ parentDirectory: parentDirectoryItem });
|
||||
})
|
||||
.catch((error) => reject(error));
|
||||
}
|
||||
@@ -934,6 +935,23 @@ export const deleteItem = (itemUid, collectionUid) => (dispatch, getState) => {
|
||||
});
|
||||
};
|
||||
|
||||
export const reorderDirectoryItems = (directory, itemUid) => (dispatch, getState) => {
|
||||
if (!directory.items) return;
|
||||
|
||||
const directoryItemsWithoutDeletedItem = directory.items.filter(
|
||||
(i) => i.uid !== itemUid
|
||||
);
|
||||
|
||||
const reorderedSourceItems = getReorderedItemsInSourceDirectory({
|
||||
items: directoryItemsWithoutDeletedItem
|
||||
});
|
||||
if (reorderedSourceItems?.length) {
|
||||
dispatch(updateItemsSequences({ itemsToResequence: reorderedSourceItems }));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
export const sortCollections = (payload) => (dispatch) => {
|
||||
dispatch(_sortCollections(payload));
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user