/* eslint-disable react-hooks/exhaustive-deps */ 'use client' import EditEditor from '@/app/admin/(dashboard)/_com/editEditor'; import lowonganKerjaState from '@/app/admin/(dashboard)/_state/ekonomi/lowongan-kerja'; import colors from '@/con/colors'; import { Box, Button, Group, Paper, Stack, Text, TextInput, Title } from '@mantine/core'; import { IconArrowBack } from '@tabler/icons-react'; import { useParams, useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; import { toast } from 'react-toastify'; import { useProxy } from 'valtio/utils'; function EditLowonganKerja() { const lowonganState = useProxy(lowonganKerjaState) const router = useRouter(); const params = useParams(); const [formData, setFormData] = useState({ posisi: lowonganKerjaState.update.form.posisi, namaPerusahaan: lowonganKerjaState.update.form.namaPerusahaan, lokasi: lowonganKerjaState.update.form.lokasi, tipePekerjaan: lowonganKerjaState.update.form.tipePekerjaan, gaji: lowonganKerjaState.update.form.gaji, deskripsi: lowonganKerjaState.update.form.deskripsi, kualifikasi: lowonganKerjaState.update.form.kualifikasi, }) useEffect(() => { const loadLowongan = async () => { const id = params?.id as string; if (!id) return; try { const data = await lowonganState.update.load(id); // akses langsung, bukan dari proxy if (data) { setFormData({ posisi: data.posisi || '', namaPerusahaan: data.namaPerusahaan || '', lokasi: data.lokasi || '', tipePekerjaan: data.tipePekerjaan || '', gaji: data.gaji || '', deskripsi: data.deskripsi || '', kualifikasi: data.kualifikasi || '', }); } } catch (error) { console.error("Error loading lowongan kerja:", error); toast.error("Gagal memuat data lowongan kerja"); } }; loadLowongan(); }, [params?.id]) const handleSubmit = async () => { try { lowonganKerjaState.update.form = { ...lowonganKerjaState.update.form, posisi: formData.posisi, namaPerusahaan: formData.namaPerusahaan, lokasi: formData.lokasi, tipePekerjaan: formData.tipePekerjaan, gaji: formData.gaji, deskripsi: formData.deskripsi, kualifikasi: formData.kualifikasi, } await lowonganState.update.update() toast.success("Lowongan kerja berhasil diperbarui!"); router.push("/admin/ekonomi/lowongan-kerja-lokal"); } catch (error) { console.error("Error updating lowongan kerja:", error); toast.error("Terjadi kesalahan saat memperbarui lowongan kerja"); } } return ( Edit Lowongan Kerja Lokal { formData.posisi = val.target.value; }} label={Posisi} placeholder='Masukkan posisi' /> { formData.namaPerusahaan = val.target.value; }} label={Nama Perusahaan} placeholder='Masukkan nama perusahaan' /> { formData.lokasi = val.target.value; }} label={Lokasi} placeholder='Masukkan lokasi' /> { formData.tipePekerjaan = val.target.value; }} label={Tipe Pekerjaan} placeholder='Masukkan tipe pekerjaan' /> { formData.gaji = val.target.value; }} label={Gaji selama 1 bulan} placeholder='Masukkan gaji' /> Deskripsi Lowongan Kerja { formData.deskripsi = val; }} /> Kualifikasi Lowongan Kerja { formData.kualifikasi = val; }} /> ); } export default EditLowonganKerja;