import { ConfirmDialog } from '@/components/confirm-dialog'; import { DataTable } from '@/components/data-table'; import { Button } from '@/components/ui/button'; import { destroy, create as employeeCreate, edit as employeeEdit, index as employeeIndex, toggleActive, resetPassword as resetPasswordRoute } from '@/routes/admin/hr/employees'; import { Head, router } from '@inertiajs/react'; import { Plus } from 'lucide-react'; import { useState } from 'react'; import type { Employee } from './columns'; import { createEmployeeColumns } from './columns'; type Props = { employees: Employee[]; }; export default function EmployeeIndex({ employees }: Props) { const [deleting, setDeleting] = useState(null); const [resetPasswordTarget, setResetPasswordTarget] = useState(null); function handleDelete() { if (!deleting) { return; } router.delete(destroy.url(deleting.id), { onSuccess: () => setDeleting(null), }); } function handleResetPassword() { if (!resetPasswordTarget) { return; } router.post(resetPasswordRoute.url(resetPasswordTarget.id), {}, { onSuccess: () => setResetPasswordTarget(null), }); } const columns = createEmployeeColumns({ handleEdit: (employee) => { window.location.href = employeeEdit.url(employee.id); }, handleDeleteClick: (employee) => setDeleting(employee), handleResetPassword: (employee) => setResetPasswordTarget(employee), toggleActiveUrl: (id) => toggleActive.url(id), }); return ( <>

Pegawai

{ if (!open) { setDeleting(null); } }} title="Hapus Pegawai" description={`Apakah Anda yakin ingin menghapus pegawai "${deleting?.user_profile?.full_name}"? Tindakan ini tidak dapat dibatalkan.`} confirmLabel="Hapus" onConfirm={handleDelete} /> { if (!open) { setResetPasswordTarget(null); } }} title="Reset Kata Sandi" description={`Apakah Anda yakin ingin mereset kata sandi pegawai "${resetPasswordTarget?.user_profile?.full_name}" ke kata sandi default?`} confirmLabel="Reset" variant="default" onConfirm={handleResetPassword} />
); } EmployeeIndex.layout = { breadcrumbs: [ { title: 'HR', href: employeeIndex.url(), }, { title: 'Pegawai', href: employeeIndex.url(), }, ], };