import NavbarAdmin from "../Layout/NavbarAdmin"; import SidebarAdmin from "../Layout/SidebarAdmin"; import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; type Project = { id: number; nama_project: string; created_at: string; }; const ListProduct = () => { const navigate = useNavigate(); const [projects, setProjects] = useState([]); useEffect(() => { const fetchProjects = async () => { try { const response = await fetch( `${import.meta.env.VITE_API_BASE_URL}/hasil-research-api/get` ); const result = await response.json(); if (response.ok) { setProjects(result.data); } else { console.error("Gagal mengambil data project:", result.message); } } catch (error) { console.error("Terjadi kesalahan:", error); } }; fetchProjects(); }, []); const handleDelete = async (id: number) => { const confirmDelete = confirm( "Apakah Anda yakin ingin menghapus project ini?" ); if (!confirmDelete) return; const token = document.cookie .split("; ") .find((row) => row.startsWith("token=")) ?.split("=")[1]; if (!token) { alert("Token tidak ditemukan. Silakan login ulang."); return; } try { const response = await fetch( `${import.meta.env.VITE_API_BASE_URL}/hasil-research-api/delete/${id}`, { method: "DELETE", headers: { Authorization: `Bearer ${token}`, }, } ); const result = await response.json(); if (response.ok) { alert("Project berhasil dihapus!"); setProjects((prev) => prev.filter((project) => project.id !== id)); } else { alert(result.message || "Gagal menghapus project."); } } catch (error) { console.error("Gagal menghapus:", error); alert("Terjadi kesalahan saat menghapus project."); } }; return (

Daftar Project

{projects.map((project) => ( ))}
Nama Project Tanggal Unggah Aksi
{project.nama_project} {new Date(project.created_at).toLocaleDateString()} {/* Tombol View */} {/* Tombol Edit */} {/* Tombol Hapus */}
{projects.length === 0 && (

Belum ada data project.

)}
); }; export default ListProduct;