ResetConfirmationModal.tsx 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { Button } from "@/components/ui/button";
  2. import {
  3. Dialog,
  4. DialogContent,
  5. DialogHeader,
  6. DialogTitle,
  7. } from "@/components/ui/dialog";
  8. import { RotateCcw, AlertCircle, Loader2 } from "lucide-react";
  9. interface ResetConfirmationModalProps {
  10. isOpen: boolean;
  11. onClose: () => void;
  12. onConfirm: () => void;
  13. isResetting: boolean;
  14. }
  15. export const ResetConfirmationModal = ({
  16. isOpen,
  17. onClose,
  18. onConfirm,
  19. isResetting,
  20. }: ResetConfirmationModalProps) => {
  21. return (
  22. <Dialog open={isOpen} onOpenChange={onClose}>
  23. <DialogContent className="max-w-md">
  24. <DialogHeader>
  25. <DialogTitle className="flex items-center">
  26. <RotateCcw className="w-5 h-5 mr-2 text-warning" />
  27. Nueva Consulta
  28. </DialogTitle>
  29. </DialogHeader>
  30. <div className="mt-4">
  31. <div className="bg-warning/10 border border-warning/20 rounded-lg p-4 mb-4">
  32. <div className="flex items-center">
  33. <AlertCircle className="w-5 h-5 text-warning mr-2" />
  34. <span className="text-sm font-medium text-warning">
  35. Confirmación Requerida
  36. </span>
  37. </div>
  38. </div>
  39. <p className="text-foreground mb-4">
  40. ¿Estás seguro de que quieres iniciar una nueva consulta?
  41. </p>
  42. <div className="space-y-2 text-sm text-muted-foreground">
  43. <p>Se guardará un reporte con la conversación actual</p>
  44. <p>Se perderán las recomendaciones pendientes</p>
  45. <p>Se iniciará una consulta completamente nueva</p>
  46. </div>
  47. </div>
  48. <div className="mt-6 flex space-x-2">
  49. <Button
  50. onClick={onClose}
  51. variant="outline"
  52. className="flex-1"
  53. >
  54. Cancelar
  55. </Button>
  56. <Button
  57. onClick={onConfirm}
  58. disabled={isResetting}
  59. className="flex-1 bg-warning hover:bg-warning/90"
  60. >
  61. {isResetting ? (
  62. <>
  63. <Loader2 className="w-4 h-4 mr-2 animate-spin" />
  64. Procesando...
  65. </>
  66. ) : (
  67. <>
  68. <RotateCcw className="w-4 h-4 mr-2" />
  69. Confirmar
  70. </>
  71. )}
  72. </Button>
  73. </div>
  74. </DialogContent>
  75. </Dialog>
  76. );
  77. };