change delete recently viewed item's logic (jira num: 3072)

This commit is contained in:
hyunwoo93.cha
2024-07-26 10:22:18 +09:00
parent a21999775a
commit 5eeb365ab9

View File

@@ -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;