Assign other user by admin account
This commit is contained in:
@@ -7,6 +7,8 @@ import Loading from "../../../../components/ui/Loading/Loading";
|
||||
import getUserById from "../../../../utils/users/getUserById";
|
||||
import styles from "./AssignUserBtn.module.css";
|
||||
import {AuthContext} from "../../../../contexts/Auth/AuthContext";
|
||||
import assignOtherUser from "../../../../utils/tasks/assignOtherUser";
|
||||
import unAssignOtherUser from "../../../../utils/tasks/unAssignOtherUser";
|
||||
|
||||
interface AssignUserBtnProps {
|
||||
taskId: string | number;
|
||||
@@ -50,8 +52,17 @@ export default function AssignUserBtn({ taskId }: AssignUserBtnProps): ReactNode
|
||||
})();
|
||||
}, []);
|
||||
|
||||
const handleAssign = async (user: User) => {
|
||||
const isUserAssigned = (u: User): boolean =>
|
||||
u.tasks.some(t => t.id === taskId);
|
||||
|
||||
const handleAssign = async (selectedUser: User) => {
|
||||
await assignOtherUser(taskId as number, selectedUser.id);
|
||||
setOpen(false);
|
||||
};
|
||||
|
||||
const handleUnassign = async (selectedUser: User) => {
|
||||
await unAssignOtherUser(taskId as number, selectedUser.id);
|
||||
setOpen(false);
|
||||
};
|
||||
|
||||
return <>
|
||||
@@ -65,9 +76,15 @@ export default function AssignUserBtn({ taskId }: AssignUserBtnProps): ReactNode
|
||||
{user.name} {user.lastname}
|
||||
</p>
|
||||
|
||||
<Button onClick={() => handleAssign(user)}>
|
||||
Assigner
|
||||
</Button>
|
||||
{isUserAssigned(user) ? (
|
||||
<Button variant={"danger"} onClick={() => handleUnassign(user)}>
|
||||
Désassigner
|
||||
</Button>
|
||||
) : (
|
||||
<Button onClick={() => handleAssign(user)}>
|
||||
Assigner
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
import fetchWrapper from "../fetchWrapper.js";
|
||||
import getXSRFToken from "../getXSRF.js";
|
||||
|
||||
export default async function assignOtherUser(taskId: number, userId: number): Promise<any> {
|
||||
const csrfToken = await getXSRFToken();
|
||||
|
||||
return fetchWrapper(
|
||||
`/api/events/task/assign/${userId}`,
|
||||
{task_id: taskId},
|
||||
"POST",
|
||||
{"X-XSRF-TOKEN": csrfToken}
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import fetchWrapper from "../fetchWrapper.js";
|
||||
import getXSRFToken from "../getXSRF.js";
|
||||
|
||||
export default async function unAssignOtherUser(taskId: number, userId: number): Promise<any> {
|
||||
const csrfToken = await getXSRFToken();
|
||||
|
||||
return fetchWrapper(
|
||||
`/api/events/task/unassign/${userId}`,
|
||||
{task_id: taskId},
|
||||
"POST",
|
||||
{"X-XSRF-TOKEN": csrfToken}
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user