function swymCallbackFn() { var wishlistButton = document.querySelector(".wishlist-btn"); var wishlistHeart = document.querySelector("#wishlist-heart"); // fetch all wishlist events if(wishlistButton) { _swat.fetchWrtEventTypeET(fetchCallbackFn, 4); } function updateButtonState({ makeDisabled = false } = {}) { wishlistHeart.firstElementChild.style.fill = "red"; wishlistHeart.firstElementChild.style.stroke = "none"; wishlistButton.lastElementChild.innerHTML = "Saved"; if (makeDisabled) wishlistButton.setAttribute("disabled", true); } function fetchCallbackFn(products) { var activeProductId = SwymPageData.empi, activeVariantId = SwymPageData.epi; var isInWishlist = products.find(function(p){ return p.empi == activeProductId && p.epi == activeVariantId; }); if(isInWishlist) { // update button status; item is in users wishlist updateButtonState({makeDisabled: true}); } else { // register a click listener to update btn and add item to wishlist wishlistButton.addEventListener("click", function(e){ if (SwymPageData) { SwymPageData.et = 4; // et 4 stands for wishlist event type _swat.addToWishList(SwymPageData, function(e){ updateButtonState(); }); } }); } } } if (!window.SwymCallbacks) { window.SwymCallbacks = []; } window.SwymCallbacks.push(swymCallbackFn);