feat: добавлена возможность покинуть доску

fix: исправлена ошибка при добавлении участника в доску
This commit is contained in:
Vladiysss
2026-03-07 19:12:56 +03:00
parent c52e46a5e9
commit 5ac938b9ef
2 changed files with 49 additions and 6 deletions

View File

@@ -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,
};
};

View File

@@ -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 = () => {
</>
) : (
<>
<button onClick={null}>
<button onClick={modalQuitMember}>
Покинуть доску
</button>
</>
@@ -238,6 +246,7 @@ const KBBoard = () => {
</div>
</div>
))}
{categories.length < 10 ? (
<div className="categori create">
<div className="bib">
@@ -527,6 +536,27 @@ const KBBoard = () => {
)}
</div>
)}
{qtMember && (
<div className="confirm-modal">
<div className="modal-content">
<div><h3>Покинуть доску</h3></div>
<form onSubmit={handleQuitMember}>
<label >Вы точно хотите удалить эту Канбан доску</label>
<button onClick={modalQuitMember} type='reset'>Отменить</button>
<button className="Important-button" type="submit" disabled={loading}>
{loading ? 'Удаление...' : 'Удалить'}
</button>
</form>
</div>
</div>
)}
</div>
</div>
);