diff --git a/components/app.riot b/components/app.riot
index dc7e512..e342516 100644
--- a/components/app.riot
+++ b/components/app.riot
@@ -39,7 +39,7 @@
Résultats ({searchs.pagination.items.total} résultats trouvés)
-
addFavoris(item.id)}>
+
item.isFavorite ? this.removeFavoris(item.id) : this.addFavoris(item.id)}>
{item.title}
@@ -105,6 +105,7 @@
changePage(page) {
this.search(null, page);
+ this.update();
},
async onMounted() {
@@ -116,10 +117,26 @@
addFavoris(id) {
window.favorite(id)
+ this.searchs.items = this.searchs.items.map(item =>
+ item.id === id ? { ...item, isFavorite: true } : item
+ );
+
+ this.update();
+ },
+
+ async removeFavoris(id) {
+ await window.removeFavorite(id);
+
+ this.searchs.items = this.searchs.items.map(item =>
+ item.id === id ? { ...item, isFavorite: false } : item
+ );
+
+ this.update();
},
Logout(){
window.logout()
+ this.update();
}
}
diff --git a/services/firebaseService.js b/services/firebaseService.js
index af8ffa8..8fecc40 100644
--- a/services/firebaseService.js
+++ b/services/firebaseService.js
@@ -45,7 +45,7 @@ export async function login(email, password) {
export async function sign(email, password) {
const userCred = await createUserWithEmailAndPassword(auth, email, password);
await adduserdata(userCred.user.email, userCred.user.uid);
- localStorage.setItem("uid", userC.user.uid);
+ localStorage.setItem("uid", userCred.user.uid);
return userCred;
}
@@ -68,9 +68,6 @@ window.observeAuthState = function(callback) {
export async function favorite(releaseId) {
const storedUid = localStorage.getItem("uid");
-
-
-
const usersRef = collection(db, "users");
const q = query(usersRef, where("uid", "==", storedUid));
const querySnapshot = await getDocs(q);
@@ -78,7 +75,6 @@ export async function favorite(releaseId) {
const userDoc = querySnapshot.docs[0];
const userDocId = userDoc.id;
- console.log(userDoc);
const favoritesRef = collection(db, "users", userDocId, "favorites");
@@ -118,7 +114,6 @@ export async function isFavorite(releaseId) {
const storedUid = localStorage.getItem("uid");
if (!storedUid) return false;
- // Recherche l'utilisateur avec le bon uid
const usersRef = collection(db, "users");
const userQuery = query(usersRef, where("uid", "==", storedUid));
const userSnapshot = await getDocs(userQuery);
@@ -128,12 +123,31 @@ export async function isFavorite(releaseId) {
const userDoc = userSnapshot.docs[0];
const userDocId = userDoc.id;
- // Recherche si le releaseId existe déjà dans les favoris
const favoritesRef = collection(db, "users", userDocId, "favorites");
const favQuery = query(favoritesRef, where("releaseId", "==", releaseId));
const favSnapshot = await getDocs(favQuery);
- return !favSnapshot.empty; // true = en favori, false = pas en favori
+ return !favSnapshot.empty;
+}
+
+export async function removeFavorite(releaseId) {
+ const storedUid = localStorage.getItem("uid");
+
+ const usersRef = collection(db, "users");
+ const userQuery = query(usersRef, where("uid", "==", storedUid));
+ const userSnapshot = await getDocs(userQuery);
+
+ const userDoc = userSnapshot.docs[0];
+ const userDocId = userDoc.id;
+
+ const favoritesRef = collection(db, "users", userDocId, "favorites");
+ const favQuery = query(favoritesRef, where("releaseId", "==", releaseId));
+ const favSnapshot = await getDocs(favQuery);
+
+ const favDoc = favSnapshot.docs[0];
+ await setDoc(doc(favoritesRef, favDoc.id), {}, { merge: false });
+
+ console.log(`Le favori avec releaseId ${releaseId} a été supprimé.`);
}
window.login = login;
@@ -141,4 +155,5 @@ window.sign = sign;
window.logout = logout;
window.favorite = favorite;
window.getFavorites = getFavorites;
-window.isFavorite = isFavorite;
\ No newline at end of file
+window.isFavorite = isFavorite;
+window.removeFavorite = removeFavorite;
\ No newline at end of file