import DeleteModal from '@/components/inertia/delete-modal'; import TableFilter from '@/components/table/table-filter'; import TableFooter from '@/components/table/table-footer'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import DashboardLayout from '@/layouts/dashboard/layout'; import { SharedData } from '@/types/global'; import { Head, Link, router, usePage } from '@inertiajs/react'; import { Briefcase, BriefcaseBusiness, Building2, Calendar, Clock, Edit, Eye, MapPin, PauseCircle, PlayCircle, Plus, Trash2, TrendingUp, } from 'lucide-react'; import { ReactNode } from 'react'; interface JobCircularsPageProps extends SharedData { jobCirculars: Pagination; jobTypes: Record; workTypes: Record; experienceLevels: Record; statuses: Record; statistics: { total: number; active: number; draft: number; closed: number; expired: number; }; } const JobCircularsIndex = () => { const { props } = usePage(); const { jobCirculars, statistics, jobTypes, workTypes, experienceLevels, statuses, translate } = props; const { dashboard, button, common } = translate; const getStatusBadge = (status: string) => { const variants: Record = { draft: 'outline', active: 'default', paused: 'secondary', closed: 'destructive', expired: 'destructive', }; return {statuses[status] || status}; }; const handleToggleStatus = (jobId: number) => { router.put( route('job-circulars.toggle-status', jobId), {}, { preserveState: true, preserveScroll: true, }, ); }; return ( <>
{/* Header */}

{dashboard.job_circulars}

{/* Statistics Cards */}
{dashboard.total_jobs}
{statistics.total}
{common.active}
{statistics.active}
{common.draft}
{statistics.draft}
{common.closed}
{statistics.closed}
{common.expired}
{statistics.expired}
{/* Job Circulars List */} } // exportPath={route('users.export')} /> {jobCirculars.data.length > 0 ? (
{jobCirculars.data.map((job) => (

{job.title}

{getStatusBadge(job.status)}
{job.location}
{jobTypes[job.job_type]}
{workTypes[job.work_type]}
{experienceLevels[job.experience_level]}
{job.positions_available} Position{job.positions_available !== 1 ? 's' : ''}
{new Date(job.application_deadline).toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric', })}
} />
))}
) : (

{dashboard.no_job_circulars_found}

Get started by creating your first job circular.

)}
); }; JobCircularsIndex.layout = (page: ReactNode) => ; export default JobCircularsIndex;