import { Card, CardContent, CardHeader } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { Separator } from "@/components/ui/separator"; import { Check, X, Download } from "lucide-react"; import CustomLink from "@/components/Common/CustomLink"; import { formatDateMonthYear, t } from "@/utils"; import { toast } from "sonner"; import { useState } from "react"; import { updateJobStatusApi } from "@/utils/api"; const JobApplicationCard = ({ application, setReceivedApplications, isJobFilled, }) => { const [processing, setProcessing] = useState(false); const handleStatusChange = async (newStatus) => { try { setProcessing(true); const res = await updateJobStatusApi.updateJobStatus({ job_id: application.id, status: newStatus, }); if (res?.data?.error === false) { toast.success(res?.data?.message); setReceivedApplications((prev) => ({ ...prev, data: prev.data.map((app) => app.id === application.id ? { ...app, status: newStatus } : app ), })); } else { toast.error(res?.data?.message); } } catch (error) { console.log(error); } finally { setProcessing(false); } }; const getStatusBadge = (status) => { switch (status) { case "accepted": return {t("accepted")}; case "rejected": return {t("rejected")}; case "pending": return {t("pending")}; default: return {t("pending")}; } }; return (

{application.full_name}

{getStatusBadge(application.status)}
{t("email")} {application.email}
{t("phone")} {application.mobile}
{t("appliedDate")} {formatDateMonthYear(application.created_at)}
{(application.status === "pending" || application.resume) && ( <>
{application.status === "pending" && !isJobFilled && ( <> )} {application.resume && ( )}
)}
); }; export default JobApplicationCard;