document.addEventListener("DOMContentLoaded", function () { const favoriteButton = document.getElementById("favorite-button"); if (favoriteButton) { favoriteButton.classList.add("text-light"); favoriteButton.addEventListener("click", function () { const pasteId = document.body.dataset.pasteId; if (!pasteId) { console.error("Error: pasteId no definido en el ."); return; } const isFavorited = favoriteButton.classList.contains("text-danger"); const action = isFavorited ? "unfavorite" : "favorite"; fetch(`/paste/${pasteId}/${action}`, { method: "POST", headers: { "Content-Type": "application/json" }, credentials: "include" }) .then(response => response.json()) .then(data => { if (data.message.includes("Added")) { favoriteButton.classList.add("text-danger"); favoriteButton.classList.remove("text-secondary"); favoriteButton.setAttribute("title", "Remove from Favorites"); } else { favoriteButton.classList.add("text-secondary"); favoriteButton.classList.remove("text-danger"); favoriteButton.setAttribute("title", "Add to Favorites"); } showToast(data.message, "bg-success"); }) .catch(error => { console.error("Error updating favorites:", error); showToast("Error updating favorites.", "bg-danger"); }); }); } document.querySelectorAll(".unfavorite-btn").forEach(button => { button.addEventListener("click", function () { const pasteId = this.dataset.id; fetch(`/paste/${pasteId}/unfavorite`, { method: "POST", headers: { "Content-Type": "application/json" }, credentials: "include" }) .then(response => response.json()) .then(data => { if (data.success) { const row = this.closest("tr"); if (row) row.remove(); // Si ya no hay filas, mostrar mensaje vacĂ­o const tableBody = document.querySelector("#favorites-body"); if (tableBody && tableBody.rows.length === 0) { tableBody.innerHTML = ` No favorites yet. `; } showToast(data.message, "bg-success"); } else { showToast(data.error || "No se pudo eliminar el favorito.", "bg-danger"); } }) .catch(error => { console.error("Error:", error); showToast("Error al eliminar favorito.", "bg-danger"); }); }); }); });