import { useEffect, useState } from 'react'; import api from '../../services/api'; interface Favorito { id: string; user_id: string; property_id?: string; created_at: string; user_name?: string; property_title?: string; } export default function AdminFavoritosPage() { const [favoritos, setFavoritos] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [removing, setRemoving] = useState(null); const [actionLoading, setActionLoading] = useState(false); function fetchFavoritos() { setLoading(true); api.get('/admin/favoritos') .then(res => setFavoritos(res.data)) .catch(() => setError('Erro ao carregar favoritos')) .finally(() => setLoading(false)); } useEffect(() => { fetchFavoritos(); }, []); function handleRemove() { if (!removing) return; setActionLoading(true); api.delete(`/admin/favoritos/${removing.id}`) .then(() => { setRemoving(null); fetchFavoritos(); }) .catch(() => setError('Erro ao remover favorito')) .finally(() => setActionLoading(false)); } return (

Favoritos

{loading &&
Carregando...
} {error &&
{error}
}
{favoritos.length === 0 && !loading && ( )} {favoritos.map(f => ( ))}
Cliente Imóvel Adicionado em Ações
Nenhum favorito encontrado.
{f.user_name || f.user_id || '—'} {f.property_title || '—'} {f.created_at.slice(0, 10)}
{/* Modal remoção */} {removing && (

Remover favorito

Tem certeza que deseja remover o favorito de{' '} {removing.user_name || removing.user_id} {' '}para o imóvel{' '} {removing.property_title || '—'}?

)}
); }