{task?.title}
{task?.description}
{task?.dueDate && (import React, { useCallback, useEffect, useState } from 'react';
import { useAuth } from '../../context/AuthContext';
import { isAdmin as checkIsAdmin } from '../../utils/roleUtils';
import { taskAPI } from '../../services/api';
import Loader from '../common/Loader';
import EmptyState from '../common/EmptyState';
import { formatDateTime, safeArray } from '../../utils/formatters';
const TaskList = ({ refreshKey = 0 }) => {
const { user } = useAuth();
const [tasks, setTasks] = useState([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState('');
const [updating, setUpdating] = useState(null);
const loadTasks = useCallback(async () => {
try {
setLoading(true);
setError('');
const response = checkIsAdmin(user) ? await taskAPI.getAllTasks() : await taskAPI.getUserTasks();
setTasks(safeArray(response?.data));
} catch (err) {
const message = err?.response?.data?.message ?? 'We were unable to load your tasks.';
setError(message);
setTasks([]);
} finally {
setLoading(false);
}
}, [user?.role]);
useEffect(() => {
if (user) {
loadTasks();
}
}, [loadTasks, user, refreshKey]);
const handleCompleteTask = async (taskId) => {
setUpdating(taskId);
setError('');
try {
await taskAPI.completeTask(taskId);
await loadTasks();
} catch (err) {
const message = err?.response?.data?.message ?? 'We could not update the task.';
setError(message);
} finally {
setUpdating(null);
}
};
if (loading) {
return
{task?.description}
{task?.dueDate && (