"use client"; import React, { useState } from "react"; import { motion, AnimatePresence } from "motion/react"; import { Upload, CheckCircle2, X, Send, Stethoscope } from "lucide-react"; import { toast } from "sonner"; interface PrescriptionUploadModalProps { isOpen: boolean; onClose: () => void; } export default function PrescriptionUploadModal({ isOpen, onClose }: PrescriptionUploadModalProps) { const [file, setFile] = useState(null); const [petName, setPetName] = useState(""); const [phone, setPhone] = useState(""); const [notes, setNotes] = useState(""); const [isSubmitting, setIsSubmitting] = useState(false); const [isSuccess, setIsSuccess] = useState(false); if (!isOpen) return null; const handleFileChange = (e: React.ChangeEvent) => { if (e.target.files && e.target.files[0]) { setFile(e.target.files[0]); } }; const resetForm = () => { setFile(null); setPetName(""); setPhone(""); setNotes(""); setIsSubmitting(false); setIsSuccess(false); }; const handleClose = () => { resetForm(); onClose(); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!file) { toast.error("لطفاً تصویر یا فایل نسخه پزشکی را انتخاب کنید."); return; } const cleanPhone = phone.trim(); if (!/^09\d{9}$/.test(cleanPhone)) { toast.error("شماره همراه وارد شده معتبر نیست. (مثال: ۰۹۱۲۳۴۵۶۷۸۹)"); return; } setIsSubmitting(true); try { const api = (await import("../lib/services/api")).default; const formData = new FormData(); formData.append("file", file); const uploadRes = await api.post("/admin/media/upload", formData, { headers: { "Content-Type": "multipart/form-data" } }); const fileUrl = uploadRes.data?.data?.url || uploadRes.data?.url || uploadRes.data?.filename || file.name; // Submit prescription to backend with petName and phone for automatic user & pet profile creation await api.post("/prescriptions", { fileUrl, phone: cleanPhone, petName: petName.trim() || undefined, notes: notes.trim() || undefined }); setIsSubmitting(false); setIsSuccess(true); toast.success("نسخه پزشکی شما با موفقیت ثبت و ارسال شد."); } catch (error) { console.error("[PrescriptionUpload] Submission error:", error); setIsSubmitting(false); toast.error("خطا در ارسال نسخه پزشکی. لطفاً مجدداً تلاش کنید."); } }; return (
{/* Header */}

خرید سریع با نسخه دامپزشک

آپلود نسخه برای تامین فوری و مشاوره تخصصی

{/* Body */}
{isSuccess ? (

نسخه با موفقیت ثبت شد

کارشناسان و دامپزشکان کنینا نسخه شما را بررسی کرده و ظرف حداکثر ۱۵ دقیقه جهت هماهنگی ارسال دارو با شما تماس خواهند گرفت.

) : (
{/* Upload Zone */}
{file ? ( {file.name} ) : ( <> کلیک کنید یا فایل نسخه را بکشید فرمت‌های JPG، PNG یا PDF (حداکثر ۵ مگابایت) )}
setPetName(e.target.value)} placeholder="مثال: لوسی" className="w-full bg-medical-gray-50 border border-medical-gray-200 rounded-xl px-3 py-2 text-xs font-bold focus:ring-2 focus:ring-canina-blue/20 outline-none" />
setPhone(e.target.value)} placeholder="۰۹۱۲..." className="w-full bg-medical-gray-50 border border-medical-gray-200 rounded-xl px-3 py-2 text-xs font-bold focus:ring-2 focus:ring-canina-blue/20 outline-none text-left" dir="ltr" />