43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
import { useEffect, useState } from "react";
|
|
import { TasksRepository } from "../repositories/TaskRepository";
|
|
import { cacheData, getCachedData } from "../slices/apiDataManager";
|
|
// import {formatDate} from "../utils/dateUtils";
|
|
|
|
export const useTaskList = (projectId, dateFrom, toDate) => {
|
|
const [TaskList, setTaskList] = useState([]);
|
|
const [loading, setLoading] = useState(false);
|
|
const [error, setError] = useState(null);
|
|
|
|
const fetchList = async () => {
|
|
const taskList_cached = getCachedData("taskList");
|
|
// if (!taskList_cached || taskList_cached?.projectId !== projectId) {
|
|
try {
|
|
setLoading(true);
|
|
const resp = await TasksRepository.getTaskList(
|
|
projectId,
|
|
dateFrom,
|
|
toDate
|
|
);
|
|
setTaskList(resp.data);
|
|
cacheData("taskList", { projectId: projectId, data: resp.data });
|
|
setLoading(false);
|
|
} catch (err) {
|
|
setLoading(false);
|
|
setError(err);
|
|
}
|
|
// } else {
|
|
// setTaskList(taskList_cached.data);
|
|
// }
|
|
};
|
|
useEffect( () =>
|
|
{
|
|
|
|
if (projectId && dateFrom && toDate) {
|
|
fetchList();
|
|
}
|
|
|
|
}, [projectId, dateFrom, toDate]);
|
|
|
|
return { TaskList, loading, error, refetch:fetchList};
|
|
};
|