From f00c64451590e79c00715f7dbf50a1e0fee99bce Mon Sep 17 00:00:00 2001 From: lee0jae330 Date: Wed, 15 Jan 2025 00:21:06 +0900 Subject: [PATCH 01/10] =?UTF-8?q?=F0=9F=94=A8=20refactor:=20useQuery?= =?UTF-8?q?=EB=A5=BC=20useSuspenseQuery=EB=A1=9C=20=EA=B5=90=EC=B2=B4=20?= =?UTF-8?q?=EB=B0=8F=20error=20=EC=B2=98=EB=9F=AC=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shared/hooks/queries/useGetWorkspace.ts | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/apps/client/src/shared/hooks/queries/useGetWorkspace.ts b/apps/client/src/shared/hooks/queries/useGetWorkspace.ts index 23cb790..83e85e7 100644 --- a/apps/client/src/shared/hooks/queries/useGetWorkspace.ts +++ b/apps/client/src/shared/hooks/queries/useGetWorkspace.ts @@ -3,16 +3,15 @@ import { createUserId, getUserId, removeCssClassNamePrefix } from '@/shared/util import { useClassBlockStore, useCssPropsStore, + useImageModalStore, useResetCssStore, useWorkspaceChangeStatusStore, useWorkspaceStore, - useImageModalStore, } from '@/shared/store'; import { WorkspaceApi } from '@/shared/api'; -import toast from 'react-hot-toast'; import { useEffect } from 'react'; -import { useQuery } from '@tanstack/react-query'; +import { useSuspenseQuery } from '@tanstack/react-query'; import { workspaceKeys } from '@/shared/hooks'; export const useGetWorkspace = (workspaceId: string) => { @@ -24,29 +23,19 @@ export const useGetWorkspace = (workspaceId: string) => { const { resetChangedStatusState } = useWorkspaceChangeStatusStore(); const { setIsResetCssChecked } = useResetCssStore(); const { setInitialImageMap, setInitialImageList } = useImageModalStore(); - const { data, isPending, isError } = useQuery({ + const { data, isPending, isError } = useSuspenseQuery({ queryKey: workspaceKeys.detail(workspaceId), queryFn: () => { + resetChangedStatusState(); return workspaceApi.getWorkspace(userId, workspaceId); }, }); useEffect(() => { - resetChangedStatusState(); - }, []); - - useEffect(() => { - if (isError) { - toast.error('워크스페이스 정보 불러오기 실패'); - return; - } - if (!data) { + if (!isError || !data || !data.workspaceDto) { return; } - if (!data.workspaceDto) { - return; - } setName(data.workspaceDto.name); Object.keys(data.workspaceDto.totalCssPropertyObj).forEach((className) => { createCssClassBlock(className); From e34558ea01444d9d8b51624a3b76b18f6b220065 Mon Sep 17 00:00:00 2001 From: lee0jae330 Date: Wed, 15 Jan 2025 00:23:10 +0900 Subject: [PATCH 02/10] =?UTF-8?q?=F0=9F=94=A8=20refactor:=20=EB=A1=9C?= =?UTF-8?q?=EB=94=A9=20UI=20=EB=B0=8F=20=EC=97=90=EB=9F=AC=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=EC=BD=94=EB=93=9C=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/Workspacepage/WorkspacePage.tsx | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/apps/client/src/pages/Workspacepage/WorkspacePage.tsx b/apps/client/src/pages/Workspacepage/WorkspacePage.tsx index 32f7bb1..4078b58 100644 --- a/apps/client/src/pages/Workspacepage/WorkspacePage.tsx +++ b/apps/client/src/pages/Workspacepage/WorkspacePage.tsx @@ -1,10 +1,9 @@ -import { ImageTagModal, CoachMark, WorkspaceContent, WorkspacePageHeader } from '@/widgets'; +import { CoachMark, ImageTagModal, WorkspaceContent, WorkspacePageHeader } from '@/widgets'; +import { useEffect, useLayoutEffect } from 'react'; import { useGetWorkspace, usePreventLeaveWorkspacePage } from '@/shared/hooks'; -import { Loading } from '@/shared/ui'; -import { NotFound } from '@/pages/NotFound/NotFound'; -import { useParams } from 'react-router-dom'; -import { useLayoutEffect, useEffect } from 'react'; + import { useCoachMarkStore } from '@/shared/store/useCoachMarkStore'; +import { useParams } from 'react-router-dom'; /** * @@ -13,7 +12,7 @@ import { useCoachMarkStore } from '@/shared/store/useCoachMarkStore'; */ export const WorkspacePage = () => { const { workspaceId } = useParams(); - const { isPending, isError } = useGetWorkspace(workspaceId as string); + useGetWorkspace(workspaceId as string); usePreventLeaveWorkspacePage(); const { currentStep, isCoachMarkOpen, openCoachMark } = useCoachMarkStore(); const toolboxDiv = document.querySelector('.blocklyToolboxDiv'); @@ -36,14 +35,9 @@ export const WorkspacePage = () => { } }, [currentStep, toolboxDiv]); - if (isError) { - return ; - } - return ( <>
- {isPending && } {isCoachMarkOpen && } From 311011a61fcf672c090c0d8e0387e9d364c50bee Mon Sep 17 00:00:00 2001 From: lee0jae330 Date: Wed, 15 Jan 2025 00:24:38 +0900 Subject: [PATCH 03/10] =?UTF-8?q?=F0=9F=94=A8=20refactor:=20suspense=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9=20=EB=B0=8F=20error=20boundy=20fallback?= =?UTF-8?q?=EC=97=90=20workspace=20=EC=97=90=EB=9F=AC=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/app/App.tsx | 14 ++++++++------ .../WorkspaceErrorPage/WorkspaceErrorPage.tsx | 15 +++++++++++++++ apps/client/src/pages/index.ts | 4 +++- 3 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 apps/client/src/pages/WorkspaceErrorPage/WorkspaceErrorPage.tsx diff --git a/apps/client/src/app/App.tsx b/apps/client/src/app/App.tsx index 6be0a6f..bee9dc1 100644 --- a/apps/client/src/app/App.tsx +++ b/apps/client/src/app/App.tsx @@ -1,9 +1,10 @@ +import { ErrorPage, WorkspaceErrorPage } from '@/pages'; import { RouterProvider, createBrowserRouter } from 'react-router-dom'; -import { ToasterWithMax } from '@/shared/ui'; -import { ErrorPage } from '@/pages/ErrorPage/ErrorPage'; -import { lazy, Suspense } from 'react'; -import { Loading } from '@/shared/ui'; +import { Suspense, lazy } from 'react'; + import { Helmet } from 'react-helmet-async'; +import { Loading } from '@/shared/ui'; +import { ToasterWithMax } from '@/shared/ui'; // lazy 로딩 const HomePage = lazy(() => @@ -11,7 +12,7 @@ const HomePage = lazy(() => ); const WorkspacePage = lazy(() => - import('@/pages/Workspacepage/WorkspacePage').then((module) => ({ + import('@/pages/WorkspacePage/WorkspacePage').then((module) => ({ default: module.WorkspacePage, })) ); @@ -47,12 +48,13 @@ const router = createBrowserRouter([ BooLock - 작업 공간 + }> ), - errorElement: , + errorElement: , }, { path: '*', diff --git a/apps/client/src/pages/WorkspaceErrorPage/WorkspaceErrorPage.tsx b/apps/client/src/pages/WorkspaceErrorPage/WorkspaceErrorPage.tsx new file mode 100644 index 0000000..afc153f --- /dev/null +++ b/apps/client/src/pages/WorkspaceErrorPage/WorkspaceErrorPage.tsx @@ -0,0 +1,15 @@ +import { ErrorPage, NotFound } from '@/pages'; + +import toast from 'react-hot-toast'; +import { useRouteError } from 'react-router-dom'; + +export const WorkspaceErrorPage = () => { + const error: any = useRouteError(); + const statusCode = error?.response?.statusCode || error?.status; + console.log('error', error); + if (statusCode === 404) { + toast.error('워크스페이스 정보 불러오기 실패'); + return ; + } + return ; +}; diff --git a/apps/client/src/pages/index.ts b/apps/client/src/pages/index.ts index 90faf1f..93edd6f 100644 --- a/apps/client/src/pages/index.ts +++ b/apps/client/src/pages/index.ts @@ -1,3 +1,5 @@ export { HomePage } from './HomePage/HomePage'; export { NotFound } from './NotFound/NotFound'; -export { WorkspacePage } from './Workspacepage/WorkspacePage'; +export { WorkspacePage } from './WorkspacePage/WorkspacePage'; +export { ErrorPage } from './ErrorPage/ErrorPage'; +export { WorkspaceErrorPage } from './WorkspaceErrorPage/WorkspaceErrorPage'; From 512b1519f9652ab55e34da16acf09541d71c6f95 Mon Sep 17 00:00:00 2001 From: lee0jae330 Date: Wed, 15 Jan 2025 00:25:21 +0900 Subject: [PATCH 04/10] =?UTF-8?q?=F0=9F=94=A8=20refactor:=20useInfinityQue?= =?UTF-8?q?ry=20->=20useSuspenseQuery=EB=A1=9C=20=EA=B5=90=EC=B2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/src/shared/hooks/queries/useGetWorkspaceList.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/client/src/shared/hooks/queries/useGetWorkspaceList.ts b/apps/client/src/shared/hooks/queries/useGetWorkspaceList.ts index b8f5539..891de16 100644 --- a/apps/client/src/shared/hooks/queries/useGetWorkspaceList.ts +++ b/apps/client/src/shared/hooks/queries/useGetWorkspaceList.ts @@ -1,6 +1,7 @@ -import { WorkspaceApi } from '@/shared/api'; import { createUserId, getUserId } from '@/shared/utils'; -import { useInfiniteQuery } from '@tanstack/react-query'; + +import { WorkspaceApi } from '@/shared/api'; +import { useSuspenseInfiniteQuery } from '@tanstack/react-query'; import { workspaceKeys } from '@/shared/hooks'; export const useGetWorkspaceList = () => { const workspaceApi = WorkspaceApi(); @@ -12,7 +13,7 @@ export const useGetWorkspaceList = () => { isFetchingNextPage, isError, data: workspaceList, - } = useInfiniteQuery({ + } = useSuspenseInfiniteQuery({ queryKey: workspaceKeys.list(), queryFn: async ({ pageParam }) => { const isNewUser = !getUserId(); From 057d78d5c599a2a12729e13cfffee990a3f30eea Mon Sep 17 00:00:00 2001 From: lee0jae330 Date: Wed, 15 Jan 2025 00:26:57 +0900 Subject: [PATCH 05/10] =?UTF-8?q?=F0=9F=99=80=20chore:=20400=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=EC=99=80=20404=EC=97=90=EB=9F=AC=EC=9D=98=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=EC=BD=94=EB=93=9C=20=EB=B0=8F=20=EC=83=81=ED=83=9C?= =?UTF-8?q?=20=EB=A9=94=EC=84=B8=EC=A7=80=EA=B0=80=20=EC=9E=98=EB=AA=BB=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EB=90=98=EC=96=B4=20=EC=9E=88=EC=96=B4=20?= =?UTF-8?q?=EC=98=AC=EB=B0=94=EB=A5=B4=EA=B2=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/server/src/utils/customError.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/server/src/utils/customError.ts b/apps/server/src/utils/customError.ts index 8d98579..0cb6956 100644 --- a/apps/server/src/utils/customError.ts +++ b/apps/server/src/utils/customError.ts @@ -10,14 +10,14 @@ export class CustomError extends Error { } export class NotFoundError extends CustomError { - constructor(message = 'Bad request') { - super(message, errorStatus.HTTP_400_BAD_REQUEST); + constructor(message = 'Resource not found') { + super(message, errorStatus.HTTP_404_NOT_FOUND); } } export class BadRequestError extends CustomError { - constructor(message = 'Resource not found') { - super(message, errorStatus.HTTP_404_NOT_FOUND); + constructor(message = 'Bad request') { + super(message, errorStatus.HTTP_400_BAD_REQUEST); } } From 5b2ac98806e7cdc4db8cd6f0c160eaeabf3251d8 Mon Sep 17 00:00:00 2001 From: lee0jae330 Date: Wed, 15 Jan 2025 00:27:54 +0900 Subject: [PATCH 06/10] =?UTF-8?q?=F0=9F=90=9B=20fix:=20=EA=B8=B0=EC=A1=B4?= =?UTF-8?q?=20=EC=97=90=EB=9F=AC=20=EB=B0=9C=EC=83=9D=20=EC=8B=9C=20500=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=EB=A1=9C=EB=A7=8C=20=EC=9D=91=EB=8B=B5?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/src/middlewares/errorMiddleware.ts | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/apps/server/src/middlewares/errorMiddleware.ts b/apps/server/src/middlewares/errorMiddleware.ts index a5e8c8b..1da505f 100644 --- a/apps/server/src/middlewares/errorMiddleware.ts +++ b/apps/server/src/middlewares/errorMiddleware.ts @@ -1,9 +1,17 @@ -import { Request, Response, NextFunction } from 'express'; -import { CustomError } from '../utils/customError'; +import { + BadRequestError, + CustomError, + ForbiddenError, + UnauthorizedError, +} from '../utils/customError'; +import { NextFunction, Request, Response } from 'express'; + +import { NotFound } from '@aws-sdk/client-s3'; import { errorStatus } from '../utils/constants'; // eslint-disable-next-line no-unused-vars export const errorMiddleware = (err: Error, req: Request, res: Response, _next: NextFunction) => { + console.log(err.constructor.name); const handler = errorHandlers[err.constructor.name] || errorHandlers['DefaultError']; console.error(err); @@ -19,4 +27,16 @@ const errorHandlers: { [key: string]: (err: any, res: Response) => void } = { CustomError: (err: CustomError, res: Response) => { res.status(err.statusCode).json({ message: err.message }); }, + NotFoundError: (err: NotFound, res: Response) => { + res.status(errorStatus.HTTP_404_NOT_FOUND).json({ message: err.message }); + }, + BadRequestError: (err: BadRequestError, res: Response) => { + res.status(errorStatus.HTTP_400_BAD_REQUEST).json({ message: err.message }); + }, + UnauthorizedError: (err: UnauthorizedError, res: Response) => { + res.status(errorStatus.HTTP_401_UNAUTHORIZED).json({ message: err.message }); + }, + ForbiddenError: (err: ForbiddenError, res: Response) => { + res.status(errorStatus.HTTP_403_FORBIDDEN).json({ message: err.message }); + }, }; From c34bab2db1bb6eb8632883705edfca7de544ebf0 Mon Sep 17 00:00:00 2001 From: lee0jae330 Date: Wed, 15 Jan 2025 00:28:57 +0900 Subject: [PATCH 07/10] =?UTF-8?q?=F0=9F=94=A8=20refactor:=20workspaceConta?= =?UTF-8?q?iner=EC=97=90=EC=84=9C=20=EC=9B=8C=ED=81=AC=EC=8A=A4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=8A=A4=20=EB=8D=B0=EC=9D=B4=ED=84=B0=EB=A5=BC=20?= =?UTF-8?q?=EB=A0=8C=EB=8D=94=EB=A7=81=ED=95=98=EA=B3=A0=20=ED=8E=98?= =?UTF-8?q?=EC=B9=AD=ED=95=98=EB=8A=94=20=EB=B6=80=EB=B6=84=EC=9D=84=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkspaceContainer.stories.tsx | 2 +- .../WorkspaceContainer/WorkspaceContainer.tsx | 25 ++++++------------- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/apps/client/src/widgets/home/WorkspaceContainer/WorkspaceContainer.stories.tsx b/apps/client/src/widgets/home/WorkspaceContainer/WorkspaceContainer.stories.tsx index 7b22b86..f2b36a3 100644 --- a/apps/client/src/widgets/home/WorkspaceContainer/WorkspaceContainer.stories.tsx +++ b/apps/client/src/widgets/home/WorkspaceContainer/WorkspaceContainer.stories.tsx @@ -6,7 +6,7 @@ const meta: Meta = { title: 'widgets/home/WorkspaceContainer', component: WorkspaceContainer, parameters: { - layout: 'fullscreen', + layout: 'centered', }, tags: ['autodocs'], }; diff --git a/apps/client/src/widgets/home/WorkspaceContainer/WorkspaceContainer.tsx b/apps/client/src/widgets/home/WorkspaceContainer/WorkspaceContainer.tsx index b7d5857..8da8a85 100644 --- a/apps/client/src/widgets/home/WorkspaceContainer/WorkspaceContainer.tsx +++ b/apps/client/src/widgets/home/WorkspaceContainer/WorkspaceContainer.tsx @@ -1,17 +1,16 @@ -import { EmptyWorkspace, WorkspaceGrid, WorkspaceHeader, WorkspaceList } from '@/widgets'; +import { EmptyWorkspace, WorkspaceGrid, WorkspaceList } from '@/widgets'; import { useGetWorkspaceList, useInfiniteScroll, useVirtualScroll } from '@/shared/hooks'; import { SkeletonWorkspaceList } from '@/shared/ui'; import { TWorkspace } from '@/shared/types'; -import { WorkspaceLoadError } from '@/entities'; /** * * @description - * 워크스페이스 헤더와 그리드를 감싸는 컨테이너 컴포넌트 + * 워크스페이스 리스트를 렌더링하는 컨테이너 컴포넌트 */ export const WorkspaceContainer = () => { - const { hasNextPage, fetchNextPage, isPending, isFetchingNextPage, isError, workspaceList } = + const { hasNextPage, fetchNextPage, isPending, isFetchingNextPage, workspaceList } = useGetWorkspaceList(); const { renderedData, offsetY, totalHeight } = useVirtualScroll({ @@ -33,17 +32,8 @@ export const WorkspaceContainer = () => { const nextFetchTargetRef = useInfiniteScroll({ intersectionCallback: fetchCallback }); return ( -
- - {isPending && ( - - - - )} - {isError ? ( - - ) : ( - workspaceList && + <> + {workspaceList && (workspaceList.length === 0 ? ( ) : ( @@ -57,11 +47,10 @@ export const WorkspaceContainer = () => { {isFetchingNextPage && }
- )) - )} + ))} {!isPending && !isFetchingNextPage && hasNextPage && (
)} - + ); }; From e2776d7586ab8b33f62b8ed21a0d65ce5f1cbf14 Mon Sep 17 00:00:00 2001 From: lee0jae330 Date: Wed, 15 Jan 2025 00:29:52 +0900 Subject: [PATCH 08/10] =?UTF-8?q?=F0=9F=99=80=20chore:=20=EC=BB=B4?= =?UTF-8?q?=ED=8F=AC=EB=84=8C=ED=8A=B8=20=EB=B6=84=EB=A6=AC=EC=97=90=20?= =?UTF-8?q?=EB=94=B0=EB=A5=B8=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/pages/HomePage/HomePage.tsx | 4 ++-- .../WorkspaceSection.stories.tsx | 22 +++++++++++++++++++ .../WorkspaceSection/WorkspaceSection.tsx | 20 +++++++++++++++++ apps/client/src/widgets/index.ts | 3 ++- 4 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 apps/client/src/widgets/home/WorkspaceSection/WorkspaceSection.stories.tsx create mode 100644 apps/client/src/widgets/home/WorkspaceSection/WorkspaceSection.tsx diff --git a/apps/client/src/pages/HomePage/HomePage.tsx b/apps/client/src/pages/HomePage/HomePage.tsx index abe0c37..2f7a462 100644 --- a/apps/client/src/pages/HomePage/HomePage.tsx +++ b/apps/client/src/pages/HomePage/HomePage.tsx @@ -1,4 +1,4 @@ -import { Banner, HomeHeader, WorkspaceContainer, WorkspaceModal } from '@/widgets'; +import { Banner, HomeHeader, WorkspaceModal, WorkspaceSection } from '@/widgets'; import { useClassBlockStore, useLoadingStore, useWorkspaceStore } from '@/shared/store'; import { Loading } from '@/shared/ui'; @@ -26,7 +26,7 @@ export const HomePage = () => {
- +
diff --git a/apps/client/src/widgets/home/WorkspaceSection/WorkspaceSection.stories.tsx b/apps/client/src/widgets/home/WorkspaceSection/WorkspaceSection.stories.tsx new file mode 100644 index 0000000..0ab8538 --- /dev/null +++ b/apps/client/src/widgets/home/WorkspaceSection/WorkspaceSection.stories.tsx @@ -0,0 +1,22 @@ +import { Meta, StoryObj } from '@storybook/react'; + +import { WorkspaceSection } from './WorkspaceSection'; + +const meta: Meta = { + title: 'widgets/home/WorkspaceSection', + component: WorkspaceSection, + parameters: { + layout: 'fullscreen', + }, + tags: ['autodocs'], +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + // propsname: value, + }, +}; diff --git a/apps/client/src/widgets/home/WorkspaceSection/WorkspaceSection.tsx b/apps/client/src/widgets/home/WorkspaceSection/WorkspaceSection.tsx new file mode 100644 index 0000000..7f1184d --- /dev/null +++ b/apps/client/src/widgets/home/WorkspaceSection/WorkspaceSection.tsx @@ -0,0 +1,20 @@ +import { WorkspaceContainer, WorkspaceHeader } from '@/widgets'; + +import { SkeletonWorkspaceList } from '@/shared/ui'; +import { Suspense } from 'react'; + +/** + * + * @description + * 워크스페이스 헤더와 컨테이너를 합친 섹션 컴포넌트 + */ +export const WorkspaceSection = () => { + return ( +
+ + }> + + +
+ ); +}; diff --git a/apps/client/src/widgets/index.ts b/apps/client/src/widgets/index.ts index 68e0015..b4ddcd0 100644 --- a/apps/client/src/widgets/index.ts +++ b/apps/client/src/widgets/index.ts @@ -4,8 +4,9 @@ export { WorkspaceList } from './home/WorkspaceList/WorkspaceList'; export { WorkspaceHeader } from './home/WorkspaceHeader/WorkspaceHeader'; export { EmptyWorkspace } from './home/EmptyWorkspace/EmptyWorkspace'; export { WorkspaceGrid } from './home/WorkspaceGrid/WorkspaceGrid'; -export { WorkspaceContainer } from './home/WorkspaceContainer/WorkspaceContainer'; +export { WorkspaceSection } from './home/WorkspaceSection/WorkspaceSection'; export { WorkspaceModal } from './home/WorkspaceModal/WorkspaceModal'; +export { WorkspaceContainer } from './home/WorkspaceContainer/WorkspaceContainer'; export { PreviewBox } from './workspace/PreviewBox/PreviewBox'; export { CoachMark } from './workspace/CoachMark/CoachMark'; From cce87b2285e40e8bbb3805d2f77c7a2e633b7757 Mon Sep 17 00:00:00 2001 From: lee0jae330 Date: Wed, 15 Jan 2025 01:29:29 +0900 Subject: [PATCH 09/10] =?UTF-8?q?=F0=9F=99=80=20chore:=20github=20action?= =?UTF-8?q?=20=EC=97=90=EC=84=9C=20=ED=8C=8C=EC=9D=BC=EB=AA=85=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=EC=9D=84=20=EA=B0=90=EC=A7=80=ED=95=98=EC=A7=80=20?= =?UTF-8?q?=EB=AA=BB=ED=95=9C=20=EB=AC=B8=EC=A0=9C=EB=A1=9C=20=EC=9D=B8?= =?UTF-8?q?=ED=95=B4=20=ED=8C=8C=EC=9D=BC=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/app/App.tsx | 2 +- apps/client/src/pages/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/client/src/app/App.tsx b/apps/client/src/app/App.tsx index bee9dc1..a921e82 100644 --- a/apps/client/src/app/App.tsx +++ b/apps/client/src/app/App.tsx @@ -12,7 +12,7 @@ const HomePage = lazy(() => ); const WorkspacePage = lazy(() => - import('@/pages/WorkspacePage/WorkspacePage').then((module) => ({ + import('@/pages/Workspacepage/WorkspacePage').then((module) => ({ default: module.WorkspacePage, })) ); diff --git a/apps/client/src/pages/index.ts b/apps/client/src/pages/index.ts index 93edd6f..a4d2149 100644 --- a/apps/client/src/pages/index.ts +++ b/apps/client/src/pages/index.ts @@ -1,5 +1,5 @@ export { HomePage } from './HomePage/HomePage'; export { NotFound } from './NotFound/NotFound'; -export { WorkspacePage } from './WorkspacePage/WorkspacePage'; +export { WorkspacePage } from './Workspacepage/WorkspacePage'; export { ErrorPage } from './ErrorPage/ErrorPage'; export { WorkspaceErrorPage } from './WorkspaceErrorPage/WorkspaceErrorPage'; From f704bc9c3c70e8b09b3e4e51a55dbf326f41ef99 Mon Sep 17 00:00:00 2001 From: lee0jae330 Date: Wed, 15 Jan 2025 14:33:09 +0900 Subject: [PATCH 10/10] =?UTF-8?q?=F0=9F=99=80=20chore:=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20console.log=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/pages/WorkspaceErrorPage/WorkspaceErrorPage.tsx | 1 - apps/server/src/middlewares/errorMiddleware.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/apps/client/src/pages/WorkspaceErrorPage/WorkspaceErrorPage.tsx b/apps/client/src/pages/WorkspaceErrorPage/WorkspaceErrorPage.tsx index afc153f..eb99bf2 100644 --- a/apps/client/src/pages/WorkspaceErrorPage/WorkspaceErrorPage.tsx +++ b/apps/client/src/pages/WorkspaceErrorPage/WorkspaceErrorPage.tsx @@ -6,7 +6,6 @@ import { useRouteError } from 'react-router-dom'; export const WorkspaceErrorPage = () => { const error: any = useRouteError(); const statusCode = error?.response?.statusCode || error?.status; - console.log('error', error); if (statusCode === 404) { toast.error('워크스페이스 정보 불러오기 실패'); return ; diff --git a/apps/server/src/middlewares/errorMiddleware.ts b/apps/server/src/middlewares/errorMiddleware.ts index 1da505f..aaedc57 100644 --- a/apps/server/src/middlewares/errorMiddleware.ts +++ b/apps/server/src/middlewares/errorMiddleware.ts @@ -11,7 +11,6 @@ import { errorStatus } from '../utils/constants'; // eslint-disable-next-line no-unused-vars export const errorMiddleware = (err: Error, req: Request, res: Response, _next: NextFunction) => { - console.log(err.constructor.name); const handler = errorHandlers[err.constructor.name] || errorHandlers['DefaultError']; console.error(err);