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 getUserById from "../../../../utils/users/getUserById";
|
||||||
import styles from "./AssignUserBtn.module.css";
|
import styles from "./AssignUserBtn.module.css";
|
||||||
import {AuthContext} from "../../../../contexts/Auth/AuthContext";
|
import {AuthContext} from "../../../../contexts/Auth/AuthContext";
|
||||||
|
import assignOtherUser from "../../../../utils/tasks/assignOtherUser";
|
||||||
|
import unAssignOtherUser from "../../../../utils/tasks/unAssignOtherUser";
|
||||||
|
|
||||||
interface AssignUserBtnProps {
|
interface AssignUserBtnProps {
|
||||||
taskId: string | number;
|
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 <>
|
return <>
|
||||||
@@ -65,9 +76,15 @@ export default function AssignUserBtn({ taskId }: AssignUserBtnProps): ReactNode
|
|||||||
{user.name} {user.lastname}
|
{user.name} {user.lastname}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
{isUserAssigned(user) ? (
|
||||||
|
<Button variant={"danger"} onClick={() => handleUnassign(user)}>
|
||||||
|
Désassigner
|
||||||
|
</Button>
|
||||||
|
) : (
|
||||||
<Button onClick={() => handleAssign(user)}>
|
<Button onClick={() => handleAssign(user)}>
|
||||||
Assigner
|
Assigner
|
||||||
</Button>
|
</Button>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</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