"use client"; import Customers from "@Front/Api/LeCoffreApi/Customer/Customers/Customers"; import Documents, { IGetDocumentsparams } from "@Front/Api/LeCoffreApi/Customer/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 DefaultTemplate from "@Front/Components/LayoutTemplates/DefaultTemplate"; import Customer, { Document, DocumentType } from "le-coffre-resources/dist/Customer"; import React, { useCallback, useEffect, useState } from "react"; import classes from "./classes.module.scss"; import { useRouter } from "next/router"; import JwtService from "@Front/Services/JwtService/JwtService"; type IProps = {}; export default function ClientDashboard(props: IProps) { const router = useRouter(); let { folderUid } = router.query; const [documents, setDocuments] = useState(null); const [customer, setCustomer] = useState(null); const [isAddDocumentModalVisible, setIsAddDocumentModalVisible] = useState(false); const onCloseModalAddDocument = useCallback(() => { setIsAddDocumentModalVisible(false); }, []); const onOpenModalAddDocument = useCallback(() => { setIsAddDocumentModalVisible(true); }, []); useEffect(() => { async function getDocuments() { let jwt; if (typeof document !== "undefined") { jwt = JwtService.getInstance().decodeJwt(); } if (!jwt || !jwt.email) return; const customers = await Customers.getInstance().get({ where: { contact: { email: jwt.email }, office_folders: { some: { uid: folderUid } } }, }); const actualCustomer: Customer = customers[0]!; const query: IGetDocumentsparams = { where: { depositor: { uid: actualCustomer.uid }, folder_uid: folderUid as string }, include: { files: true, document_history: true, document_type: true, depositor: true, }, }; const documentList = await Documents.getInstance().get(query); setDocuments(documentList); setCustomer(actualCustomer); } getDocuments(); }, [folderUid]); const renderHeader = useCallback(() => { return (
{/* TODO Get name from userStore */} Bonjour {customer?.contact?.first_name.concat(" ", customer?.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.
); }, [customer]); return (
{renderHeader()}
{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. ({ document_type: DocumentType.hydrate({ name: "Document annexe", }), })} />
); }