import React, { useEffect, useState } from 'react';
import { submissionAPI, taskAPI, userAPI } from '../../services/api';
import Loader from '../common/Loader';
import EmptyState from '../common/EmptyState';
import { formatDateTime, safeArray } from '../../utils/formatters';
const AdminPanel = () => {
const [users, setUsers] = useState([]);
const [submissions, setSubmissions] = useState([]);
const [newTask, setNewTask] = useState({ title: '', description: '', dueDate: '' });
const [loading, setLoading] = useState(true);
const [dashboardError, setDashboardError] = useState('');
const [taskError, setTaskError] = useState('');
const [creatingTask, setCreatingTask] = useState(false);
useEffect(() => {
const loadDashboard = async () => {
try {
setLoading(true);
const [usersResponse, submissionsResponse] = await Promise.all([
userAPI.getAllUsers(),
submissionAPI.getAllSubmissions(),
]);
setUsers(safeArray(usersResponse?.data));
setSubmissions(safeArray(submissionsResponse?.data));
} catch (err) {
const message = err?.response?.data?.message ?? 'We were unable to load admin data.';
setDashboardError(message);
} finally {
setLoading(false);
}
};
loadDashboard();
}, []);
const handleTaskChange = (event) => {
const { name, value } = event.target;
setNewTask((prev) => ({ ...prev, [name]: value }));
};
const handleCreateTask = async (event) => {
event.preventDefault();
setCreatingTask(true);
setTaskError('');
try {
await taskAPI.createTask(newTask);
setNewTask({ title: '', description: '', dueDate: '' });
} catch (err) {
const message = err?.response?.data?.message ?? 'The task could not be created.';
setTaskError(message);
} finally {
setCreatingTask(false);
}
};
if (loading) {
return
{submission?.content}