diff --git a/src/components/Tool/Appeal/Modals/DeleteAppealContact/DeleteAppealContact.graphql b/src/components/Tool/Appeal/Modals/DeleteAppealContact/DeleteAppealContact.graphql
index 2b71c22d7..a3eef87e9 100644
--- a/src/components/Tool/Appeal/Modals/DeleteAppealContact/DeleteAppealContact.graphql
+++ b/src/components/Tool/Appeal/Modals/DeleteAppealContact/DeleteAppealContact.graphql
@@ -3,22 +3,3 @@ mutation DeleteAppealContact($input: AppealContactDeleteMutationInput!) {
id
}
}
-
-query AppealContacts($appealId: ID!, $after: String) {
- appealContacts(appealId: $appealId, first: 50, after: $after) {
- nodes {
- ...AppealContactsInfo
- }
- pageInfo {
- hasNextPage
- endCursor
- }
- }
-}
-
-fragment AppealContactsInfo on AppealContact {
- id
- contact {
- id
- }
-}
diff --git a/src/components/Tool/Appeal/Modals/DeleteAppealContact/DeleteAppealContactModal.test.tsx b/src/components/Tool/Appeal/Modals/DeleteAppealContact/DeleteAppealContactModal.test.tsx
index c10b8f584..87ef99751 100644
--- a/src/components/Tool/Appeal/Modals/DeleteAppealContact/DeleteAppealContactModal.test.tsx
+++ b/src/components/Tool/Appeal/Modals/DeleteAppealContact/DeleteAppealContactModal.test.tsx
@@ -188,25 +188,9 @@ describe('DeleteAppealContactModal', () => {
expect(handleClose).toHaveBeenCalledTimes(2);
});
- it('fetches all the appealContacts and matches up the correct ID to send to the API', async () => {
+ it('should successfully delete a contact from an appeal', async () => {
const { getByRole } = render();
- // Call AppealContacts 3 times getting all contacts.
- await waitFor(() =>
- expect(mutationSpy).toHaveGraphqlOperation('AppealContacts', {
- after: 'endCursor2',
- appealId: 'appealId',
- }),
- );
- expect(mutationSpy).toHaveGraphqlOperation('AppealContacts', {
- after: null,
- appealId: 'appealId',
- });
- expect(mutationSpy).toHaveGraphqlOperation('AppealContacts', {
- after: 'endCursor1',
- appealId: 'appealId',
- });
-
userEvent.click(getByRole('button', { name: 'Yes' }));
await waitFor(() => {
@@ -221,7 +205,8 @@ describe('DeleteAppealContactModal', () => {
await waitFor(() => {
expect(mutationSpy).toHaveGraphqlOperation('DeleteAppealContact', {
input: {
- id: 'appealContactId',
+ contactId: 'contact-1',
+ appealId: 'appealId',
},
});
});
diff --git a/src/components/Tool/Appeal/Modals/DeleteAppealContact/DeleteAppealContactModal.tsx b/src/components/Tool/Appeal/Modals/DeleteAppealContact/DeleteAppealContactModal.tsx
index 118443c97..487d311cb 100644
--- a/src/components/Tool/Appeal/Modals/DeleteAppealContact/DeleteAppealContactModal.tsx
+++ b/src/components/Tool/Appeal/Modals/DeleteAppealContact/DeleteAppealContactModal.tsx
@@ -1,4 +1,4 @@
-import React, { useEffect, useState } from 'react';
+import React from 'react';
import {
Box,
CircularProgress,
@@ -19,11 +19,7 @@ import {
AppealsType,
TableViewModeEnum,
} from '../../AppealsContext/AppealsContext';
-import {
- AppealContactsInfoFragment,
- useAppealContactsQuery,
- useDeleteAppealContactMutation,
-} from './DeleteAppealContact.generated';
+import { useDeleteAppealContactMutation } from './DeleteAppealContact.generated';
const LoadingIndicator = styled(CircularProgress)(({ theme }) => ({
margin: theme.spacing(0, 1, 0, 0),
@@ -44,48 +40,9 @@ export const DeleteAppealContactModal: React.FC<
) as AppealsType;
const [deleteAppealContact, { loading: mutating }] =
useDeleteAppealContactMutation();
- const { data, fetchMore } = useAppealContactsQuery({
- variables: {
- appealId: appealId ?? '',
- },
- });
- const [loading, setLoading] = useState(false);
- const [appealContactsIds, setAppealContactsIds] = useState<
- AppealContactsInfoFragment[]
- >([]);
-
- const loadAllAppealContacts = async () => {
- let allContacts = data?.appealContacts.nodes ?? [];
- let hasNextPage = true;
- let cursor: string | null = null;
-
- while (hasNextPage) {
- const response = await fetchMore({
- variables: {
- after: cursor,
- },
- });
-
- const newContacts = response.data.appealContacts.nodes;
- allContacts = [...allContacts, ...newContacts];
- hasNextPage = response.data.appealContacts.pageInfo.hasNextPage;
- cursor = response.data.appealContacts.pageInfo.endCursor ?? null;
- }
-
- setAppealContactsIds(allContacts);
- setLoading(false);
- return allContacts;
- };
-
- useEffect(() => {
- loadAllAppealContacts();
- }, []);
const handleRemoveContact = async () => {
- const appealContactId = appealContactsIds.find(
- (appealContact) => appealContact.contact.id === contactId,
- )?.id;
- if (!appealContactId) {
+ if (!appealId) {
enqueueSnackbar('Error while removing contact from appeal.', {
variant: 'error',
});
@@ -94,7 +51,8 @@ export const DeleteAppealContactModal: React.FC<
await deleteAppealContact({
variables: {
input: {
- id: appealContactId,
+ contactId,
+ appealId,
},
},
update: (cache) => {
@@ -136,13 +94,13 @@ export const DeleteAppealContactModal: React.FC<
)}
-
+
{t('No')}
{t('Yes')}