From 828058d4308fcb573c98d1894cebc244e89d17f4 Mon Sep 17 00:00:00 2001 From: Max S Date: Tue, 13 Aug 2024 11:57:12 +0200 Subject: [PATCH] :sparkles: handle delete sent document modal --- .../DeleteAskedDocumentModal/index.tsx | 1 - .../DeleteSentDocumentModal/index.tsx | 36 ++++++++++++++++ .../ClientView/DocumentTables/index.tsx | 41 ++++++++++++++----- 3 files changed, 66 insertions(+), 12 deletions(-) create mode 100644 src/front/Components/Layouts/Folder/FolderInformation/ClientView/DocumentTables/DeleteSentDocumentModal/index.tsx diff --git a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/DocumentTables/DeleteAskedDocumentModal/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/DocumentTables/DeleteAskedDocumentModal/index.tsx index 731bb4c9..87d2586a 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/DocumentTables/DeleteAskedDocumentModal/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/DocumentTables/DeleteAskedDocumentModal/index.tsx @@ -7,7 +7,6 @@ type IProps = { documentUid: string; isOpen: boolean; onClose?: () => void; - onDeleteSuccess: (uid: string) => void; }; diff --git a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/DocumentTables/DeleteSentDocumentModal/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/DocumentTables/DeleteSentDocumentModal/index.tsx new file mode 100644 index 00000000..f10fb594 --- /dev/null +++ b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/DocumentTables/DeleteSentDocumentModal/index.tsx @@ -0,0 +1,36 @@ +import Documents from "@Front/Api/LeCoffreApi/Notary/Documents/Documents"; +import Modal from "@Front/Components/DesignSystem/Modal"; +import Typography, { ETypo } from "@Front/Components/DesignSystem/Typography"; +import React, { useCallback } from "react"; + +type IProps = { + documentUid: string; + isOpen: boolean; + onClose?: () => void; + onDeleteSuccess: (uid: string) => void; +}; + +export default function DeleteSentDocumentModal(props: IProps) { + const { isOpen, onClose, documentUid, onDeleteSuccess } = props; + + const onDelete = useCallback( + () => + Documents.getInstance() + .delete(documentUid) + .then(() => onDeleteSuccess(documentUid)) + .then(onClose) + .catch((error) => console.warn(error)), + [documentUid, onClose, onDeleteSuccess], + ); + + return ( + + Cette action annulera l'envoi du document. + + ); +} diff --git a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/DocumentTables/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/DocumentTables/index.tsx index 5259f4d4..de516731 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/DocumentTables/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/DocumentTables/index.tsx @@ -15,6 +15,7 @@ import { useCallback, useEffect, useMemo, useState } from "react"; import classes from "./classes.module.scss"; import DeleteAskedDocumentModal from "./DeleteAskedDocumentModal"; +import DeleteSentDocumentModal from "./DeleteSentDocumentModal"; type IProps = { documents: Document[]; @@ -33,7 +34,8 @@ export default function DocumentTables(props: IProps) { const [documents, setDocuments] = useState(documentsProps); const [documentUid, setDocumentUid] = useState(null); - const deleteAskedOocumentModal = useOpenable(); + const deleteAskedDocumentModal = useOpenable(); + const deleteSentDocumentModal = useOpenable(); useEffect(() => { setDocuments(documentsProps); @@ -43,9 +45,18 @@ export default function DocumentTables(props: IProps) { (uid: string | undefined) => { if (!uid) return; setDocumentUid(uid); - deleteAskedOocumentModal.open(); + deleteAskedDocumentModal.open(); }, - [deleteAskedOocumentModal], + [deleteAskedDocumentModal], + ); + + const openDeleteSentDocumentModal = useCallback( + (uid: string | undefined) => { + if (!uid) return; + setDocumentUid(uid); + deleteSentDocumentModal.open(); + }, + [deleteSentDocumentModal], ); const onDownload = useCallback((doc: Document) => { @@ -190,13 +201,13 @@ export default function DocumentTables(props: IProps) { actions: (
onDownload(document)} icon={} /> - openDeleteAskedDocumentModal(document.uid)} />} /> + openDeleteSentDocumentModal(document.uid)} />} />
), }; }) .filter((document) => document !== null) as IRowProps[], - [documents, onDownload, openDeleteAskedDocumentModal], + [documents, onDownload, openDeleteSentDocumentModal], ); const progress = useMemo(() => { @@ -227,12 +238,20 @@ export default function DocumentTables(props: IProps) { {refusedDocuments.length > 0 && } {sentDocuments.length > 0 &&
} {documentUid && ( - + <> + + + )} );