summaryrefslogtreecommitdiff
path: root/src-migrate/utils
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-05-23 09:37:46 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-05-23 09:37:46 +0700
commit4904573845478e7e9648735d008153728870a123 (patch)
tree1e54ddf06dbcf1eb606f13d1df1725b48fd0bea6 /src-migrate/utils
parent09cebc9020c4f1995a73305187bc1576e339d183 (diff)
<miqdad> fix cookie not updating when delete an item
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 {};
+ }
+};