import { useEffect, useState } from "react"; import { useNavigate, useParams } from "react-router-dom"; import { shortcutService, workspaceService } from "../services"; import { useAppSelector } from "../store"; import useLoading from "../hooks/useLoading"; import Icon from "../components/Icon"; import toastHelper from "../components/Toast"; import Header from "../components/Header"; import ShortcutListView from "../components/ShortcutListView"; import { unknownWorkspace } from "../store/modules/workspace"; import showCreateShortcutDialog from "../components/CreateShortcutDialog"; interface State { workspace: Workspace; } const WorkspaceDetail: React.FC = () => { const navigate = useNavigate(); const params = useParams(); const { shortcutList } = useAppSelector((state) => state.shortcut); const [state, setState] = useState({ workspace: unknownWorkspace, }); const loadingState = useLoading(); useEffect(() => { const workspace = workspaceService.getWorkspaceById(Number(params.workspaceId)); if (!workspace) { toastHelper.error("workspace not found"); return; } setState({ ...state, workspace, }); Promise.all([shortcutService.fetchWorkspaceShortcuts(workspace.id)]).finally(() => { loadingState.setFinish(); }); }, []); const handleBackToHome = () => { navigate("/"); }; return (
{loadingState.isLoading ? null : (
handleBackToHome()}> Home / Workspace: {state?.workspace.name}
Shortcut List
showCreateShortcutDialog(state.workspace.id)} > Create Shortcut
)}
); }; export default WorkspaceDetail;