Skip to content

Commit 1c07208

Browse files
committed
🔥(frontend) remove manual access deletion logic from move doc hook
Access and invitation cleanup on document move is now handled atomically by the backend. The frontend no longer needs to fetch and delete accesses/invitations after a successful move. Signed-off-by: Mohamed El Amine BOUKERFA <boukerfa.ma@gmail.com>
1 parent e59d8a4 commit 1c07208

3 files changed

Lines changed: 4 additions & 41 deletions

File tree

src/frontend/apps/impress/src/features/docs/doc-management/api/useMoveDoc.tsx

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@ import { TreeViewMoveModeEnum } from '@gouvfr-lasuite/ui-kit';
22
import { useMutation, useQueryClient } from '@tanstack/react-query';
33

44
import { APIError, errorCauses, fetchAPI } from '@/api';
5-
import {
6-
getDocAccesses,
7-
getDocInvitations,
8-
useDeleteDocAccess,
9-
useDeleteDocInvitation,
10-
} from '@/docs/doc-share';
115

126
import { KEY_LIST_DOC } from './useDocs';
137

@@ -37,46 +31,15 @@ export const moveDoc = async ({
3731
return response.json() as Promise<void>;
3832
};
3933

40-
export function useMoveDoc(deleteAccessOnMove = false) {
34+
export function useMoveDoc() {
4135
const queryClient = useQueryClient();
42-
const { mutate: handleDeleteInvitation } = useDeleteDocInvitation();
43-
const { mutate: handleDeleteAccess } = useDeleteDocAccess();
4436

4537
return useMutation<void, APIError, MoveDocParam>({
4638
mutationFn: moveDoc,
47-
async onSuccess(_data, variables, _onMutateResult, _context) {
48-
if (!deleteAccessOnMove) {
49-
return;
50-
}
51-
39+
onSuccess() {
5240
void queryClient.invalidateQueries({
5341
queryKey: [KEY_LIST_DOC],
5442
});
55-
const accesses = await getDocAccesses({
56-
docId: variables.sourceDocumentId,
57-
});
58-
59-
const invitationsResponse = await getDocInvitations({
60-
docId: variables.sourceDocumentId,
61-
page: 1,
62-
});
63-
64-
const invitations = invitationsResponse.results;
65-
66-
await Promise.all([
67-
...invitations.map((invitation) =>
68-
handleDeleteInvitation({
69-
docId: variables.sourceDocumentId,
70-
invitationId: invitation.id,
71-
}),
72-
),
73-
...accesses.map((access) =>
74-
handleDeleteAccess({
75-
docId: variables.sourceDocumentId,
76-
accessId: access.id,
77-
}),
78-
),
79-
]);
8043
},
8144
});
8245
}

src/frontend/apps/impress/src/features/docs/docs-grid/components/DocGridContentList.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ type DocGridContentListProps = {
6161
export const DraggableDocGridContentList = ({
6262
docs,
6363
}: DocGridContentListProps) => {
64-
const { mutateAsync: handleMove, isError } = useMoveDoc(true);
64+
const { mutateAsync: handleMove, isError } = useMoveDoc();
6565
const modalConfirmation = useModal();
6666
const onDragData = useRef<DocDragEndData | null>(null);
6767
const { untitledDocument } = useTrans();

src/frontend/apps/impress/src/features/docs/docs-grid/components/DocMoveModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export const DocMoveModal = ({
8787
const docTargetTitle = docSelected?.title || untitledDocument;
8888
const modalConfirmation = useModal();
8989
const modalRequest = useModal();
90-
const { mutate: moveDoc } = useMoveDoc(true);
90+
const { mutate: moveDoc } = useMoveDoc();
9191
const [search, setSearch] = useState('');
9292
const { isDesktop, isTablet, isMobile } = useResponsiveStore();
9393
const isModal = (isDesktop || isTablet) && !isMobile;

0 commit comments

Comments
 (0)