added rankings but ugly and tired
This commit is contained in:
54
source/hooks/useTaskTroveTasks.js
Normal file
54
source/hooks/useTaskTroveTasks.js
Normal file
@@ -0,0 +1,54 @@
|
||||
// hooks/useTaskTroveTasks.js
|
||||
|
||||
import { useState, useEffect } from 'react';
|
||||
import { TASKTROVE_API, TASKTROVE_TOKEN } from '../config.js';
|
||||
|
||||
async function fetchTaskTroveTasks() {
|
||||
try {
|
||||
const response = await fetch(TASKTROVE_API, {
|
||||
headers: {
|
||||
Authorization: `Bearer ${TASKTROVE_TOKEN}`
|
||||
}
|
||||
});
|
||||
|
||||
if (!response.ok) return [];
|
||||
|
||||
const data = await response.json();
|
||||
const tasks = data.tasks || [];
|
||||
const today = new Date().toISOString().split('T')[0];
|
||||
|
||||
return tasks
|
||||
.filter(task => {
|
||||
if (task.completed) return false;
|
||||
const isDueToday = task.dueDate === today;
|
||||
const isP1 = task.priority === 1;
|
||||
const isP2 = task.priority === 2;
|
||||
return isDueToday || isP1 || isP2;
|
||||
})
|
||||
.map(task => ({
|
||||
title: task.title,
|
||||
priority: task.priority,
|
||||
dueDate: task.dueDate
|
||||
}));
|
||||
|
||||
} catch (err) {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
export function useTaskTroveTasks() {
|
||||
const [tasks, setTasks] = useState(null);
|
||||
|
||||
async function updateTasks() {
|
||||
const tsks = await fetchTaskTroveTasks();
|
||||
setTasks(tsks);
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
updateTasks();
|
||||
const interval = setInterval(updateTasks, 60000);
|
||||
return () => clearInterval(interval);
|
||||
}, []);
|
||||
|
||||
return { tasks };
|
||||
}
|
||||
Reference in New Issue
Block a user