CompletedBanner.tsx 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { X, FileText } from "lucide-react";
  2. import { Button } from "@/components/ui/button";
  3. interface CompletedBannerProps {
  4. isGeneratingReport: boolean;
  5. chatType?: "medical" | "psychological";
  6. onDismiss: () => void;
  7. }
  8. export const CompletedBanner = ({ isGeneratingReport, chatType = "medical", onDismiss }: CompletedBannerProps) => {
  9. const reportType = chatType === "psychological" ? "Reporte Psicológico" : "Reporte Médico";
  10. return (
  11. <div className="bg-success/10 border border-success/20 rounded-lg p-4 mb-4 relative">
  12. <Button
  13. variant="ghost"
  14. size="sm"
  15. className="absolute top-2 right-2 h-6 w-6 p-0 hover:bg-background/50"
  16. onClick={onDismiss}
  17. >
  18. <X className="w-4 h-4" />
  19. </Button>
  20. <div className="flex items-center space-x-3 pr-8">
  21. <div className="w-10 h-10 bg-primary/10 rounded-full flex items-center justify-center flex-shrink-0">
  22. {isGeneratingReport ? (
  23. <div className="w-5 h-5 border-2 border-primary border-t-transparent rounded-full animate-spin"></div>
  24. ) : (
  25. <FileText className="w-5 h-5 text-primary" />
  26. )}
  27. </div>
  28. <div className="flex-1">
  29. <h3 className="font-semibold text-foreground text-sm">
  30. {isGeneratingReport
  31. ? `Generando ${reportType}`
  32. : "Consulta Completada"}
  33. </h3>
  34. <p className="text-muted-foreground text-xs mt-1">
  35. {isGeneratingReport
  36. ? `Estamos procesando tu consulta y generando un ${reportType.toLowerCase()} personalizado.`
  37. : `Tu consulta ha sido completada. El ${reportType.toLowerCase()} ha sido generado y guardado. Puedes revisar la conversación abajo.`}
  38. </p>
  39. </div>
  40. </div>
  41. </div>
  42. );
  43. };