document.addEventListener('DOMContentLoaded', function () {
function getLikedTiles() {
return JSON.parse(localStorage.getItem('likedTiles')) || [];
}
function saveLikedTiles(tiles) {
localStorage.setItem('likedTiles', JSON.stringify(tiles));
}
function updateButtonState(btn, liked) {
btn.classList.toggle('is-liked', liked);
btn.setAttribute('aria-pressed', liked ? 'true' : 'false');
}
// Initialise all heart buttons
document.querySelectorAll('.tile-like-btn').forEach(btn => {
const tileId = btn.dataset.id;
const likedTiles = getLikedTiles();
updateButtonState(btn, likedTiles.includes(tileId));
btn.addEventListener('click', function (e) {
e.preventDefault();
e.stopPropagation();
let likedTiles = getLikedTiles();
if (likedTiles.includes(tileId)) {
// UNLIKE
likedTiles = likedTiles.filter(id => id !== tileId);
updateButtonState(btn, false);
} else {
// LIKE
likedTiles.push(tileId);
updateButtonState(btn, true);
}
saveLikedTiles(likedTiles);
});
});
});