"use client"; import { useState } from "react"; import { FiPlus, FiEye, FiEyeOff } from "react-icons/fi"; import "./styles/AddSubjectForm.css"; export default function AddSubjectForm({ allUsers, isLoading, onAddSubject }) { const [newSubject, setNewSubject] = useState(""); const [selectedSubject, setSelectedSubject] = useState(""); const [isCustomSubject, setIsCustomSubject] = useState(true); const [isPublic, setIsPublic] = useState(true); const getAllSubjects = () => { const subjectSet = new Set(); allUsers.forEach(user => { if (user.subjects && Array.isArray(user.subjects)) { user.subjects.forEach(subjectObj => { if (subjectObj.subject && subjectObj.subject.trim()) { subjectSet.add(subjectObj.subject.trim()); } }); } }); return Array.from(subjectSet).sort(); }; const handleSubjectSelect = (e) => { const value = e.target.value; if (value === "custom") { setIsCustomSubject(true); setSelectedSubject(""); setNewSubject(""); } else { setIsCustomSubject(false); setSelectedSubject(value); setNewSubject(value); } }; const handleSubmit = async () => { const subjectToAdd = isCustomSubject ? newSubject : selectedSubject; if (!subjectToAdd.trim()) return; await onAddSubject(subjectToAdd, isPublic); setNewSubject(""); setSelectedSubject(""); setIsCustomSubject(true); setIsPublic(true); }; const uniqueSubjects = getAllSubjects(); return (
{/* System Dropdown */} {/* Toggle Button */} {/* Add Button */}
{/* Input Field */} {isCustomSubject && ( setNewSubject(e.target.value)} className="asf-input" disabled={isLoading} autoFocus /> )}
); }