"use client" import { Card, CardContent } from "@/components/ui/card" import { Input } from "@/components/ui/input" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { Search, X, Filter } from "lucide-react" import { useState } from "react" interface PatientsSearchProps { searchTerm: string onSearchChange: (value: string) => void totalPatients: number filteredCount: number showFilters?: boolean } export default function PatientsSearch({ searchTerm, onSearchChange, totalPatients, filteredCount, showFilters = false }: PatientsSearchProps) { const [activeFilter, setActiveFilter] = useState("all") const handleClearSearch = () => { onSearchChange("") } const isFiltering = searchTerm.length > 0 return ( {/* Barra de búsqueda principal */}
onSearchChange(e.target.value)} className="pl-10 pr-10 h-11" /> {searchTerm && ( )}
{/* Filtros rápidos y estadísticas */}
{showFilters && ( <> Filtros: setActiveFilter("all")} > Todos setActiveFilter("recent")} > Recientes setActiveFilter("active")} > Activos )}
{/* Contador de resultados */}
{isFiltering ? (
Mostrando {filteredCount} de{" "} {totalPatients} pacientes {filteredCount === 0 && ( Sin resultados )}
) : ( {totalPatients} pacientes en total )}
{/* Sugerencias de búsqueda */} {!isFiltering && totalPatients > 0 && (
Tip: Puedes buscar por nombre, apellido, email o información médica
)} {/* Mensaje cuando no hay resultados */} {isFiltering && filteredCount === 0 && (
No se encontraron pacientes con "{searchTerm}"
)}
) }