Fix tasks (#5199)
## Query depth deprecation I'm deprecating depth parameter in our graphql query / cache tooling. They were obsolete since we introduce the possibility to provide RecordGqlFields ## Refactor combinedFindManyRecordHook The hook can now take an array of operationSignatures ## Fix tasks issues Fix optimistic rendering issue. Note that we still haven't handle optimisticEffect on creation properly
This commit is contained in:
@ -18,7 +18,6 @@ export const CurrentUserDueTaskCountEffect = () => {
|
||||
|
||||
const { records: tasks } = useFindManyRecords<Activity>({
|
||||
objectNameSingular: CoreObjectNameSingular.Activity,
|
||||
depth: 0,
|
||||
filter: {
|
||||
type: { eq: 'Task' },
|
||||
completedAt: { is: 'NULL' },
|
||||
|
||||
@ -40,7 +40,6 @@ export const TaskGroups = ({
|
||||
upcomingTasks,
|
||||
unscheduledTasks,
|
||||
completedTasks,
|
||||
initialized,
|
||||
} = useTasks({
|
||||
filterDropdownId: filterDropdownId,
|
||||
targetableObjects: targetableObjects ?? [],
|
||||
@ -51,10 +50,6 @@ export const TaskGroups = ({
|
||||
const { activeTabIdState } = useTabList(TASKS_TAB_LIST_COMPONENT_ID);
|
||||
const activeTabId = useRecoilValue(activeTabIdState);
|
||||
|
||||
if (!initialized) {
|
||||
return <></>;
|
||||
}
|
||||
|
||||
if (
|
||||
(activeTabId !== 'done' &&
|
||||
todayOrPreviousTasks?.length === 0 &&
|
||||
|
||||
@ -49,7 +49,6 @@ const useActivitiesMock = jest.fn(
|
||||
activities: isCompletedFilter
|
||||
? completedTasks
|
||||
: [...todayOrPreviousTasks, ...unscheduledTasks],
|
||||
initialized: true,
|
||||
};
|
||||
},
|
||||
);
|
||||
@ -79,7 +78,6 @@ describe('useTasks', () => {
|
||||
upcomingTasks: [],
|
||||
unscheduledTasks,
|
||||
completedTasks,
|
||||
initialized: true,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import { useEffect, useMemo } from 'react';
|
||||
import { isNonEmptyArray } from '@sniptt/guards';
|
||||
import { DateTime } from 'luxon';
|
||||
import { useRecoilState, useRecoilValue } from 'recoil';
|
||||
|
||||
@ -9,8 +8,8 @@ import { currentIncompleteTaskQueryVariablesState } from '@/activities/tasks/sta
|
||||
import { FIND_MANY_TIMELINE_ACTIVITIES_ORDER_BY } from '@/activities/timeline/constants/FindManyTimelineActivitiesOrderBy';
|
||||
import { Activity } from '@/activities/types/Activity';
|
||||
import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableEntity';
|
||||
import { RecordGqlOperationVariables } from '@/object-record/graphql/types/RecordGqlOperationVariables';
|
||||
import { useFilterDropdown } from '@/object-record/object-filter-dropdown/hooks/useFilterDropdown';
|
||||
import { ObjectRecordQueryVariables } from '@/object-record/types/ObjectRecordQueryVariables';
|
||||
import { parseDate } from '~/utils/date-utils';
|
||||
import { isDeeplyEqual } from '~/utils/isDeeplyEqual';
|
||||
|
||||
@ -41,8 +40,6 @@ export const useTasks = ({
|
||||
[selectedFilter],
|
||||
);
|
||||
|
||||
const skipActivityTargets = !isNonEmptyArray(targetableObjects);
|
||||
|
||||
const completedQueryVariables = useMemo(
|
||||
() =>
|
||||
({
|
||||
@ -52,7 +49,7 @@ export const useTasks = ({
|
||||
...assigneeIdFilter,
|
||||
},
|
||||
orderBy: FIND_MANY_TIMELINE_ACTIVITIES_ORDER_BY,
|
||||
}) as ObjectRecordQueryVariables,
|
||||
}) as RecordGqlOperationVariables,
|
||||
[assigneeIdFilter],
|
||||
);
|
||||
|
||||
@ -65,7 +62,7 @@ export const useTasks = ({
|
||||
...assigneeIdFilter,
|
||||
},
|
||||
orderBy: FIND_MANY_TIMELINE_ACTIVITIES_ORDER_BY,
|
||||
}) as ObjectRecordQueryVariables,
|
||||
}) as RecordGqlOperationVariables,
|
||||
[assigneeIdFilter],
|
||||
);
|
||||
|
||||
@ -110,24 +107,16 @@ export const useTasks = ({
|
||||
setCurrentIncompleteTaskQueryVariables,
|
||||
]);
|
||||
|
||||
const {
|
||||
activities: completeTasksData,
|
||||
initialized: initializedCompleteTasks,
|
||||
} = useActivities({
|
||||
const { activities: completeTasksData } = useActivities({
|
||||
targetableObjects,
|
||||
activitiesFilters: completedQueryVariables.filter ?? {},
|
||||
activitiesOrderByVariables: completedQueryVariables.orderBy ?? {},
|
||||
skipActivityTargets,
|
||||
});
|
||||
|
||||
const {
|
||||
activities: incompleteTaskData,
|
||||
initialized: initializedIncompleteTasks,
|
||||
} = useActivities({
|
||||
const { activities: incompleteTaskData } = useActivities({
|
||||
targetableObjects,
|
||||
activitiesFilters: incompleteQueryVariables.filter ?? {},
|
||||
activitiesOrderByVariables: incompleteQueryVariables.orderBy ?? {},
|
||||
skipActivityTargets,
|
||||
});
|
||||
|
||||
const todayOrPreviousTasks = incompleteTaskData?.filter((task) => {
|
||||
@ -159,6 +148,5 @@ export const useTasks = ({
|
||||
upcomingTasks: (upcomingTasks ?? []) as Activity[],
|
||||
unscheduledTasks: (unscheduledTasks ?? []) as Activity[],
|
||||
completedTasks: (completedTasks ?? []) as Activity[],
|
||||
initialized: initializedCompleteTasks && initializedIncompleteTasks,
|
||||
};
|
||||
};
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
import { ObjectRecordQueryVariables } from '@/object-record/types/ObjectRecordQueryVariables';
|
||||
import { RecordGqlOperationVariables } from '@/object-record/graphql/types/RecordGqlOperationVariables';
|
||||
|
||||
export const currentCompletedTaskQueryVariablesState =
|
||||
atom<ObjectRecordQueryVariables | null>({
|
||||
atom<RecordGqlOperationVariables | null>({
|
||||
default: null,
|
||||
key: 'currentCompletedTaskQueryVariablesState',
|
||||
});
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
import { ObjectRecordQueryVariables } from '@/object-record/types/ObjectRecordQueryVariables';
|
||||
import { RecordGqlOperationVariables } from '@/object-record/graphql/types/RecordGqlOperationVariables';
|
||||
|
||||
export const currentIncompleteTaskQueryVariablesState =
|
||||
atom<ObjectRecordQueryVariables | null>({
|
||||
atom<RecordGqlOperationVariables | null>({
|
||||
default: null,
|
||||
key: 'currentIncompleteTaskQueryVariablesState',
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user