change delete recently viewed item's logic (jira num: 3072)
This commit is contained in:
@@ -120,55 +120,53 @@ export default function RecentlyViewed({ title, panelInfo, isOnTop }) {
|
||||
setActiveDelete(false);
|
||||
return;
|
||||
}
|
||||
Object.entries(selectedItems).forEach(([id, selected]) => {
|
||||
if (selected) {
|
||||
recentlyDatas.forEach((data, index) => {
|
||||
let productIndex = data.productInfos.findIndex((item) => {
|
||||
if (item.prdtId) {
|
||||
return item.prdtId === id;
|
||||
} else if (item.showId) {
|
||||
return item.showId === id;
|
||||
}
|
||||
});
|
||||
|
||||
if (productIndex !== -1) {
|
||||
data.productInfos.splice(productIndex, 1);
|
||||
data.productInfos.length == 0
|
||||
? setRecentlyDatas((prevState) => {
|
||||
const newState = prevState.filter((_, i) => i !== index);
|
||||
return newState;
|
||||
})
|
||||
: setRecentlyDatas((prevState) => {
|
||||
const newState = [...prevState];
|
||||
newState[index].productInfos = data.productInfos;
|
||||
return newState;
|
||||
});
|
||||
}
|
||||
});
|
||||
recentItems = recentItems.filter((item) => {
|
||||
if (item.prdtId) {
|
||||
return item.prdtId !== id;
|
||||
} else if (item.showId) {
|
||||
return item.showId !== id;
|
||||
}
|
||||
});
|
||||
const updatedRecentlyDatas = recentlyDatas.reduce((acc, data) => {
|
||||
const updatedProductInfos = data.productInfos.filter((item) => {
|
||||
const id = item.prdtId || item.showId;
|
||||
|
||||
return !selectedItems[id];
|
||||
});
|
||||
|
||||
if (updatedProductInfos.length > 0) {
|
||||
acc.push({ ...data, productInfos: updatedProductInfos });
|
||||
}
|
||||
|
||||
return acc;
|
||||
}, []);
|
||||
|
||||
setRecentlyDatas(updatedRecentlyDatas);
|
||||
|
||||
recentItems = recentItems.filter((item) => {
|
||||
const id = item.prdtId || item.showId;
|
||||
|
||||
return !selectedItems[id];
|
||||
});
|
||||
|
||||
dispatch(changeLocalSettings({ recentItems }));
|
||||
|
||||
if (Object.keys(selectedItems).length - recentItems.length > 0) {
|
||||
const deletedCount = Object.values(selectedItems).filter(Boolean).length;
|
||||
|
||||
if (deletedCount > 0) {
|
||||
dispatch(
|
||||
sendLogMyPageMyDelete({
|
||||
cnt: `${Object.keys(selectedItems).length - recentItems.length}`,
|
||||
cnt: `${deletedCount}`,
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
groupByDate();
|
||||
}
|
||||
|
||||
setActiveDelete((prev) => !prev);
|
||||
}, [recentlyDatas, selectedItems, activeDelete, localRecentItems]);
|
||||
}, [
|
||||
recentlyDatas,
|
||||
selectedItems,
|
||||
activeDelete,
|
||||
localRecentItems,
|
||||
dispatch,
|
||||
groupByDate,
|
||||
]);
|
||||
|
||||
const handleSelectAllToggle = useCallback(() => {
|
||||
const newState = !selectAll;
|
||||
|
||||
Reference in New Issue
Block a user