"use client";
import { formatDateMonthYear, t } from "@/utils";
import {
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/table";
import { useSelector } from "react-redux";
import { useEffect, useState } from "react";
import { CurrentLanguageData } from "@/redux/reducer/languageSlice";
import NoData from "@/components/EmptyStates/NoData";
import { Badge } from "@/components/ui/badge";
import JobApplicationSkeleton from "@/components/Skeletons/JobApplicationSkeleton";
import { toast } from "sonner";
import Pagination from "@/components/Common/Pagination";
import { getMyJobApplicationsList } from "@/utils/api";
import CustomLink from "@/components/Common/CustomLink";
const JobApplications = () => {
const CurrentLanguage = useSelector(CurrentLanguageData);
const [jobApplication, setJobApplication] = useState({
data: [],
currentPage: 1,
totalItems: 0,
perPage: 15,
totalPages: 0,
isLoading: false,
});
useEffect(() => {
fetchJobApplicationsData(1);
}, [jobApplication?.currentPage, CurrentLanguage.code]);
const fetchJobApplicationsData = async (page) => {
try {
setJobApplication((prev) => ({ ...prev, isLoading: true }));
const response = await getMyJobApplicationsList.getMyJobApplications({
page,
});
if (response.data.error === false) {
setJobApplication((prev) => ({
...prev,
data: response?.data?.data?.data,
totalItems: response?.data?.data?.total,
perPage: response?.data?.data?.per_page,
totalPages: response?.data?.data?.last_page,
currentPage: response?.data?.data?.current_page,
}));
} else {
toast.error(response.data.message);
}
} catch (error) {
console.error("Error:", error);
} finally {
setJobApplication((prev) => ({ ...prev, isLoading: false }));
}
};
const handlePageChange = (page) => {
setJobApplication((prev) => ({ ...prev, currentPage: page }));
};
const getStatusBadge = (status) => {
switch (status) {
case "pending":
return