From fd2a9573e2e2199ba200a6c41ec365aca543ae08 Mon Sep 17 00:00:00 2001 From: Vincent Alamelle Date: Wed, 3 May 2023 13:14:56 +0200 Subject: [PATCH] Feature update folder description --- .../Folder/UpdateFolderDescription/index.tsx | 64 ++++++++++++------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/src/front/Components/Layouts/Folder/UpdateFolderDescription/index.tsx b/src/front/Components/Layouts/Folder/UpdateFolderDescription/index.tsx index 54568d25..33e8fa64 100644 --- a/src/front/Components/Layouts/Folder/UpdateFolderDescription/index.tsx +++ b/src/front/Components/Layouts/Folder/UpdateFolderDescription/index.tsx @@ -1,50 +1,58 @@ +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 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 Module from "@Front/Config/Module"; import Link from "next/link"; -import { useRouter } from "next/router"; +import { NextRouter, useRouter } from "next/router"; import BasePage from "../../Base"; import classes from "./classes.module.scss"; +import Folders from "@Front/Api/LeCoffreApi/SuperAdmin/Folders/Folders"; -type IProps = { +type IProps = {}; + +type IPropsClass = IProps & { + folderUid: string; + router: NextRouter; +}; + +type IState = { folder: IDashBoardFolder | null; }; -type IState = { - selectedFolder: IDashBoardFolder | null; -}; -class UpdateFolderDescriptionClass extends BasePage { - constructor(props: IProps) { +class UpdateFolderDescriptionClass extends BasePage { + private backwardPath = Module.getInstance().get().modules.pages.Folder.pages.FolderInformation.props.path.replace("[folderUid]", this.props.folderUid); + constructor(props: IPropsClass) { super(props); this.state = { - selectedFolder: null, + folder: null, }; - this.onSelectedFolder = this.onSelectedFolder.bind(this); + this.onFormSubmit = this.onFormSubmit.bind(this); } public override render(): JSX.Element { - const backwardPath = Module.getInstance() - .get() - .modules.pages.Folder.pages.FolderInformation.props.path.replace("[folderUid]", this.props.folder?.uid ?? ""); return ( - +
- +
Modifier la note du dossier -
+
- +
- + @@ -55,15 +63,25 @@ class UpdateFolderDescriptionClass extends BasePage { ); } - private onSelectedFolder(folder: IDashBoardFolder): void { - this.setState({ selectedFolder: folder }); + public override async componentDidMount() { + const folder = await Folders.getInstance().getByUid(this.props.folderUid); + this.setState({ folder }); + } + + private async onFormSubmit(e: React.FormEvent | null, values: { [key: string]: string }) { + try { + await Folders.getInstance().put(this.props.folderUid, values); + this.props.router.push(this.backwardPath); + } catch (error) { + console.error(error) + } } } -export default function UpdateFolderDescription() { +export default function UpdateFolderDescription(props: IProps) { const router = useRouter(); let { folderUid } = router.query; folderUid = folderUid as string; - const folder = folders.find((folder) => folder.uid === folderUid) ?? null; - return ; + + return ; }