import { useState, useEffect } from 'react'; import { adminApi } from '../../services/api'; import { Giro } from '../../types'; import toast from 'react-hot-toast'; export default function AdminGiros() { const [giros, setGiros] = useState([]); const [loading, setLoading] = useState(true); const [showForm, setShowForm] = useState(false); const [formData, setFormData] = useState({ nombre: '', activo: true }); const [editingId, setEditingId] = useState(null); useEffect(() => { loadGiros(); }, []); const loadGiros = async () => { try { const data = await adminApi.giros.list(); setGiros(data); } catch { toast.error('Error al cargar giros'); } finally { setLoading(false); } }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); try { if (editingId) { await adminApi.giros.update(editingId, formData); toast.success('Giro actualizado'); } else { await adminApi.giros.create(formData); toast.success('Giro creado'); } setShowForm(false); setEditingId(null); setFormData({ nombre: '', activo: true }); loadGiros(); } catch { toast.error('Error al guardar giro'); } }; const handleEdit = (giro: Giro) => { setFormData({ nombre: giro.nombre, activo: giro.activo }); setEditingId(giro.id); setShowForm(true); }; const handleDelete = async (id: number) => { if (!confirm('¿Estás seguro de eliminar este giro?')) return; try { await adminApi.giros.delete(id); toast.success('Giro eliminado'); loadGiros(); } catch { toast.error('No se puede eliminar (tiene clientes asociados)'); } }; if (loading) { return (
); } return (

Giros de Negocio

{giros.map((giro) => ( ))}
Nombre Estado Acciones
{giro.nombre} {giro.activo ? 'Activo' : 'Inactivo'}
{showForm && (

{editingId ? 'Editar Giro' : 'Nuevo Giro'}

setFormData({ ...formData, nombre: e.target.value })} className="input" required />
)}
); }