"use client"; import { UserIcon, Building, X } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Card, CardContent } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Role, User } from "@/types/types"; import { useParams } from "next/navigation"; import { useApi } from "@/hooks/use-api"; import { useState } from "react"; import request from "@/lib/request"; import IUser from "@/interfaces/IUser"; import hasPermissions from "@/lib/hasPermissions"; export default function UserDetailsPage({ user }: { user: IUser }) { const { uuid } = useParams<{ uuid: string }>(); const _user = useApi(`/users/${uuid}`, {}, true); const availableRoles = useApi("/roles", {}, true); availableRoles.data ??= []; const [selectedRole, setSelectedRole] = useState(null); // const [selectedOrg, setSelectedOrg] = useState(""); const addRole = async (role: Role) => { const res = await request( `/users/${_user.data?.userId}/roles/${role.id}/add`, { method: "PATCH", requiresAuth: true }, ); if (res.status === "Success") { setSelectedRole(null); _user.mutate(); } }; const removeRole = async (role: Role) => { const res = await request( `/users/${_user.data?.userId}/roles/${role.id}/remove`, { method: "PATCH", requiresAuth: true }, ); if (res.status === "Success") _user.mutate(); }; const addOrganization = () => { // if (selectedOrg && !user.organizations.includes(selectedOrg)) { // setUser((prevUser) => ({ // ...prevUser, // organizations: [...prevUser.organizations, selectedOrg], // })); // setSelectedOrg(""); // } }; const removeOrganization = (orgToRemove: string) => { // setUser((prevUser) => ({ // ...prevUser, // organizations: prevUser.organizations.filter( // (org) => org !== orgToRemove, // ), // })); }; if (!_user.data || !_user.success) return

Error

; return (

{_user.data.firstname} {_user.data.lastname}

{_user.data.email}

Rôles

{_user.data.roles?.map((role) => ( {role.name} {hasPermissions(user.roles, { users: ["update"], }) && ( )} ))}
{hasPermissions(user.roles, { users: ["update"], }) && (
)}
{/*

Organizations

{user.data.organizations.map((org) => ( {org} ))}
*/}
); }