Create document handling errors

This commit is contained in:
Maxime Lalo 2023-07-24 16:45:06 +02:00
parent 3c0bccf397
commit 10558c7062

View File

@ -6,15 +6,17 @@ import TextField from "@Front/Components/DesignSystem/Form/TextField";
import Typography, { ITypo } from "@Front/Components/DesignSystem/Typography";
import DefaultDocumentTypesDashboard from "@Front/Components/LayoutTemplates/DefaultDocumentTypesDashboard";
import Module from "@Front/Config/Module";
import { validateOrReject } from "class-validator";
import { validateOrReject, ValidationError } from "class-validator";
import { DocumentType, Office } from "le-coffre-resources/dist/Admin";
import { useRouter } from "next/router";
import { useCallback } from "react";
import { useCallback, useState } from "react";
import classes from "./classes.module.scss";
type IProps = {};
export default function DocumentTypesCreate(props: IProps) {
const [validationError, setValidationError] = useState<ValidationError[]>([]);
const router = useRouter();
const onSubmitHandler = useCallback(
async (e: React.FormEvent<HTMLFormElement> | null, values: { [key: string]: string }) => {
@ -25,6 +27,7 @@ export default function DocumentTypesCreate(props: IProps) {
uid: "6981326f-8a0a-4437-b15c-4cd5c4d80f6e",
}),
});
console.log(documentToCreate);
await validateOrReject(documentToCreate, { groups: ["createDocumentType"] });
const documentTypeCreated = await DocumentTypes.getInstance().post(documentToCreate);
@ -32,7 +35,9 @@ export default function DocumentTypesCreate(props: IProps) {
Module.getInstance().get().modules.pages.DocumentTypes.pages.Edit.props.path.replace("[uid]", documentTypeCreated.uid!),
);
} catch (e) {
console.log(e);
if (e instanceof Array) {
setValidationError(e);
}
}
},
[router],
@ -45,9 +50,21 @@ export default function DocumentTypesCreate(props: IProps) {
<Typography typo={ITypo.H1Bis}>Créer un nouveau document</Typography>
</div>
<Form onSubmit={onSubmitHandler} className={classes["form-container"]}>
<TextField name="name" placeholder="Nom du document" />
<TextAreaField name="private_description" placeholder="Description visible par les collaborateurs de l'office" />
<TextAreaField name="public_description" placeholder="Description visible par les clients de l'office" />
<TextField
name="name"
placeholder="Nom du document"
validationError={validationError.find((error) => error.property === "name")}
/>
<TextAreaField
name="private_description"
placeholder="Description visible par les collaborateurs de l'office"
validationError={validationError.find((error) => error.property === "private_description")}
/>
<TextAreaField
name="public_description"
placeholder="Description visible par les clients de l'office"
validationError={validationError.find((error) => error.property === "public_description")}
/>
<div className={classes["buttons-container"]}>
<Button variant={EButtonVariant.GHOST}>Annuler</Button>
<Button type="submit">Créer le document</Button>