import Offices from "@Front/Api/LeCoffreApi/SuperAdmin/Offices/Offices"; import Typography, { ITypo, ITypoColor } from "@Front/Components/DesignSystem/Typography"; import DefaultOfficeDashboard from "@Front/Components/LayoutTemplates/DefaultOfficeDashboard"; import User, { Office } from "le-coffre-resources/dist/SuperAdmin"; import { useRouter } from "next/router"; import { useCallback, useEffect, useState } from "react"; import classes from "./classes.module.scss"; type IProps = {}; export default function OfficeInformations(props: IProps) { const router = useRouter(); let { officeUid } = router.query; const [officeSelected, setOfficeSelected] = useState(null); const [adminUsers, setAdminUsers] = useState([]); const [collaboratorUsers, setCollaboratorUsers] = useState([]); useEffect(() => { async function getOffice() { if (!officeUid) return; const office = await Offices.getInstance().getByUid(officeUid as string, { q: { address: true, users: { include: { role: true, office_role: true, contact: true, }, }, }, }); 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 = useCallback( (user: User) => ( <>
{user.contact?.last_name} {user.contact?.first_name} {user.contact?.email} {user.contact?.phone_number} {user.office_role ? user.office_role?.name : "Utilisateur restreint"}
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 (
Office {officeSelected?.crpcen + " - " + officeSelected?.name}
Office active
CRPCEN {officeSelected?.crpcen}
Dénomination {officeSelected?.name}
Addresse {officeSelected?.address?.address} - {officeSelected?.address?.city} {officeSelected?.address?.zip_code}
Administrateurs
Nom Prénom E-mail Téléphone Rôle
{adminUsers.map((user) => { return renderUser(user); })}
Collaborateurs
Nom Prénom E-mail Téléphone Rôle
{collaboratorUsers.map((user) => { return renderUser(user); })}
); }