import React, { useState } from "react"; import "../scss/components/_assignment.scss"; const AssignmentPage = () => { const [studentName, setStudentName] = useState(""); const [campID, setCampID] = useState(""); const [programID, setProgramID] = useState(""); const [password, setPassword] = useState(""); const [title, setTitle] = useState(""); const [description, setDescription] = useState(""); const [file, setFile] = useState(null); const [projects, setProjects] = useState([]); const [showModal, setShowModal] = useState(false); const [editingIndex, setEditingIndex] = useState(null); const resetForm = () => { setStudentName(""); setCampID(""); setProgramID(""); setPassword(""); setTitle(""); setDescription(""); setFile(null); setEditingIndex(null); }; const handleSubmit = (e) => { e.preventDefault(); const newProject = { studentName, campID, programID, title, description, fileName: file ? file.name : null, }; if (editingIndex !== null) { // Edit mode: update the project at the index const updatedProjects = [...projects]; updatedProjects[editingIndex] = newProject; setProjects(updatedProjects); } else { // New submission setProjects([...projects, newProject]); } alert(editingIndex !== null ? "Assignment updated!" : "Assignment submitted!"); resetForm(); setShowModal(false); }; const handleEdit = (index) => { const project = projects[index]; setStudentName(project.studentName); setCampID(project.campID); setProgramID(project.programID); setTitle(project.title); setDescription(project.description); setFile(null); // File can't be set again for editing, usually. You could add note about this. setEditingIndex(index); setShowModal(true); }; const handleDelete = (index) => { const updated = projects.filter((_, i) => i !== index); setProjects(updated); }; return (
{project.description}
{project.fileName && (Uploaded File: {project.fileName}
)}