import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; import SidebarAdmin from "../Layout/SidebarAdmin"; import NavbarAdmin from "../Layout/NavbarAdmin"; import "froala-editor/js/plugins.pkgd.min.js"; import "froala-editor/css/froala_editor.pkgd.min.css"; import "froala-editor/css/froala_style.min.css"; import FroalaEditor from "react-froala-wysiwyg"; import axios from "axios"; const AddProduct = () => { const [posisi, setPosisi] = useState(""); const [kelompok, setKelompok] = useState(""); const [kelompokOptions, setKelompokOptions] = useState([]); const [lokasi, setLokasi] = useState(""); const [paid, setPaid] = useState("paid"); const [durasiAwal, setDurasiAwal] = useState(""); const [durasiAkhir, setDurasiAkhir] = useState(""); const [jobdesk, setJobdesk] = useState(""); const [image, setImage] = useState(null); const [isCustomKelompok, setIsCustomKelompok] = useState(false); const [customKelompok, setCustomKelompok] = useState(""); const navigate = useNavigate(); useEffect(() => { axios .get( `${ import.meta.env.VITE_API_BASE_URL }/lowongan-magang-api/get/kelompok-all` ) .then((res) => { const data = res.data.data; setKelompokOptions(data); if (data.length > 0) { setKelompok(data[0]); setIsCustomKelompok(false); } else { setIsCustomKelompok(true); } }) .catch((err) => { console.error("Gagal memuat kelompok peminatan:", err); setIsCustomKelompok(true); }); }, []); const handleSubmit = async () => { const token = document.cookie .split("; ") .find((row) => row.startsWith("token=")) ?.split("=")[1]; if (!token) { alert("Token tidak ditemukan."); return; } const formData = new FormData(); formData.append("posisi", posisi); formData.append( "kelompok_peminatan", isCustomKelompok || kelompokOptions.length === 0 ? customKelompok : kelompok ); formData.append("lokasi", lokasi); formData.append("jobdesk", jobdesk); formData.append("kualifikasi", getRandomKualifikasi()); formData.append("benefit", getRandomBenefit()); formData.append("durasi_awal", durasiAwal); formData.append("durasi_akhir", durasiAkhir); formData.append("paid", paid); if (image) formData.append("image", image); try { await axios.post( `${import.meta.env.VITE_API_BASE_URL}/lowongan-magang-api/add`, formData, { headers: { Authorization: `Bearer ${token}`, "Content-Type": "multipart/form-data", }, } ); alert("Internship berhasil ditambahkan!"); navigate("/lowongan-list"); } catch (error) { console.error("Error adding internship:", error); alert("Gagal menambahkan internship."); } }; const getRandomKualifikasi = () => { const list = [ "Menguasai tools desain", "Bisa bekerja dalam tim", "Memiliki laptop pribadi", "Menguasai dasar HTML & CSS", ]; return list[Math.floor(Math.random() * list.length)]; }; const getRandomBenefit = () => { const list = [ "Sertifikat", "Uang transport", "Mentoring langsung", "Kesempatan kerja tetap", ]; return list[Math.floor(Math.random() * list.length)]; }; return (

Tambah Lowongan

{/* Internship Fields Only */}
{/* Jika ada data dari API */} {kelompokOptions.length > 0 && ( )} {(isCustomKelompok || kelompokOptions.length === 0) && ( setCustomKelompok(e.target.value)} /> )}
setLokasi(e.target.value)} placeholder="Onsite,Jakarta" />
setPosisi(e.target.value)} placeholder="UI/UX Designer" />
setDurasiAwal(e.target.value)} />
setDurasiAkhir(e.target.value)} />
setImage(e.target.files ? e.target.files[0] : null) } className="border border-gray-300 rounded-lg p-3" />
{/* Isi Konten */}
setJobdesk(model)} config={{ placeholderText: "Tulis deskripsi lowongan...", charCounterCount: true, toolbarSticky: true, heightMin: 200, }} />
); }; export default AddProduct;