From b5d1ed0ee76ea46781ba4778551f20301d02abeb Mon Sep 17 00:00:00 2001 From: Steven Date: Thu, 15 Sep 2022 22:00:40 +0800 Subject: [PATCH] chore: update router --- web/src/App.tsx | 6 ++--- web/src/components/CreateShortcutDialog.tsx | 6 ++--- web/src/components/CreateWorkspaceDialog.tsx | 4 +-- web/src/components/Header.tsx | 28 ++++++++++---------- web/src/components/ShortcutListView.tsx | 20 ++++++++------ web/src/components/WorkspaceListView.tsx | 13 +++------ web/src/components/common/Dropdown.tsx | 4 +-- web/src/less/base-dialog.less | 2 +- web/src/pages/Home.tsx | 4 +-- web/src/pages/WorkspaceDetail.tsx | 17 +++++------- web/src/services/workspaceService.ts | 10 +++++++ 11 files changed, 59 insertions(+), 55 deletions(-) diff --git a/web/src/App.tsx b/web/src/App.tsx index 7ddd805..800516f 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -33,7 +33,7 @@ function App() { userService.initialState().finally(() => { if (!userService.getState().user) { pageLoadingStatus.setFinish(); - navigate("/auth"); + navigate("/user/auth"); return; } @@ -47,9 +47,9 @@ function App() { } /> - } /> + } /> } /> - } /> + } /> } /> diff --git a/web/src/components/CreateShortcutDialog.tsx b/web/src/components/CreateShortcutDialog.tsx index 98a77ab..0b86867 100644 --- a/web/src/components/CreateShortcutDialog.tsx +++ b/web/src/components/CreateShortcutDialog.tsx @@ -90,16 +90,16 @@ const CreateShortcutDialog: React.FC = (props: Props) => { } else { await shortcutService.createShortcut(state.shortcutCreate); } + destroy(); } catch (error: any) { console.error(error); - toastHelper.error(error.response.data.message); + toastHelper.error(error.response.data.error || error.response.data.message); } - destroy(); }; return ( <> -
+

{shortcutId ? "Edit Shortcut" : "Create Shortcut"}

+ } actions={ <> - navigate(`/user/${user?.id}`)} + My information - - + } actionsClassName="!w-36" > ) : ( - navigate("/auth")}> + navigate("/user/auth")}> Sign in )} diff --git a/web/src/components/ShortcutListView.tsx b/web/src/components/ShortcutListView.tsx index 620a79f..6e08156 100644 --- a/web/src/components/ShortcutListView.tsx +++ b/web/src/components/ShortcutListView.tsx @@ -1,5 +1,6 @@ import copy from "copy-to-clipboard"; import { shortcutService, workspaceService } from "../services"; +import { useAppSelector } from "../store"; import Dropdown from "./common/Dropdown"; import showCreateShortcutDialog from "./CreateShortcutDialog"; import Icon from "./Icon"; @@ -11,6 +12,7 @@ interface Props { const ShortcutListView: React.FC = (props: Props) => { const { workspaceId, shortcutList } = props; + const { user } = useAppSelector((state) => state.user); const handleCopyButtonClick = (shortcut: Shortcut) => { const workspace = workspaceService.getWorkspaceById(workspaceId); @@ -27,8 +29,8 @@ const ShortcutListView: React.FC = (props: Props) => { return (
- {shortcut.name} - {shortcut.description} + {shortcut.name} + ({shortcut.description})
= (props: Props) => { - showCreateShortcutDialog(workspaceId, shortcut.id)} > Edit - - + } actionsClassName="!w-24" diff --git a/web/src/components/WorkspaceListView.tsx b/web/src/components/WorkspaceListView.tsx index 79269ea..0d7b5aa 100644 --- a/web/src/components/WorkspaceListView.tsx +++ b/web/src/components/WorkspaceListView.tsx @@ -1,4 +1,4 @@ -import { useNavigate } from "react-router-dom"; +import { Link } from "react-router-dom"; import { workspaceService } from "../services"; import Dropdown from "./common/Dropdown"; import showCreateWorkspaceDialog from "./CreateWorkspaceDialog"; @@ -9,11 +9,6 @@ interface Props { const WorkspaceListView: React.FC = (props: Props) => { const { workspaceList } = props; - const navigate = useNavigate(); - - const gotoWorkspaceDetailPage = (workspace: Workspace) => { - navigate(`/workspace/${workspace.id}`); - }; const handleDeleteWorkspaceButtonClick = (workspace: Workspace) => { workspaceService.deleteWorkspaceById(workspace.id); @@ -25,10 +20,10 @@ const WorkspaceListView: React.FC = (props: Props) => { return (
- gotoWorkspaceDetailPage(workspace)}> + {workspace.name} - - {workspace.description} + + {workspace.description}
= (props: Props) => { {trigger ? ( trigger ) : ( - + )}
.dialog-container { - @apply flex flex-col justify-start items-start bg-white p-4 rounded-lg; + @apply flex flex-col justify-start items-start bg-white p-4 sm:px-6 rounded-lg; > .dialog-header-container { @apply flex flex-row justify-between items-center w-full mb-4; diff --git a/web/src/pages/Home.tsx b/web/src/pages/Home.tsx index 5d91142..1e17247 100644 --- a/web/src/pages/Home.tsx +++ b/web/src/pages/Home.tsx @@ -23,12 +23,12 @@ const Home: React.FC = () => {
Workspace List -
showCreateWorkspaceDialog()} > Create Workspace -
+
{loadingState.isLoading ? (
diff --git a/web/src/pages/WorkspaceDetail.tsx b/web/src/pages/WorkspaceDetail.tsx index 3b065a2..1e8a93d 100644 --- a/web/src/pages/WorkspaceDetail.tsx +++ b/web/src/pages/WorkspaceDetail.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react"; -import { useNavigate, useParams } from "react-router-dom"; +import { Link, useParams } from "react-router-dom"; import { shortcutService, workspaceService } from "../services"; import { useAppSelector } from "../store"; import useLoading from "../hooks/useLoading"; @@ -15,7 +15,6 @@ interface State { } const WorkspaceDetail: React.FC = () => { - const navigate = useNavigate(); const params = useParams(); const { shortcutList } = useAppSelector((state) => state.shortcut); const [state, setState] = useState({ @@ -24,7 +23,7 @@ const WorkspaceDetail: React.FC = () => { const loadingState = useLoading(); useEffect(() => { - const workspace = workspaceService.getWorkspaceById(Number(params.workspaceId)); + const workspace = workspaceService.getWorkspaceByName(params.workspaceName ?? ""); if (!workspace) { toastHelper.error("workspace not found"); return; @@ -39,29 +38,25 @@ const WorkspaceDetail: React.FC = () => { }); }, []); - const handleBackToHome = () => { - navigate("/"); - }; - return (
- handleBackToHome()}> + Home - + / Workspace: {state?.workspace.name}
Shortcut List -
showCreateShortcutDialog(state.workspace.id)} > Create Shortcut -
+
{loadingState.isLoading ? (
diff --git a/web/src/services/workspaceService.ts b/web/src/services/workspaceService.ts index 6afca53..6b8c207 100644 --- a/web/src/services/workspaceService.ts +++ b/web/src/services/workspaceService.ts @@ -22,6 +22,16 @@ const workspaceService = { return workspaces; }, + getWorkspaceByName: (workspaceName: string) => { + const workspaceList = workspaceService.getState().workspaceList; + for (const workspace of workspaceList) { + if (workspace.name === workspaceName) { + return workspace; + } + } + return undefined; + }, + getWorkspaceById: (id: WorkspaceId) => { const workspaceList = workspaceService.getState().workspaceList; for (const workspace of workspaceList) {