// Anna Faber Wishlist > Add to Cart Fix Script for Tilda
(function () {
function updateWishlistView() {
const wishlistWindow = document.querySelector('.t1002__wishlistwin');
if (wishlistWindow) {
wishlistWindow.style.position = 'fixed';
wishlistWindow.style.top = '0';
wishlistWindow.style.left = '0';
wishlistWindow.style.width = '100vw';
wishlistWindow.style.height = '100vh';
wishlistWindow.style.maxWidth = '100%';
wishlistWindow.style.maxHeight = '100%';
wishlistWindow.style.zIndex = '999999';
wishlistWindow.style.overflowY = 'auto';
wishlistWindow.style.backgroundColor = '#fff';
}
}
function removeFromWishlistByUID(uid) {
if (!uid || !window.twishlist || !twishlist.products) return;
const updated = twishlist.products.filter(p => (p.uid || p.lid) !== uid);
twishlist.products = updated;
twishlist.total = updated.length;
localStorage.setItem('tilda_wishlist', JSON.stringify(twishlist.products));
if (typeof twishlist__reDrawWishlist === 'function') twishlist__reDrawWishlist();
}
function addToCartFromWishlist(product) {
if (!product) return;
tcart__addProduct(product);
tcart__reDrawProducts();
tcart__reDrawTotal();
}
function attachButtons() {
const wishlistItems = document.querySelectorAll('[data-wishlist-product-i]');
wishlistItems.forEach(item => {
const index = item.getAttribute('data-wishlist-product-i');
const btn = item.querySelector('.t1002__product-amount');
if (btn && !btn.classList.contains('custom-wishlist-processed')) {
btn.innerHTML = 'Add to Cart';
btn.classList.add('custom-wishlist-btn', 'custom-wishlist-processed');
btn.addEventListener('click', () => {
const product = window.twishlist.products[index];
if (!product) return;
const uid = product.uid || product.lid;
addToCartFromWishlist(product);
removeFromWishlistByUID(uid);
});
}
});
}
function createCheckoutBtn() {
if (document.querySelector('.nolim-checkout-btn')) return;
const container = document.querySelector('.t1002__wishlistwin-products');
if (!container) return;
const btnWrap = document.createElement('div');
btnWrap.innerHTML = `
`;
btnWrap.querySelector('a').addEventListener('click', function (e) {
e.preventDefault();
const cartBlock = document.getElementById('rec937927786');
if (cartBlock) cartBlock.scrollIntoView({ behavior: 'smooth' });
});
container.parentNode.appendChild(btnWrap);
}
function observeWishlist() {
const target = document.querySelector('.t1002__wishlistwin-products');
if (!target) return;
const observer = new MutationObserver(() => {
setTimeout(() => {
attachButtons();
createCheckoutBtn();
updateWishlistView();
}, 100);
});
observer.observe(target, { childList: true, subtree: true });
}
document.addEventListener('DOMContentLoaded', () => {
setTimeout(() => {
attachButtons();
createCheckoutBtn();
updateWishlistView();
observeWishlist();
}, 500);
});
document.addEventListener('click', e => {
if (e.target.closest('.t-store__wishlist-icon')) {
setTimeout(() => {
attachButtons();
createCheckoutBtn();
updateWishlistView();
}, 700);
}
});
})();