summaryrefslogtreecommitdiff
path: root/src-migrate/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src-migrate/utils')
-rw-r--r--src-migrate/utils/cart.js68
1 files changed, 48 insertions, 20 deletions
diff --git a/src-migrate/utils/cart.js b/src-migrate/utils/cart.js
index f474cbde..1ddc5446 100644
--- a/src-migrate/utils/cart.js
+++ b/src-migrate/utils/cart.js
@@ -297,26 +297,10 @@ export const removeCartItemsFromCookie = (cartIds) => {
* Hapus item selected dari cookie berdasarkan product IDs
* @param {Array} productIds Array product IDs untuk dihapus
*/
-export const removeSelectedItemsFromCookie = (productIds) => {
- try {
- const selectedItems = getSelectedItemsFromCookie();
-
- // Hapus dari selectedItems
- productIds.forEach((productId) => {
- if (selectedItems[productId] !== undefined) {
- delete selectedItems[productId];
- }
- });
-
- // Simpan kembali ke cookie
- setSelectedItemsToCookie(selectedItems);
-
- return { selectedItems };
- } catch (error) {
- console.error('Error removing selected items from cookie:', error);
- return {};
- }
-};
+/**
+ * Hapus item selected dari cookie berdasarkan product IDs dan juga hapus dari cart data
+ * @param {Array} productIds Array product IDs untuk dihapus
+ */
/**
* Force reset semua selected items ke unselected state
@@ -386,3 +370,47 @@ export const syncSelectedItemsWithCookie = (cartProducts) => {
// Export the checkbox update state for use in components
export { checkboxUpdateState };
+
+/**
+ * Hapus item selected dari cookie berdasarkan product IDs dan juga hapus dari cart data
+ * @param {Array} productIds Array product IDs untuk dihapus
+ */
+/**
+ * Hapus item selected dari cookie berdasarkan product IDs dan juga hapus dari cart data
+ * @param {Array} productIds Array product IDs untuk dihapus
+ */
+export const removeSelectedItemsFromCookie = (productIds) => {
+ try {
+ const selectedItems = getSelectedItemsFromCookie();
+ const cartData = getCartDataFromCookie();
+ const cartIdsToRemove = [];
+
+ // Find cart IDs that match the product IDs
+ for (const cartId in cartData) {
+ if (productIds.includes(cartData[cartId].id)) {
+ cartIdsToRemove.push(cartId);
+ }
+ }
+
+ // Remove from selectedItems
+ productIds.forEach((productId) => {
+ if (selectedItems[productId] !== undefined) {
+ delete selectedItems[productId];
+ }
+ });
+
+ // Remove from cartData
+ cartIdsToRemove.forEach((cartId) => {
+ delete cartData[cartId];
+ });
+
+ // Save both cookies
+ setSelectedItemsToCookie(selectedItems);
+ setCartDataToCookie(cartData);
+
+ return { selectedItems, cartData };
+ } catch (error) {
+ console.error('Error removing selected items from cookie:', error);
+ return {};
+ }
+};