From a52a6d9abdcedc8a1b71b737f89782a69a602dae Mon Sep 17 00:00:00 2001 From: Scott Bishel Date: Mon, 24 Apr 2023 14:46:16 -0600 Subject: [PATCH] Fixes for admins when LastBoardID doesn't exist (#22993) * fixes for admins when LastBoardID doesn't exist * lint fixes * Update webapp/boards/src/components/sidebar/sidebarCategory.tsx Co-authored-by: Caleb Roseland * after deletion, if no boards, send to team (template selector) --------- Co-authored-by: Caleb Roseland Co-authored-by: Mattermost Build --- .../src/components/sidebar/sidebarCategory.tsx | 13 +++++++++++++ webapp/boards/src/pages/boardPage/boardPage.tsx | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/webapp/boards/src/components/sidebar/sidebarCategory.tsx b/webapp/boards/src/components/sidebar/sidebarCategory.tsx index 5b54c8c7a9..734490c9ed 100644 --- a/webapp/boards/src/components/sidebar/sidebarCategory.tsx +++ b/webapp/boards/src/components/sidebar/sidebarCategory.tsx @@ -25,6 +25,7 @@ import CompassIcon from 'src/widgets/icons/compassIcon' import OptionsIcon from 'src/widgets/icons/options' import Menu from 'src/widgets/menu' import MenuWrapper from 'src/widgets/menuWrapper' +import {UserSettings} from 'src/userSettings' import './sidebarCategory.scss' import {Category, CategoryBoardMetadata, CategoryBoards} from 'src/store/sidebar' @@ -202,12 +203,24 @@ const SidebarCategory = (props: Props) => { setTimeout(() => { showBoard(props.boards[nextBoardId as number].id) }, 120) + } else { + setTimeout(() => { + const newPath = generatePath('/team/:teamId', {teamId: teamID,}) + history.push(newPath) + }, 120) } }, async () => { showBoard(deleteBoard.id) }, ) + if ( + UserSettings.lastBoardId && + UserSettings.lastBoardId[deleteBoard.teamId] == deleteBoard.id + ) { + UserSettings.setLastBoardID(deleteBoard.teamId, null) + UserSettings.setLastViewId(deleteBoard.id, null) + } }, [showBoard, deleteBoard, props.boards]) const updateCategory = useCallback(async (value: boolean) => { diff --git a/webapp/boards/src/pages/boardPage/boardPage.tsx b/webapp/boards/src/pages/boardPage/boardPage.tsx index 4f7fc321ba..1bce774cb7 100644 --- a/webapp/boards/src/pages/boardPage/boardPage.tsx +++ b/webapp/boards/src/pages/boardPage/boardPage.tsx @@ -186,7 +186,9 @@ const BoardPage = (props: Props): JSX.Element => { const joinBoard = async (myUser: IUser, boardTeamId: string, boardId: string, allowAdmin: boolean) => { const member = await octoClient.joinBoard(boardId, allowAdmin) if (!member) { - if (myUser.permissions?.find((s) => s === 'manage_system' || s === 'manage_team')) { + // if allowAdmin is true, then we failed to join the board + // as an admin, normally, this is deleted/missing board + if (!allowAdmin && myUser.permissions?.find((s) => s === 'manage_system' || s === 'manage_team')) { setShowJoinBoardDialog(true) return }