feat: добавлена возможность покинуть доску
fix: исправлена ошибка при добавлении участника в доску
This commit is contained in:
@@ -5,7 +5,7 @@ import {
|
|||||||
loadBoardDataAPI, updateBoardsAPI, deleteBoardsAPI,
|
loadBoardDataAPI, updateBoardsAPI, deleteBoardsAPI,
|
||||||
createTaskAPI, updateTaskAPI, deleteTaskAPI,
|
createTaskAPI, updateTaskAPI, deleteTaskAPI,
|
||||||
createCategoryAPI, updateCategoryAPI, deleteCategoryAPI,
|
createCategoryAPI, updateCategoryAPI, deleteCategoryAPI,
|
||||||
addMemberAPI, assignMemberAPI, unassignMemberAPI,
|
addMemberAPI, assignMemberAPI, unassignMemberAPI, deleteMemberAPI, quitMemberAPI
|
||||||
} from './BoardAPI';
|
} from './BoardAPI';
|
||||||
|
|
||||||
export const useBoardLogic = (id, setError, setInfo, setCategories, setLoading) => {
|
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) => {
|
const addMember = useCallback(async (username, boardId, modalAddMember) => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
try {
|
try {
|
||||||
await addMemberAPI( username, boardId );
|
await addMemberAPI( boardId, username );
|
||||||
await loadBoardData();
|
await loadBoardData();
|
||||||
modalAddMember();
|
modalAddMember();
|
||||||
} catch {
|
} catch {
|
||||||
@@ -195,11 +195,24 @@ export const useBoardLogic = (id, setError, setInfo, setCategories, setLoading)
|
|||||||
}, [loadBoardData, setLoading, setError]);
|
}, [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 {
|
return {
|
||||||
loadBoardData, checkOwner, editBoard, deleteBoards,
|
loadBoardData, checkOwner, editBoard, deleteBoards,
|
||||||
createTask, editTask, deleteTask,
|
createTask, editTask, deleteTask,
|
||||||
createCategory, editCategory, deleteCategory,
|
createCategory, editCategory, deleteCategory,
|
||||||
addMember, assignMember,
|
addMember, assignMember, quitMember,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -23,6 +23,7 @@ const KBBoard = () => {
|
|||||||
const [assignAction, setAssignAction] = useState(false);
|
const [assignAction, setAssignAction] = useState(false);
|
||||||
const [addMemb, setAddMemb] = useState(false);
|
const [addMemb, setAddMemb] = useState(false);
|
||||||
const [delBoards, setDelBoards] = useState(false);
|
const [delBoards, setDelBoards] = useState(false);
|
||||||
|
const [qtMember, setQtMember] = useState(false);
|
||||||
|
|
||||||
const [boardTitle, setBoardTitle] = useState('');
|
const [boardTitle, setBoardTitle] = useState('');
|
||||||
const [boardDescription, setBoardDescription] = useState('');
|
const [boardDescription, setBoardDescription] = useState('');
|
||||||
@@ -50,7 +51,8 @@ const KBBoard = () => {
|
|||||||
deleteTask,
|
deleteTask,
|
||||||
assignMember,
|
assignMember,
|
||||||
addMember,
|
addMember,
|
||||||
deleteBoards
|
deleteBoards,
|
||||||
|
quitMember
|
||||||
} = useBoardLogic(id, setError, setInfo, setCategories, setLoading);
|
} = useBoardLogic(id, setError, setInfo, setCategories, setLoading);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -109,6 +111,9 @@ const KBBoard = () => {
|
|||||||
setDelBoards(!delBoards);
|
setDelBoards(!delBoards);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const modalQuitMember = () => {
|
||||||
|
setQtMember(!qtMember);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const handleCreateCategory = async (e) => {
|
const handleCreateCategory = async (e) => {
|
||||||
@@ -152,7 +157,10 @@ const KBBoard = () => {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
await deleteBoards(id, modalDeleteBoards);
|
await deleteBoards(id, modalDeleteBoards);
|
||||||
};
|
};
|
||||||
|
const handleQuitMember = async (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
await quitMember(id, modalQuitMember);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -199,7 +207,7 @@ const KBBoard = () => {
|
|||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
<button onClick={null}>
|
<button onClick={modalQuitMember}>
|
||||||
Покинуть доску
|
Покинуть доску
|
||||||
</button>
|
</button>
|
||||||
</>
|
</>
|
||||||
@@ -238,6 +246,7 @@ const KBBoard = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
|
|
||||||
{categories.length < 10 ? (
|
{categories.length < 10 ? (
|
||||||
<div className="categori create">
|
<div className="categori create">
|
||||||
<div className="bib">
|
<div className="bib">
|
||||||
@@ -527,6 +536,27 @@ const KBBoard = () => {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</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>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user