import { Form, Head, Link } from '@inertiajs/react'; import { ArrowLeft } from 'lucide-react'; import { useMemo, useState } from 'react'; import { toast } from 'sonner'; import { DatePicker } from '@/components/inputs'; import { InputError } from '@/components/ui'; import { PhoneNumberInput } from '@/components/inputs'; import { RupiahInput } from '@/components/inputs'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, } from '@/components/ui/combobox'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@/components/ui/select'; import { Textarea } from '@/components/ui/textarea'; import { index as employeeIndex, update } from '@/routes/admin/hr/employees'; type Role = { id: number; name: string; }; type EmployeeData = { id: number; email: string; username: string; roles?: { name: string }[]; user_profile: { full_name: string; phone_number: string | null; gender: string | null; birth_date: string | null; address: string | null; } | null; employee: { join_date: string; resign_date: string | null; employment_status: string; base_salary: number; } | null; }; type Props = { employee: EmployeeData; roles: Role[]; canViewAll: boolean; }; export default function EmployeeEdit({ employee, roles, canViewAll }: Props) { const currentRole = useMemo( () => roles.find((r) => r.name === employee.roles?.[0]?.name) ?? null, [roles, employee.roles], ); const [joinDate, setJoinDate] = useState( employee.employee?.join_date ? new Date(employee.employee.join_date) : undefined, ); const [resignDate, setResignDate] = useState( employee.employee?.resign_date ? new Date(employee.employee.resign_date) : undefined, ); const [birthDate, setBirthDate] = useState( employee.user_profile?.birth_date ? new Date(employee.user_profile.birth_date) : undefined, ); const [selectedRole, setSelectedRole] = useState(currentRole); return ( <>

Edit Pegawai

{ toast.error('Ada data yang belum sesuai, silakan periksa kembali input Anda.'); }} > {({ errors, processing }) => ( <>
Akun
{canViewAll ? ( r.name} value={selectedRole} onValueChange={(value) => setSelectedRole(value) } > Tidak ada role ditemukan. {(role) => ( {role.name} )} ) : (
{selectedRole?.name ?? '-'}
)}
Profil