import { useState } from 'react' import { Card, CardContent, Typography, Box, Chip, IconButton, Menu, MenuItem, } from '@mui/material' import MoreVertIcon from '@mui/icons-material/MoreVert' import { useDeleteSession, useUnblockSession } from './api' function formatDate(d) { try { return new Date(d).toLocaleString() } catch { return d } } export default function SessionCard({ session, onBlock }) { const [anchor, setAnchor] = useState(null) const deleteMutation = useDeleteSession() const unblockMutation = useUnblockSession() const handleDelete = async () => { setAnchor(null) if (!window.confirm(`¿Eliminar la sesión de ${session.phone || 'desconocido'} y todo su historial de chat?`)) return deleteMutation.mutate({ id: session.id, phone: session.phone }) } const handleUnblock = async () => { setAnchor(null) if (!window.confirm(`Desbloquear sesión para ${session.phone}?`)) return unblockMutation.mutate({ phone: session.phone }) } const statusColor = session.finished ? 'success' : 'warning' const statusText = session.finished ? 'Finalizada' : 'Activa' return ( {session.name || `Teléfono: ${session.phone || 'desconocido'}`} {session.name && session.phone && ( ({session.phone}) )} {session.block && ( )} Resumen: {session.summary || 'Aún no hay resumen.'} Campaña: {session.campaign_id?.split('-')[0] || 'N/A'}... Iniciada: {formatDate(session.created_at)} Última interacción: {session.last_interaction ? formatDate(session.last_interaction) : 'Ninguna'} ID de sesión: {session.id} setAnchor(e.currentTarget)}> setAnchor(null)}> {session.block ? ( Desbloquear ) : ( { setAnchor(null) onBlock(session) }} sx={{ color: 'error.main' }} > Bloquear )} Eliminar ) }