import Documents, { IGetDocumentsparams } from "@Front/Api/LeCoffreApi/SuperAdmin/Documents/Documents"; import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button"; import DepositDocument from "@Front/Components/DesignSystem/DepositDocument"; import TextField from "@Front/Components/DesignSystem/Form/TextField"; import Confirm from "@Front/Components/DesignSystem/Modal/Confirm"; import Typography, { ITypo } from "@Front/Components/DesignSystem/Typography"; import Base from "@Front/Components/Layouts/Base"; import DefaultTemplate from "@Front/Components/LayoutTemplates/DefaultTemplate"; import React from "react"; import classes from "./classes.module.scss"; import Customers from "@Front/Api/LeCoffreApi/SuperAdmin/Customers/Customers"; import Customer, { Document } from "le-coffre-resources/dist/Customer"; import { document } from "./../../../Components/Layouts/DesignSystem/dummyData"; type IProps = { targetedCustormer: string; // MOCK }; type IState = { isAddDocumentModalVisible: boolean; documents: Document[]; mockedCustomer: Customer | null; }; export default class ClientDashboard extends Base { public constructor(props: IProps) { super(props); this.state = { isAddDocumentModalVisible: false, documents: [], mockedCustomer: null, }; this.onCloseModalAddDocument = this.onCloseModalAddDocument.bind(this); this.onOpenModalAddDocument = this.onOpenModalAddDocument.bind(this); } public override render(): JSX.Element { return (
{this.renderHeader()}
{this.state.documents?.map((document) => ( ))}
Documents supplémentaires (facultatif) Vous souhaitez envoyer d'autres documents à votre notaire ?
Vous souhaitez envoyer un autre document à votre notaire ? Glissez / Déposez votre document dans la zone prévue à cet effet ou cliquez sur la zone puis sélectionnez le document correspondant.
); } private renderHeader(): JSX.Element { return (
{/* TODO Get name from userStore */} Bonjour {this.state.mockedCustomer?.contact?.first_name.concat(" ", this.state.mockedCustomer?.contact?.last_name)} Documents à envoyer Votre notaire est dans l'attente de documents pour valider votre dossier. Voici la liste des documents.Veuillez glisser / déposez chaque document dans la zone prévue à cet effet ou cliquez sur la zone puis sélectionnez le document correspondant. Si un des documents demandés ne vous concernent pas, veuillez contacter votre notaire à l’aide du bouton ci-dessus.
); } public override async componentDidMount() { // TODO Get documents of the current customer according to userStore // REMOVE this mock const mockedCustomers = await Customers.getInstance().get({ where: { contact: { email: this.props.targetedCustormer } } }); const mockedCustomer: Customer = mockedCustomers[0]!; const query: IGetDocumentsparams = { where: { depositor: { uid: mockedCustomer.uid } }, include: { files: true, document_history: true, document_type: true, }, }; const documents: Document[] = await Documents.getInstance().get(query); this.setState({ documents, mockedCustomer }); } private onCloseModalAddDocument() { this.setState({ isAddDocumentModalVisible: false }); } private onOpenModalAddDocument() { this.setState({ isAddDocumentModalVisible: true }); } }