Fix Activity Picker part 1 (#2678)

* Fix Activity Picker part 1

* Fix
This commit is contained in:
Charles Bochet
2023-11-23 16:25:13 +01:00
committed by GitHub
parent 033c3bc8b2
commit 72421a39ea
14 changed files with 174 additions and 102 deletions

View File

@ -1,7 +1,7 @@
import { v4 } from 'uuid';
import { Activity } from '@/activities/types/Activity';
import { ActivityTarget } from '@/activities/types/ActivityTarget';
import { GraphQLActivity } from '@/activities/types/GraphQLActivity';
import { useCreateOneObjectRecord } from '@/object-record/hooks/useCreateOneObjectRecord';
import { useDeleteOneObjectRecord } from '@/object-record/hooks/useDeleteOneObjectRecord';
@ -10,10 +10,12 @@ import { ActivityTargetableEntityForSelect } from '../types/ActivityTargetableEn
export const useHandleCheckableActivityTargetChange = ({
activity,
}: {
activity?: Pick<Activity, 'id'> & {
activityTargets?: Array<
Pick<ActivityTarget, 'id' | 'personId' | 'companyId'>
> | null;
activity?: Pick<GraphQLActivity, 'id'> & {
activityTargets?: {
edges: Array<{
node: Pick<ActivityTarget, 'id' | 'personId' | 'companyId'>;
}> | null;
};
};
}) => {
const { createOneObject } = useCreateOneObjectRecord<ActivityTarget>({
@ -31,9 +33,9 @@ export const useHandleCheckableActivityTargetChange = ({
return;
}
const currentEntityIds = activity.activityTargets
? activity.activityTargets.map(
({ personId, companyId }) => personId ?? companyId,
const currentEntityIds = activity.activityTargets?.edges
? activity.activityTargets.edges.map(
({ node }) => node.personId ?? node.companyId,
)
: [];
@ -55,14 +57,14 @@ export const useHandleCheckableActivityTargetChange = ({
});
}
const activityTargetIdsToDelete = activity.activityTargets
? activity.activityTargets
const activityTargetIdsToDelete = activity.activityTargets?.edges
? activity.activityTargets.edges
.filter(
({ personId, companyId }) =>
(personId ?? companyId) &&
!entityValues[personId ?? companyId ?? ''],
({ node }) =>
(node.personId ?? node.companyId) &&
!entityValues[node.personId ?? node.companyId ?? ''],
)
.map(({ id }) => id)
.map(({ node }) => node.id)
: [];
if (activityTargetIdsToDelete.length) {