diff --git a/src/front/Components/DesignSystem/Alert/classes.module.scss b/src/front/Components/DesignSystem/Alert/classes.module.scss index 96e78746..e800be15 100644 --- a/src/front/Components/DesignSystem/Alert/classes.module.scss +++ b/src/front/Components/DesignSystem/Alert/classes.module.scss @@ -32,6 +32,7 @@ display: flex; padding: var(--spacing-1, 8px); align-items: center; + align-self: flex-start; border-radius: var(--alerts-badge-radius, 360px); border: 1px solid var(--alerts-badge-border, rgba(0, 0, 0, 0)); diff --git a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/index.tsx index 891b7cd0..5f91b152 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/index.tsx @@ -11,6 +11,7 @@ import Module from "@Front/Config/Module"; import { useCallback } from "react"; import { Note } from "le-coffre-resources/dist/Customer"; import ButtonWithSubMenu from "@Front/Components/Elements/ButtonWithSubMenu"; +import Modal from "@Front/Components/DesignSystem/Modal"; type IProps = { customer: ICustomer; @@ -23,10 +24,16 @@ type IProps = { export default function ClientBox(props: IProps) { const { customer, anchorStatus, folderUid, customerNote } = props; - const { isOpen, open, close } = useOpenable(); + const { isOpen: isDeleteModalOpen, open: openDeleteModal, close: closeDeleteModal } = useOpenable(); + const { isOpen: isErrorModalOpen, open: openErrorModal, close: closeErrorModal } = useOpenable(); const handleDelete = useCallback( (customerUid: string) => { + if (customer.documents && customer.documents.length > 0) { + closeDeleteModal(); + openErrorModal(); + return; + } props.onDelete(customerUid); }, [props], @@ -108,12 +115,27 @@ export default function ClientBox(props: IProps) { variant={EButtonVariant.ERROR} styletype={EButtonstyletype.TEXT} rightIcon={} - onClick={open}> + onClick={openDeleteModal}> Supprimer le client - + )} + + + Ce client ne peut pas être supprimé car des documents sont associés à son dossier. Veuillez d'abord gérer ou supprimer + ces documents avant de tenter de supprimer le client. + + ); } diff --git a/src/front/Components/Layouts/Folder/FolderInformation/elements/AnchoringProcessingNeutral/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/elements/AnchoringProcessingInfo/index.tsx similarity index 63% rename from src/front/Components/Layouts/Folder/FolderInformation/elements/AnchoringProcessingNeutral/index.tsx rename to src/front/Components/Layouts/Folder/FolderInformation/elements/AnchoringProcessingInfo/index.tsx index b018d92f..599d4173 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/elements/AnchoringProcessingNeutral/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/elements/AnchoringProcessingInfo/index.tsx @@ -1,11 +1,13 @@ import Alert, { EAlertVariant } from "@Front/Components/DesignSystem/Alert"; +import { ArrowPathIcon } from "@heroicons/react/24/outline"; -export default function AnchoringProcessingNeutral() { +export default function AnchoringProcessingInfo() { return ( } fullWidth /> ); diff --git a/src/front/Components/Layouts/Folder/FolderInformation/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/index.tsx index 8ec5ceaf..7dd580b0 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/index.tsx @@ -13,13 +13,13 @@ import ClientView from "./ClientView"; import AnchoringAlertInfo from "./elements/AnchoringAlertInfo"; import AnchoringAlertSuccess from "./elements/AnchoringAlertSuccess"; import AnchoringModal from "./elements/AnchoringModal"; -import AnchoringProcessingNeutral from "./elements/AnchoringProcessingNeutral"; import ArchiveAlertWarning from "./elements/ArchiveAlertWarning"; import ArchiveModal from "./elements/ArchiveModal"; import DownloadAnchoringProofModal from "./elements/DownloadAnchoringProofModal"; import RequireAnchoringModal from "./elements/RequireAnchoringModal"; import InformationSection from "./InformationSection"; import NoClientView from "./NoClientView"; +import AnchoringProcessingInfo from "./elements/AnchoringProcessingInfo"; export enum AnchorStatus { "VERIFIED_ON_CHAIN" = "VERIFIED_ON_CHAIN", @@ -148,7 +148,7 @@ export default function FolderInformation(props: IProps) { isArchived={isArchived} /> )} - {!isArchived && anchorStatus === AnchorStatus.ANCHORING && } + {!isArchived && anchorStatus === AnchorStatus.ANCHORING && } {isArchived && folderUid && ( )}