const API_BASE = "http://localhost:5200";
const content = document.getElementById("content");
const errorDiv = document.getElementById("error");
let currentTask = null;
async function loadActiveTask() {
try {
const res = await fetch(`${API_BASE}/api/tasks/active`);
const json = await res.json();
if (!json.success || !json.data) {
content.innerHTML = '
No active task
';
return;
}
currentTask = json.data;
renderTask(currentTask);
} catch (err) {
errorDiv.textContent = "Cannot connect to API";
}
}
function renderTask(task) {
const isActive = task.status === "Active";
const isPaused = task.status === "Paused";
content.innerHTML = `
${escapeHtml(task.title)}
${task.status}
${task.category ? `Category: ${escapeHtml(task.category)}
` : ""}
`;
document.getElementById("toggleBtn").addEventListener("click", () => toggleTask(task.id, isActive));
}
async function toggleTask(taskId, isCurrentlyActive) {
try {
const action = isCurrentlyActive ? "pause" : "resume";
const res = await fetch(`${API_BASE}/api/tasks/${taskId}/${action}`, {
method: "PUT",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({})
});
const json = await res.json();
if (json.success && json.data) {
currentTask = json.data;
renderTask(currentTask);
}
} catch (err) {
errorDiv.textContent = "Failed to update task";
}
}
function escapeHtml(text) {
const div = document.createElement("div");
div.textContent = text;
return div.innerHTML;
}
loadActiveTask();