diff --git a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/DeleteCustomerModal/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/DeleteCustomerModal/index.tsx index 559ba8ca..bdf407d9 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/DeleteCustomerModal/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/DeleteCustomerModal/index.tsx @@ -7,21 +7,15 @@ type IProps = { isOpen: boolean; onClose?: () => void; - onDeleteSuccess: (uid: string) => void; + onDelete: (customerUid: string) => void; }; export default function DeleteCustomerModal(props: IProps) { - const { isOpen, onClose, customerUid, onDeleteSuccess } = props; + const { isOpen, onClose, onDelete } = props; - const onDelete = useCallback( - () => onDeleteSuccess(customerUid), - // Documents.getInstance() - // .delete(documentUid) - // .then(() => onDeleteSuccess(documentUid)) - // .then(onClose) - // .catch((error) => console.warn(error)), - [customerUid, onDeleteSuccess], - ); + const handleDelete = useCallback(() => { + onDelete(props.customerUid); + }, [onDelete, props.customerUid]); return ( + secondButton={{ children: "Supprimer le client", onClick: handleDelete }}> Cette action retirera le client de ce dossier. Vous ne pourrez plus récupérer les informations associées à ce client dans ce dossier une fois supprimées. diff --git a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/classes.module.scss b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/classes.module.scss index 2aebed14..5e75f6fa 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/classes.module.scss +++ b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/classes.module.scss @@ -9,10 +9,14 @@ background: var(--primary-weak-higlight, #e5eefa); min-width: 300px; - .header{ + .header { display: flex; justify-content: space-between; align-items: center; width: 100%; } + + .delete-button { + margin: auto; + } } 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 5de56af7..6d9c01f8 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/ClientBox/index.tsx @@ -1,4 +1,4 @@ -import Button, { EButtonstyletype, EButtonVariant } from "@Front/Components/DesignSystem/Button"; +import Button, { EButtonSize, EButtonstyletype, EButtonVariant } from "@Front/Components/DesignSystem/Button"; import IconButton, { EIconButtonVariant } from "@Front/Components/DesignSystem/IconButton"; import Typography, { ETypo, ETypoColor } from "@Front/Components/DesignSystem/Typography"; import useOpenable from "@Front/Hooks/useOpenable"; @@ -8,33 +8,51 @@ import { ICustomer } from ".."; import { AnchorStatus } from "../.."; import classes from "./classes.module.scss"; import DeleteCustomerModal from "./DeleteCustomerModal"; +import Link from "next/link"; +import Module from "@Front/Config/Module"; +import { useCallback } from "react"; type IProps = { customer: ICustomer; anchorStatus: AnchorStatus; + folderUid: string | undefined; + onDelete: (customerUid: string) => void; }; export default function ClientBox(props: IProps) { - const { customer, anchorStatus } = props; + const { customer, anchorStatus, folderUid } = props; const { isOpen, open, close } = useOpenable(); + const handleDelete = useCallback( + (customerUid: string) => { + props.onDelete(customerUid); + }, + [props], + ); + return (
- {customer.contact?.last_name} + {customer.contact?.first_name} {customer.contact?.last_name} {anchorStatus === AnchorStatus.NOT_ANCHORED && ( - } /> + + } /> + )}
- + Numéro de téléphone - - {customer.contact?.phone_number} + + {customer.contact?.cell_phone_number ?? customer.contact?.phone_number ?? "_"}
@@ -42,7 +60,7 @@ export default function ClientBox(props: IProps) { E-mail - {customer.contact?.email} + {customer.contact?.email ?? "_"}
@@ -58,13 +76,14 @@ export default function ClientBox(props: IProps) { <> - {}} /> + )}
diff --git a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/index.tsx index 1b3fc3bd..3cce0e55 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/index.tsx @@ -2,7 +2,7 @@ import Tabs from "@Front/Components/Elements/Tabs"; import Customer from "le-coffre-resources/dist/Customer"; import { OfficeFolder } from "le-coffre-resources/dist/Notary"; -import { useMemo, useState } from "react"; +import { useCallback, useMemo, useState } from "react"; import { AnchorStatus } from ".."; import classes from "./classes.module.scss"; @@ -13,6 +13,7 @@ import Module from "@Front/Config/Module"; import Link from "next/link"; import NoDocument from "./NoDocument"; import DocumentTables from "./DocumentTables"; +import Folders from "@Front/Api/LeCoffreApi/Notary/Folders/Folders"; type IProps = { folder: OfficeFolder; @@ -47,6 +48,21 @@ export default function ClientView(props: IProps) { const doesCustomerHaveDocument = useMemo(() => customer.documents && customer.documents.length > 0, [customer]); + const handleClientDelete = useCallback( + (customerUid: string) => { + if (!folder.uid) return; + Folders.getInstance().put( + folder.uid, + OfficeFolder.hydrate({ + ...folder, + customers: folder.customers?.filter((customer) => customer.uid !== customerUid), + }), + ); + window.location.reload(); + }, + [folder], + ); + return (
@@ -68,7 +84,7 @@ export default function ClientView(props: IProps) {
- + {anchorStatus === AnchorStatus.NOT_ANCHORED && ( )}
- {doesCustomerHaveDocument ? : } + {doesCustomerHaveDocument ? : }
); diff --git a/src/front/Components/Layouts/Folder/FolderInformation/InformationSection/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/InformationSection/index.tsx index 925a1b3f..606a5109 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/InformationSection/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/InformationSection/index.tsx @@ -80,7 +80,7 @@ export default function InformationSection(props: IProps) { Notre dossier - Travaux de rénovation en cours. + {folder?.description}