From 4db1e6bb06bdad2856614054ac363cb82f787e39 Mon Sep 17 00:00:00 2001 From: Maxime Lalo Date: Thu, 28 Sep 2023 13:26:03 +0200 Subject: [PATCH] :bug: Fixing office page --- package-lock.json | 2 +- .../Offices/OfficeInformations/index.tsx | 147 ++++++++++-------- 2 files changed, 79 insertions(+), 70 deletions(-) diff --git a/package-lock.json b/package-lock.json index 202f4117..21bf7bf5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "eslint-config-next": "13.2.4", "form-data": "^4.0.0", "jwt-decode": "^3.1.2", - "le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.83", + "le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.84", "next": "13.2.4", "prettier": "^2.8.7", "react": "18.2.0", diff --git a/src/front/Components/Layouts/Offices/OfficeInformations/index.tsx b/src/front/Components/Layouts/Offices/OfficeInformations/index.tsx index eec32c9d..7fc218c5 100644 --- a/src/front/Components/Layouts/Offices/OfficeInformations/index.tsx +++ b/src/front/Components/Layouts/Offices/OfficeInformations/index.tsx @@ -3,7 +3,7 @@ import Typography, { ITypo, ITypoColor } from "@Front/Components/DesignSystem/Ty import DefaultOfficeDashboard from "@Front/Components/LayoutTemplates/DefaultOfficeDashboard"; import User, { Office } from "le-coffre-resources/dist/SuperAdmin"; import { useRouter } from "next/router"; -import { useEffect, useState } from "react"; +import { useCallback, useEffect, useState } from "react"; import classes from "./classes.module.scss"; @@ -13,6 +13,8 @@ export default function OfficeInformations(props: IProps) { let { officeUid } = router.query; const [officeSelected, setOfficeSelected] = useState(null); + const [adminUsers, setAdminUsers] = useState([]); + const [collaboratorUsers, setCollaboratorUsers] = useState([]); useEffect(() => { async function getOffice() { @@ -31,54 +33,87 @@ export default function OfficeInformations(props: IProps) { }); if (!office) return; setOfficeSelected(office); + + const adminUsers = office.users?.filter((user) => { + if (user.office_role && user.office_role.name === "admin") { + return true; + } + if (!user.office_role && user.role?.name === "admin") { + return true; + } + if (!user.office_role && user.role?.name === "super-admin") { + return true; + } + return false; + }); + + const collaboratorUsers = office.users?.filter((user) => { + if (user.office_role && user.office_role.name === "admin") { + return false; + } + if (!user.office_role && user.role?.name === "admin") { + return false; + } + if (!user.office_role && user.role?.name === "super-admin") { + return false; + } + return true; + }); + + setAdminUsers(adminUsers!); + setCollaboratorUsers(collaboratorUsers!); } getOffice(); }, [officeUid]); - const renderUser = (user: User) => ( - <> -
- {user.contact?.last_name} - {user.contact?.first_name} - {user.contact?.email} - {user.contact?.phone_number} - {user.office_role ? user.office_role?.name : user.role?.name} -
-
-
- - Nom - + const renderUser = useCallback( + (user: User) => ( + <> +
{user.contact?.last_name} -
-
- - Prénom - {user.contact?.first_name} -
-
- - E-mail - {user.contact?.email} -
-
- - Téléphone - {user.contact?.phone_number} + {user.office_role ? user.office_role?.name : "Utilisateur restreint"}
-
- - Rôle - - {user.office_role ? user.office_role?.name : user.role?.name} +
+
+ + Nom + + {user.contact?.last_name} +
+
+ + Prénom + + {user.contact?.first_name} +
+
+ + E-mail + + {user.contact?.email} +
+
+ + Téléphone + + {user.contact?.phone_number} +
+
+ + Rôle + + {user.office_role ? user.office_role?.name : user.role?.name} +
-
- + + ), + [officeUid], ); + return (
@@ -134,22 +169,9 @@ export default function OfficeInformations(props: IProps) { Rôle
- {officeSelected?.users - ?.filter((user) => { - if (user.office_role && user.office_role.name === "admin") { - return true; - } - if (!user.office_role && user.role?.name === "admin") { - return true; - } - if (!user.office_role && user.role?.name === "super-admin") { - return true; - } - return false; - }) - .map((user) => { - return renderUser(user); - })} + {adminUsers.map((user) => { + return renderUser(user); + })}
@@ -174,22 +196,9 @@ export default function OfficeInformations(props: IProps) { Rôle
- {officeSelected?.users - ?.filter((user) => { - if (user.office_role && user.office_role.name === "admin") { - return false; - } - if (!user.office_role && user.role?.name === "admin") { - return false; - } - if (!user.office_role && user.role?.name === "super-admin") { - return false; - } - return true; - }) - .map((user) => { - return renderUser(user); - })} + {collaboratorUsers.map((user) => { + return renderUser(user); + })}