Fix favorites: optimistic remove + no loading flash
All checks were successful
Build frontend / build (push) Successful in 54s

This commit is contained in:
Claw AI
2026-03-30 18:18:09 +00:00
parent db184bbace
commit 2c04cd751f
2 changed files with 8 additions and 4 deletions

View File

@ -84,7 +84,8 @@ export const FavoritesProvider = ({ children }) => {
if (!AuthService.isAuthenticated()) return false;
try {
await addFavoriteProperty(propId);
await fetchFavorites(); // refresh list
// Refresh to get the full object with faveId
await fetchFavorites();
return true;
} catch (err) {
console.error('[Favorites] Add failed:', err);
@ -94,15 +95,18 @@ export const FavoritesProvider = ({ children }) => {
const removeFavorite = async (propId) => {
if (!AuthService.isAuthenticated()) return false;
// Find the faveId for this property
const fav = favorites.find(f => f.id === propId);
if (!fav) return false;
// Optimistic update — remove immediately from UI
const previous = [...favorites];
setFavorites(prev => prev.filter(f => f.id !== propId));
try {
await removeFavoriteProperty(fav.faveId);
setFavorites(prev => prev.filter(f => f.id !== propId));
return true;
} catch (err) {
console.error('[Favorites] Remove failed:', err);
// Rollback on failure
setFavorites(previous);
return false;
}
};

View File

@ -26,7 +26,7 @@ export default function FavoritesPage() {
return amount?.toLocaleString() + ' ل.س';
};
if (favoritesLoading) {
if (favoritesLoading && favorites.length === 0) {
return (
<div className="min-h-screen flex items-center justify-center">
<div className="text-center">