From de83467c4577ea927022d7829ef50b58e08225c3 Mon Sep 17 00:00:00 2001 From: Steven Date: Sat, 17 Sep 2022 11:23:49 +0800 Subject: [PATCH] chore: update workspace selector --- web/src/components/Header.tsx | 64 ++++++++++++++++++++++++++----- web/src/pages/WorkspaceDetail.tsx | 10 +---- 2 files changed, 57 insertions(+), 17 deletions(-) diff --git a/web/src/components/Header.tsx b/web/src/components/Header.tsx index 4baf7f6..b3248ec 100644 --- a/web/src/components/Header.tsx +++ b/web/src/components/Header.tsx @@ -1,12 +1,17 @@ -import { Link, useNavigate } from "react-router-dom"; +import { Link, useNavigate, useParams } from "react-router-dom"; import { useAppSelector } from "../store"; import { userService } from "../services"; import Icon from "./Icon"; import Dropdown from "./common/Dropdown"; +import Only from "./common/OnlyWhen"; +import showCreateWorkspaceDialog from "./CreateWorkspaceDialog"; const Header: React.FC = () => { + const params = useParams(); const navigate = useNavigate(); const { user } = useAppSelector((state) => state.user); + const { workspaceList } = useAppSelector((state) => state.workspace); + const activedWorkspace = workspaceList.find((workspace) => workspace.name === params.workspaceName ?? ""); const handleSignOutButtonClick = async () => { await userService.doSignOut(); @@ -16,9 +21,50 @@ const Header: React.FC = () => { return (
- - Corgi - +
+ + Corgi + + 0 && activedWorkspace !== undefined}> + <> + / + + {activedWorkspace?.name} + + + } + actions={ + <> + {workspaceList.map((workspace) => { + return ( + + {workspace.name} + + + + + ); + })} +
+ + + } + actionsClassName="!w-48 !-left-4" + >
+ +
+
{user ? ( { <> - My information + My Account } - actionsClassName="!w-36" + actionsClassName="!w-40" > ) : ( navigate("/user/auth")}> diff --git a/web/src/pages/WorkspaceDetail.tsx b/web/src/pages/WorkspaceDetail.tsx index 1e8a93d..392ee44 100644 --- a/web/src/pages/WorkspaceDetail.tsx +++ b/web/src/pages/WorkspaceDetail.tsx @@ -33,22 +33,16 @@ const WorkspaceDetail: React.FC = () => { ...state, workspace, }); + loadingState.setLoading(); Promise.all([shortcutService.fetchWorkspaceShortcuts(workspace.id)]).finally(() => { loadingState.setFinish(); }); - }, []); + }, [params.workspaceName]); return (
-
- - Home - - / - Workspace: {state?.workspace.name} -
Shortcut List