import NavbarAdmin from "../Layout/NavbarAdmin"; import SidebarAdmin from "../Layout/SidebarAdmin"; import { useNavigate } from "react-router-dom"; import { useState } from "react"; const AddPartnershipAdmin = () => { const navigate = useNavigate(); const [namaPartner, setNamaPartner] = useState(""); const [thumbnail, setThumbnail] = useState(null); const [previewUrl, setPreviewUrl] = useState(null); const [error, setError] = useState(""); const handleImageChange = (e: any) => { const file = e.target.files[0]; if (file) { const validTypes = ["image/jpeg", "image/png", "image/webp"]; if (!validTypes.includes(file.type)) { setError("Format file tidak didukung."); return; } setThumbnail(file); setPreviewUrl(URL.createObjectURL(file)); setError(""); } }; const handleSubmit = async (e?: React.FormEvent | React.MouseEvent) => { e?.preventDefault(); if (!namaPartner || !thumbnail) { setError("Nama dan thumbnail harus diisi."); return; } const formData = new FormData(); formData.append("nama_partner", namaPartner); formData.append("image", thumbnail); // Ambil token dari cookie seperti yang kamu minta const token = document.cookie .split("; ") .find((row) => row.startsWith("token=")) ?.split("=")[1]; if (!token) { setError("Token tidak ditemukan. Silakan login kembali."); return; } try { const response = await fetch( `${import.meta.env.VITE_API_BASE_URL}/partnership-api/add`, { method: "POST", headers: { Authorization: `Bearer ${token}`, }, body: formData, } ); const data = await response.json(); if (response.ok) { alert("Partnership berhasil ditambahkan!"); navigate("/partnership-admin"); } else { setError(data.message || "Gagal menambahkan partnership."); } } catch (err) { console.error(err); setError("Terjadi kesalahan saat mengirim data."); } }; return (

Tambah Partnership

Nama

setNamaPartner(e.target.value)} placeholder="Nama Partnership" className="border-2 px-[15px] py-[10px] border-[#A9B5C0] rounded-xl w-[600px]" />

Thumbnail

*file harus berformat .jpg .png .webp dengan resolusi maksimal 1024 x 500

Preview

{previewUrl && ( Preview )}
{error &&

{error}

}
); }; export default AddPartnershipAdmin;