import React, { useState, useEffect } from 'react'; import axios from 'axios'; const Tasks = () => { const [tasks, setTasks] = useState([]); const [uploading, setUploading] = useState(false); useEffect(() => { fetchTasks(); }, []); const fetchTasks = async () => { const res = await axios.get('/tasks?myTasks=true'); setTasks(res.data.tasks); }; const handleFileUpload = async (taskId, file) => { const formData = new FormData(); formData.append('file', file); formData.append('description', 'Proof of work submitted'); setUploading(true); try { await axios.post(`/tasks/${taskId}/upload`, formData); await axios.put(`/tasks/${taskId}/progress`, { progress: 100, status: 'completed' }); alert('Proof uploaded and task sent for approval!'); fetchTasks(); } catch (err) { alert('Upload failed. Check file size (Max 10MB).'); } finally { setUploading(false); } }; return (
{tasks.map((task) => ( ))}
Initiative Status Deadline Action
{task.title} {task.status.replace('_', ' ')} {new Date(task.due_date).toLocaleDateString()} {task.status !== 'completed' && ( )}
); }; export default Tasks;