From a0478a0a8359d4591eeb4c367d6b9155681b11ec Mon Sep 17 00:00:00 2001 From: Lucas Bordeau Date: Thu, 23 Nov 2023 23:29:54 +0100 Subject: [PATCH] Fix/task page filter (#2682) * Fixed filter * Removed console.log --- .../hooks/useOpenCreateActivityDrawer.ts | 6 ++- .../tasks/components/PageAddTaskButton.tsx | 6 ++- .../activities/tasks/hooks/useTasks.ts | 45 ++++++++++++++----- 3 files changed, 44 insertions(+), 13 deletions(-) diff --git a/front/src/modules/activities/hooks/useOpenCreateActivityDrawer.ts b/front/src/modules/activities/hooks/useOpenCreateActivityDrawer.ts index 86aa3826a..b741cb8e2 100644 --- a/front/src/modules/activities/hooks/useOpenCreateActivityDrawer.ts +++ b/front/src/modules/activities/hooks/useOpenCreateActivityDrawer.ts @@ -1,3 +1,4 @@ +import { isNonEmptyString } from '@sniptt/guards'; import { useRecoilState, useRecoilValue } from 'recoil'; import { Activity, ActivityType } from '@/activities/types/Activity'; @@ -47,7 +48,10 @@ export const useOpenCreateActivityDrawer = () => { const createdActivity = await createOneActivity?.({ authorId: currentWorkspaceMember?.id, - assigneeId: assigneeId ?? currentWorkspaceMember?.id, + assigneeId: + assigneeId ?? isNonEmptyString(currentWorkspaceMember?.id) + ? currentWorkspaceMember?.id + : undefined, type: type, }); diff --git a/front/src/modules/activities/tasks/components/PageAddTaskButton.tsx b/front/src/modules/activities/tasks/components/PageAddTaskButton.tsx index 8f1558292..409b0e835 100644 --- a/front/src/modules/activities/tasks/components/PageAddTaskButton.tsx +++ b/front/src/modules/activities/tasks/components/PageAddTaskButton.tsx @@ -1,3 +1,5 @@ +import { isNonEmptyString } from '@sniptt/guards'; + import { useOpenCreateActivityDrawer } from '@/activities/hooks/useOpenCreateActivityDrawer'; import { PageAddButton } from '@/ui/layout/page/PageAddButton'; import { useFilter } from '@/ui/object/object-filter-dropdown/hooks/useFilter'; @@ -9,7 +11,9 @@ export const PageAddTaskButton = () => { const handleClick = () => { openCreateActivity({ type: 'Task', - assigneeId: selectedFilter?.value, + assigneeId: isNonEmptyString(selectedFilter?.value) + ? selectedFilter?.value + : undefined, }); }; diff --git a/front/src/modules/activities/tasks/hooks/useTasks.ts b/front/src/modules/activities/tasks/hooks/useTasks.ts index 8aeb277c1..6e87c4155 100644 --- a/front/src/modules/activities/tasks/hooks/useTasks.ts +++ b/front/src/modules/activities/tasks/hooks/useTasks.ts @@ -1,21 +1,26 @@ +import { isNonEmptyString } from '@sniptt/guards'; import { DateTime } from 'luxon'; +import { undefined } from 'zod'; import { Activity } from '@/activities/types/Activity'; import { ActivityTargetableEntity } from '@/activities/types/ActivityTargetableEntity'; import { useFindManyObjectRecords } from '@/object-record/hooks/useFindManyObjectRecords'; import { useFilter } from '@/ui/object/object-filter-dropdown/hooks/useFilter'; import { parseDate } from '~/utils/date-utils'; +import { isDefined } from '~/utils/isDefined'; export const useTasks = (entity?: ActivityTargetableEntity) => { const { selectedFilter } = useFilter(); const { objects: activityTargets } = useFindManyObjectRecords({ objectNamePlural: 'activityTargets', - filter: { - [entity?.type === 'Company' ? 'companyId' : 'personId']: { - eq: entity?.id, - }, - }, + filter: isDefined(entity) + ? { + [entity?.type === 'Company' ? 'companyId' : 'personId']: { + eq: entity?.id, + }, + } + : undefined, }); const { objects: completeTasksData } = useFindManyObjectRecords({ @@ -23,10 +28,19 @@ export const useTasks = (entity?: ActivityTargetableEntity) => { skip: !entity && !selectedFilter, filter: { completedAt: { is: 'NOT_NULL' }, - id: { - in: activityTargets?.map((activityTarget) => activityTarget.activityId), - }, + id: isDefined(entity) + ? { + in: activityTargets?.map( + (activityTarget) => activityTarget.activityId, + ), + } + : undefined, type: { eq: 'Task' }, + assigneeId: isNonEmptyString(selectedFilter?.value) + ? { + eq: selectedFilter?.value, + } + : undefined, }, orderBy: { createdAt: 'DescNullsFirst', @@ -38,10 +52,19 @@ export const useTasks = (entity?: ActivityTargetableEntity) => { skip: !entity && !selectedFilter, filter: { completedAt: { is: 'NULL' }, - id: { - in: activityTargets?.map((activityTarget) => activityTarget.activityId), - }, + id: isDefined(entity) + ? { + in: activityTargets?.map( + (activityTarget) => activityTarget.activityId, + ), + } + : undefined, type: { eq: 'Task' }, + assigneeId: isNonEmptyString(selectedFilter?.value) + ? { + eq: selectedFilter?.value, + } + : undefined, }, orderBy: { createdAt: 'DescNullsFirst',