diff --git a/src/KBBoard/BoardLogic.js b/src/KBBoard/BoardLogic.js index 43ade72..ee2c5c0 100644 --- a/src/KBBoard/BoardLogic.js +++ b/src/KBBoard/BoardLogic.js @@ -5,7 +5,7 @@ import { loadBoardDataAPI, updateBoardsAPI, deleteBoardsAPI, createTaskAPI, updateTaskAPI, deleteTaskAPI, createCategoryAPI, updateCategoryAPI, deleteCategoryAPI, - addMemberAPI, assignMemberAPI, unassignMemberAPI, + addMemberAPI, assignMemberAPI, unassignMemberAPI, deleteMemberAPI, quitMemberAPI } from './BoardAPI'; export const useBoardLogic = (id, setError, setInfo, setCategories, setLoading) => { @@ -167,7 +167,7 @@ export const useBoardLogic = (id, setError, setInfo, setCategories, setLoading) const addMember = useCallback(async (username, boardId, modalAddMember) => { setLoading(true); try { - await addMemberAPI( username, boardId ); + await addMemberAPI( boardId, username ); await loadBoardData(); modalAddMember(); } catch { @@ -195,11 +195,24 @@ export const useBoardLogic = (id, setError, setInfo, setCategories, setLoading) }, [loadBoardData, setLoading, setError]); + const quitMember = useCallback(async (boardId, modalQuitMember ) => { + setLoading(true); + try { + setLoading(true); + await quitMemberAPI( boardId ); + await loadBoardData(); + modalQuitMember(); + } catch { + setError('Ошибка'); + } finally{ + setLoading(false); + } + }, [loadBoardData, setLoading, setError, navigate]); return { loadBoardData, checkOwner, editBoard, deleteBoards, createTask, editTask, deleteTask, createCategory, editCategory, deleteCategory, - addMember, assignMember, + addMember, assignMember, quitMember, }; }; \ No newline at end of file diff --git a/src/KBBoard/KBBoard.js b/src/KBBoard/KBBoard.js index 6a8699f..479dd21 100644 --- a/src/KBBoard/KBBoard.js +++ b/src/KBBoard/KBBoard.js @@ -23,6 +23,7 @@ const KBBoard = () => { const [assignAction, setAssignAction] = useState(false); const [addMemb, setAddMemb] = useState(false); const [delBoards, setDelBoards] = useState(false); + const [qtMember, setQtMember] = useState(false); const [boardTitle, setBoardTitle] = useState(''); const [boardDescription, setBoardDescription] = useState(''); @@ -50,7 +51,8 @@ const KBBoard = () => { deleteTask, assignMember, addMember, - deleteBoards + deleteBoards, + quitMember } = useBoardLogic(id, setError, setInfo, setCategories, setLoading); useEffect(() => { @@ -109,6 +111,9 @@ const KBBoard = () => { setDelBoards(!delBoards); } + const modalQuitMember = () => { + setQtMember(!qtMember); + } const handleCreateCategory = async (e) => { @@ -152,7 +157,10 @@ const KBBoard = () => { e.preventDefault(); await deleteBoards(id, modalDeleteBoards); }; - + const handleQuitMember = async (e) => { + e.preventDefault(); + await quitMember(id, modalQuitMember); + }; return ( @@ -199,7 +207,7 @@ const KBBoard = () => { ) : ( <> - @@ -238,6 +246,7 @@ const KBBoard = () => { ))} + {categories.length < 10 ? (
@@ -527,6 +536,27 @@ const KBBoard = () => { )}
)} + + {qtMember && ( +
+
+

Покинуть доску

+
+ + + +
+
+
+ )} + + + + + +
);