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