import React, { useMemo, useState } from 'react'; import { taskAPI } from '../../services/api'; const initialTaskState = { title: '', description: '', dueDate: '', }; const TaskForm = ({ isAdmin = false, onTaskCreated }) => { const [task, setTask] = useState(initialTaskState); const [submitting, setSubmitting] = useState(false); const [error, setError] = useState(''); const [success, setSuccess] = useState(''); const helperText = useMemo(() => { if (!isAdmin) { return 'Only administrators can create official tasks. Submit details and an administrator will review the request.'; } return 'Provide a short, action-oriented title and outline the expected outcome.'; }, [isAdmin]); const handleChange = (event) => { const { name, value } = event.target; setTask((prev) => ({ ...prev, [name]: value })); }; const handleSubmit = async (event) => { event.preventDefault(); setSubmitting(true); setError(''); setSuccess(''); try { await taskAPI.createTask(task); const message = isAdmin ? 'Task created successfully.' : 'Task submitted for review successfully.'; setSuccess(message); setTask(initialTaskState); onTaskCreated?.(); } catch (err) { const message = err?.response?.data?.message ?? 'We could not create the task. Please try again later.'; setError(message); } finally { setSubmitting(false); } }; return (
); }; export default TaskForm;