import OfficeRoles from "@Front/Api/LeCoffreApi/Admin/OfficeRoles/OfficeRoles"; import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button"; import Form from "@Front/Components/DesignSystem/Form"; 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 DefaultRolesDashboard from "@Front/Components/LayoutTemplates/DefaultRoleDashboard"; import Module from "@Front/Config/Module"; import { Office, OfficeRole } from "le-coffre-resources/dist/Admin"; import { useRouter } from "next/router"; import { useCallback, useState } from "react"; import classes from "./classes.module.scss"; import JwtService from "@Front/Services/JwtService/JwtService"; type IProps = {}; export default function RolesCreate(props: IProps) { const [hasChanged, setHasChanged] = useState(false); const [isConfirmModalVisible, setIsConfirmModalVisible] = useState(false); const router = useRouter(); const onSubmitHandler = useCallback( async (e: React.FormEvent | null, values: { [key: string]: string }) => { try { const jwt = JwtService.getInstance().decodeJwt(); const role = await OfficeRoles.getInstance().post( OfficeRole.hydrate({ name: values["name"], office: Office.hydrate({ uid: jwt?.office_Id, }), }), ); router.push(Module.getInstance().get().modules.pages.Roles.pages.RolesInformations.props.path.replace("[uid]", role.uid!)); } catch (e) { console.error(e); } }, [router], ); const closeConfirmModal = useCallback(() => { setIsConfirmModalVisible(false); }, []); const onFieldChange = useCallback((name: string, field: any) => { setHasChanged(true); }, []); const redirect = useCallback(() => { router.push(Module.getInstance().get().modules.pages.Roles.props.path); }, [router]); const onCancel = useCallback(() => { if (hasChanged) { setIsConfirmModalVisible(true); } else { redirect(); } }, [hasChanged, redirect]); return (
Créer un rôle
Si vous quittez, toutes les modifications que vous avez effectuées ne seront pas enregistrées.
); }