import { useRef, useEffect, useState } from "react"; import { X, FileText, Link } from "lucide-react"; import { useCreateTask } from '../../../../hooks/useTasks'; import type { SubmissionType } from '../../../../types/task.types'; interface CreateTaskModalProps { isOpen: boolean; onClose: () => void; projectId: string; onSuccess: () => void; } export default function CreateTaskModal({ isOpen, onClose, projectId, onSuccess }: CreateTaskModalProps) { const dialogRef = useRef(null); const { create, loading } = useCreateTask(projectId); const [taskTitle, setTaskTitle] = useState(""); const [description, setDescription] = useState(""); const [deadlineDate, setDeadlineDate] = useState(""); const [specificTime, setSpecificTime] = useState(""); const [submissionType, setSubmissionType] = useState("file_upload"); useEffect(() => { const dialog = dialogRef.current; if (!dialog) return; if (isOpen) { dialog.showModal(); document.body.style.overflow = "hidden"; } else { dialog.close(); document.body.style.overflow = "unset"; } const handleCancel = (e: Event) => { e.preventDefault(); onClose(); }; dialog.addEventListener("cancel", handleCancel); return () => { dialog.removeEventListener("cancel", handleCancel); document.body.style.overflow = "unset"; }; }, [isOpen, onClose]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); const result = await create({ title: taskTitle, description, deadline_date: deadlineDate, specific_time: specificTime, submission_type: submissionType, }); if (result) onSuccess(); }; // JSX sama persis, hanya ganti handleSubmit dan tambah disabled pada button submit: return (

Create New Task

Fill in the details for the next intern assignment.

setTaskTitle(e.target.value)} className="w-full px-3 py-4 bg-white border border-gray-200 rounded-lg text-xs font-medium text-gray-800 focus:outline-none focus:border-[#B30000] focus:ring-1 focus:ring-[#B30000]" />