From af66c5bcae0b990d0e8a883571b4d9d29e828233 Mon Sep 17 00:00:00 2001 From: Maxime Lalo Date: Thu, 27 Apr 2023 12:16:56 +0200 Subject: [PATCH] :bug: Autofill update client --- .../DesignSystem/FolderList/index.tsx | 1 - .../Form/Elements/InputField/index.tsx | 7 +++ .../Folder/FolderInformation/index.tsx | 2 +- .../Layouts/Folder/UpdateClient/index.tsx | 63 +++++++++++++------ 4 files changed, 51 insertions(+), 22 deletions(-) diff --git a/src/front/Components/DesignSystem/FolderList/index.tsx b/src/front/Components/DesignSystem/FolderList/index.tsx index d208c2aa..cbb20bec 100644 --- a/src/front/Components/DesignSystem/FolderList/index.tsx +++ b/src/front/Components/DesignSystem/FolderList/index.tsx @@ -29,7 +29,6 @@ class FolderListClass extends React.Component {
{this.props.folders.sort((folder) => { const pendingDocuments = folder.documents!.filter((document) => document.document_status === "PENDING"); - console.log(pendingDocuments.length); return pendingDocuments.length >= 1 ? -1 : 1; }).map((folder) => { return ( diff --git a/src/front/Components/DesignSystem/Form/Elements/InputField/index.tsx b/src/front/Components/DesignSystem/Form/Elements/InputField/index.tsx index 76e79771..d30dac43 100644 --- a/src/front/Components/DesignSystem/Form/Elements/InputField/index.tsx +++ b/src/front/Components/DesignSystem/Form/Elements/InputField/index.tsx @@ -66,6 +66,7 @@ export default class InputField extends BaseField { className={ this.props.className ? [classes["input"], classes[this.props.className]].join(" ") : classes["input"] } + value={value} />
{this.props.fakeplaceholder}
@@ -74,6 +75,12 @@ export default class InputField extends BaseField { } } + public override componentDidMount() { + this.setState({ + value: this.props.defaultValue ?? "", + }) + } + // We filter the props we'll pass to the primitive input as they're useless for it // It also avoids the console warning because of passing useless props to a primitive DOM element private getHtmlAttributes() { diff --git a/src/front/Components/Layouts/Folder/FolderInformation/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/index.tsx index ccd9eb62..40ec666a 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/index.tsx @@ -66,7 +66,7 @@ class FolderInformationClass extends BasePage {
- +
{this.doesFolderHaveCustomer() && } diff --git a/src/front/Components/Layouts/Folder/UpdateClient/index.tsx b/src/front/Components/Layouts/Folder/UpdateClient/index.tsx index 08981795..f7ce75fb 100644 --- a/src/front/Components/Layouts/Folder/UpdateClient/index.tsx +++ b/src/front/Components/Layouts/Folder/UpdateClient/index.tsx @@ -1,20 +1,28 @@ +import "reflect-metadata"; + import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button"; import Form from "@Front/Components/DesignSystem/Form"; import InputField from "@Front/Components/DesignSystem/Form/Elements/InputField"; +import Confirm from "@Front/Components/DesignSystem/Modal/Confirm"; import Typography, { ITypo } from "@Front/Components/DesignSystem/Typography"; import BackArrow from "@Front/Components/Elements/BackArrow"; +import { folders } from "@Front/Components/Layouts/DesignSystem/dummyData"; import DefaultNotaryDashboard, { IDashBoardFolder } from "@Front/Components/LayoutTemplates/DefaultNotaryDashboard"; -import { useRouter } from "next/router"; +import Module from "@Front/Config/Module"; +import { Contact } from "le-coffre-resources/dist/Customer"; +import Link from "next/link"; +import { NextRouter, useRouter } from "next/router"; +import { ChangeEvent } from "react"; import BasePage from "../../Base"; import classes from "./classes.module.scss"; -import Link from "next/link"; -import { ChangeEvent } from "react"; -import Confirm from "@Front/Components/DesignSystem/Modal/Confirm"; -import Module from "@Front/Config/Module"; -type IProps = { +type IProps = {}; + +type IPropsClass = IProps & { selectedFolderUid: string; + router: NextRouter; + client: Contact | null; }; type IState = { selectedFolder: IDashBoardFolder | null; @@ -25,8 +33,8 @@ type IState = { isOpenLeavingModal: boolean; doesInputHaveValues: boolean; }; -class UpdateClientClass extends BasePage { - constructor(props: IProps) { +class UpdateClientClass extends BasePage { + constructor(props: IPropsClass) { super(props); this.state = { selectedFolder: null, @@ -44,34 +52,38 @@ class UpdateClientClass extends BasePage { this.onChangePhoneNumberInput = this.onChangePhoneNumberInput.bind(this); this.openLeavingModal = this.openLeavingModal.bind(this); this.closeLeavingModal = this.closeLeavingModal.bind(this); + this.leavePage = this.leavePage.bind(this); } + + private backwardPath = Module.getInstance() + .get() + .modules.pages.Folder.pages.FolderInformation.props.path.replace("[folderUid]", this.props.selectedFolderUid); + public override render(): JSX.Element { - const backwardPath = Module.getInstance() - .get() - .modules.pages.Folder.pages.FolderInformation.props.path.replace("[folderUid]", this.props.selectedFolderUid); return (
- +
Modifier les informations du client
- - - + + +
{!this.doesInputsHaveValues() ? ( - + ) : ( @@ -89,13 +101,18 @@ class UpdateClientClass extends BasePage { header={"Êtes-vous sur de vouloir quitter sans enregistrer ?"} cancelText={"Annuler"} confirmText={"Quitter"} - cancelPath={backwardPath}> + onAccept={this.leavePage}> Si vous quittez, toutes les modifications que vous avez effectuées ne seront pas enregistrées.{" "}
); } + + private leavePage() { + this.props.router.push(this.backwardPath); + } + private openLeavingModal(): void { this.setState({ isOpenLeavingModal: true }); } @@ -132,9 +149,15 @@ class UpdateClientClass extends BasePage { } } -export default function UpdateClient() { +export default function UpdateClient(props: IProps) { const router = useRouter(); - let { folderUid } = router.query; + let { folderUid, clientUid } = router.query; folderUid = folderUid as string; - return ; + + let client = null; + const folder = folders.find((folder) => folder.uid === folderUid) ?? null; + if (folder && folder.office_folder_has_customers) { + client = folder.office_folder_has_customers.find((client) => client.customer.contact.uid === clientUid) ?? null; + } + return ; }