Add tasks page (#1015)
* Refactor top bar component * Add task page with tabs * Add tasks * Add logic for task status * Fix isoweek definition * Enable click on task * Deduplicate component * Lint --------- Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>
This commit is contained in:
47
front/src/modules/tasks/hooks/useTasks.ts
Normal file
47
front/src/modules/tasks/hooks/useTasks.ts
Normal file
@ -0,0 +1,47 @@
|
||||
import { activeTabIdScopedState } from '@/ui/tab/states/activeTabIdScopedState';
|
||||
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
|
||||
import { ActivityType, useGetActivitiesQuery } from '~/generated/graphql';
|
||||
import { parseDate } from '~/utils/date-utils';
|
||||
|
||||
import { TasksContext } from '../states/TasksContext';
|
||||
|
||||
export function useTasks() {
|
||||
const [activeTabId] = useRecoilScopedState(
|
||||
activeTabIdScopedState,
|
||||
TasksContext,
|
||||
);
|
||||
|
||||
const { data, loading } = useGetActivitiesQuery({
|
||||
variables: {
|
||||
where: {
|
||||
type: { equals: ActivityType.Task },
|
||||
completedAt:
|
||||
activeTabId === 'done' ? { not: { equals: null } } : { equals: null },
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
const todayTasks = data?.findManyActivities.filter((task) => {
|
||||
if (!task.dueAt) {
|
||||
return false;
|
||||
}
|
||||
const dueDate = parseDate(task.dueAt).toJSDate();
|
||||
const today = new Date();
|
||||
return dueDate.getDate() === today.getDate();
|
||||
});
|
||||
|
||||
const otherTasks = data?.findManyActivities.filter((task) => {
|
||||
if (!task.dueAt) {
|
||||
return false;
|
||||
}
|
||||
const dueDate = parseDate(task.dueAt).toJSDate();
|
||||
const today = new Date();
|
||||
return dueDate.getDate() !== today.getDate();
|
||||
});
|
||||
|
||||
return {
|
||||
todayTasks,
|
||||
otherTasks,
|
||||
loading,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user