import React, { useState } from 'react'; import { FileText, Search, Filter, Download, Eye } from 'lucide-react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Badge } from '@/components/ui/badge'; interface Report { id: string; reportNumber: string; touristName: string; type: string; category: string; date: string; status: 'open' | 'under_review' | 'closed'; officer: string; description: string; } const Reports = () => { const [searchTerm, setSearchTerm] = useState(''); const [reports] = useState([ { id: '1', reportNumber: 'POL-2024-001', touristName: 'John Smith', type: 'Robo', category: 'Seguridad', date: '2024-01-15', status: 'closed', officer: 'Oficial Rodriguez', description: 'Robo de cartera en Zona Colonial' }, { id: '2', reportNumber: 'POL-2024-002', touristName: 'Maria Garcia', type: 'Accidente', category: 'Tránsito', date: '2024-01-16', status: 'under_review', officer: 'Oficial Martinez', description: 'Accidente de tránsito menor en el Malecón' }, { id: '3', reportNumber: 'POL-2024-003', touristName: 'Robert Johnson', type: 'Pérdida', category: 'Documentos', date: '2024-01-17', status: 'open', officer: 'Oficial Fernandez', description: 'Pérdida de pasaporte en área hotelera' } ]); const getStatusBadge = (status: string) => { switch (status) { case 'open': return Abierto; case 'under_review': return En Revisión; case 'closed': return Cerrado; default: return null; } }; const filteredReports = reports.filter(report => report.touristName.toLowerCase().includes(searchTerm.toLowerCase()) || report.reportNumber.toLowerCase().includes(searchTerm.toLowerCase()) || report.type.toLowerCase().includes(searchTerm.toLowerCase()) ); return (

Reportes y Denuncias

{/* Stats */}
Reportes Abiertos
{reports.filter(r => r.status === 'open').length}
En Revisión
{reports.filter(r => r.status === 'under_review').length}
Cerrados
{reports.filter(r => r.status === 'closed').length}
{/* Search and Filters */}
setSearchTerm(e.target.value)} />
{filteredReports.map((report) => (

{report.reportNumber}

{getStatusBadge(report.status)}

{report.touristName}

Tipo:

{report.type}

Categoría:

{report.category}

Fecha:

{new Date(report.date).toLocaleDateString('es-ES')}

Oficial:

{report.officer}

{report.description}

))}
); }; export default Reports;