import React, { useState, useEffect } from 'react'; import { Plus, Loader2, X, Trash2 } from 'lucide-react'; import { motion, AnimatePresence } from 'framer-motion'; import { useNavigate } from 'react-router-dom'; export default function ChargersPage() { const [chargers, setChargers] = useState([]); const [selectedCharger, setSelectedCharger] = useState(null); const [deletingId, setDeletingId] = useState(null); const [showAdd, setShowAdd] = useState(false); const navigate = useNavigate(); // Carregar os carregadores ao montar o componente useEffect(() => { async function fetchChargers() { try { const res = await fetch('/api/chargers'); const json = await res.json(); if (res.ok) { setChargers(json.data || []); } else { throw new Error('Falha ao carregar carregadores'); } } catch (err) { console.error(err.message); } } fetchChargers(); }, []); const handleOpenAdd = () => setShowAdd(true); const handleCloseAdd = () => setShowAdd(false); const handleSelect = (id) => { setSelectedCharger(id); // Atualiza o carregador selecionado navigate(`/charger/${id}`); // Navega para a página do carregador }; const handleDelete = async (id) => { if (window.confirm('Excluir este carregador? Esta ação não pode ser desfeita.')) { setDeletingId(id); try { const res = await fetch(`/api/chargers/${id}`, { method: 'DELETE' }); if (res.ok) { setChargers((prevChargers) => prevChargers.filter(c => c.id !== id)); } else { throw new Error('Erro ao excluir carregador'); } } catch (err) { console.error('Erro ao deletar carregador', err); } finally { setDeletingId(null); } } }; return (
Nenhum carregador encontrado
)}