From d3078696338b14d83af5566e87873dba9855a49b Mon Sep 17 00:00:00 2001 From: Maxime Lalo Date: Tue, 25 Jul 2023 15:27:10 +0200 Subject: [PATCH] :sparkles: Validation popup on rules modifying --- .../CollaboratorInformations/index.tsx | 1 + .../DeedTypes/DeedTypesInformations/index.tsx | 6 +- .../Layouts/Roles/RolesInformations/index.tsx | 56 +++++++++++++------ 3 files changed, 44 insertions(+), 19 deletions(-) diff --git a/src/front/Components/Layouts/Collaborators/CollaboratorInformations/index.tsx b/src/front/Components/Layouts/Collaborators/CollaboratorInformations/index.tsx index 958ea2dc..4c61c577 100644 --- a/src/front/Components/Layouts/Collaborators/CollaboratorInformations/index.tsx +++ b/src/front/Components/Layouts/Collaborators/CollaboratorInformations/index.tsx @@ -163,6 +163,7 @@ export default function CollaboratorInformations(props: IProps) { label: "Nommer administrateur de l'office", }} toolTip="blabla" + checked={userSelected?.office_role?.name! === "admin"} /> diff --git a/src/front/Components/Layouts/DeedTypes/DeedTypesInformations/index.tsx b/src/front/Components/Layouts/DeedTypes/DeedTypesInformations/index.tsx index 8494cdc0..46347524 100644 --- a/src/front/Components/Layouts/DeedTypes/DeedTypesInformations/index.tsx +++ b/src/front/Components/Layouts/DeedTypes/DeedTypesInformations/index.tsx @@ -158,7 +158,7 @@ export default function DeedTypesInformations(props: IProps) {
- Êtes-vous sûr de vouloir archiver ce type d'acte ? + Êtes-vous sûr de vouloir supprimer ce type d'acte ?
diff --git a/src/front/Components/Layouts/Roles/RolesInformations/index.tsx b/src/front/Components/Layouts/Roles/RolesInformations/index.tsx index 7d8bca16..9d6674b9 100644 --- a/src/front/Components/Layouts/Roles/RolesInformations/index.tsx +++ b/src/front/Components/Layouts/Roles/RolesInformations/index.tsx @@ -3,11 +3,13 @@ import Rules from "@Front/Api/LeCoffreApi/Admin/Rules/Rules"; import Button from "@Front/Components/DesignSystem/Button"; import CheckBox from "@Front/Components/DesignSystem/CheckBox"; import Form from "@Front/Components/DesignSystem/Form"; +import Confirm from "@Front/Components/DesignSystem/Modal/Confirm"; import Typography, { ITypo } from "@Front/Components/DesignSystem/Typography"; import DefaultRoleDashboard from "@Front/Components/LayoutTemplates/DefaultRoleDashboard"; import { Role, Rule } from "le-coffre-resources/dist/Admin"; import { useRouter } from "next/router"; import { useCallback, useEffect, useState } from "react"; +import React from "react"; import classes from "./classes.module.scss"; @@ -22,6 +24,17 @@ export default function RolesInformations(props: IProps) { const [roleSelected, setRoleSelected] = useState(null); const [rulesCheckboxes, setRulesCheckboxes] = useState([]); const [selectAll, setSelectAll] = useState(false); + + const [isConfirmModalOpened, setIsConfirmModalOpened] = useState(false); + + const openConfirmModal = useCallback(() => { + setIsConfirmModalOpened(true); + }, []); + + const closeConfirmModal = useCallback(() => { + setIsConfirmModalOpened(false); + }, []); + useEffect(() => { setSelectAll(false); async function getUser() { @@ -64,20 +77,17 @@ export default function RolesInformations(props: IProps) { [rulesCheckboxes], ); - const onSubmitHandler = useCallback( - async (e: React.FormEvent | null, values: { [key: string]: string }) => { - if (!roleSelected || !roleSelected.uid) return; - const rules = rulesCheckboxes.filter((rule) => rule.checked)?.map((rule) => Rule.hydrate(rule)); - const role = await Roles.getInstance().put(roleSelected.uid, { - rules, - }); - if (!role) return; - setRoleSelected(role); - if (!role.rules) return; - setRulesCheckboxes(role.rules.map((rule) => ({ ...rule, checked: false }))); - }, - [roleSelected, rulesCheckboxes], - ); + const modifyRules = useCallback(async () => { + if (!roleSelected || !roleSelected.uid) return; + const rules = rulesCheckboxes.filter((rule) => rule.checked)?.map((rule) => Rule.hydrate(rule)); + const role = await Roles.getInstance().put(roleSelected.uid, { + rules, + }); + if (!role) return; + setRoleSelected(role); + if (!role.rules) return; + setRulesCheckboxes(role.rules.map((rule) => ({ ...rule, checked: false }))); + }, [roleSelected, rulesCheckboxes]); return ( @@ -103,7 +113,7 @@ export default function RolesInformations(props: IProps) { checked={selectAll} /> -
+
{rulesCheckboxes.map((rule) => (
@@ -112,10 +122,24 @@ export default function RolesInformations(props: IProps) { ))}
- +
+ +
+ + En enregistrant vous modifier les droits des rôles. + +
+
);