diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-10-29 01:58:40 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-10-29 01:58:40 +0000 |
| commit | 5202c4b56d9565c7ac0c2a62255763462cef0d3d (patch) | |
| tree | cce1b09818dc4e1b0787b477f0b37dfb40c27245 | |
| parent | 5b0994f2af11c77b61ac59df6211ccb20fae4d44 (diff) | |
(임수민) 데이터룸 요청사항 반영
| -rw-r--r-- | app/[lng]/partners/data-room/[projectId]/layout.tsx | 8 | ||||
| -rw-r--r-- | app/api/data-room/[projectId]/route.ts | 6 | ||||
| -rw-r--r-- | app/api/projects/[projectId]/route.ts | 8 | ||||
| -rw-r--r-- | components/layout/HeaderSimple.tsx | 8 | ||||
| -rw-r--r-- | lib/users/auth/email-auth.ts | 4 |
5 files changed, 22 insertions, 12 deletions
diff --git a/app/[lng]/partners/data-room/[projectId]/layout.tsx b/app/[lng]/partners/data-room/[projectId]/layout.tsx index d2e74f8e..80139f2d 100644 --- a/app/[lng]/partners/data-room/[projectId]/layout.tsx +++ b/app/[lng]/partners/data-room/[projectId]/layout.tsx @@ -1,16 +1,18 @@ // app/projects/[projectId]/layout.tsx import { ProjectNav } from '@/components/project/ProjectNav'; -export default function ProjectLayout({ +export default async function ProjectLayout({ children, params, }: { children: React.ReactNode; - params: { projectId: string }; + params: Promise<{ projectId: string }>; }) { + const { projectId } = await params; + return ( <div className="flex flex-col h-full"> - <ProjectNav projectId={params.projectId} /> + <ProjectNav projectId={projectId} /> <div className="flex-1 overflow-y-auto"> {children} </div> diff --git a/app/api/data-room/[projectId]/route.ts b/app/api/data-room/[projectId]/route.ts index 643dcf0f..2df20fc8 100644 --- a/app/api/data-room/[projectId]/route.ts +++ b/app/api/data-room/[projectId]/route.ts @@ -19,9 +19,11 @@ const createFileSchema = z.object({ // 파일 목록 조회 export async function GET( request: NextRequest, - { params }: { params: { projectId: string } } + { params }: { params: Promise<{ projectId: string }> } ) { try { + const { projectId } = await params; + const session = await getServerSession(authOptions); if (!session?.user) { return NextResponse.json({ error: '인증이 필요합니다' }, { status: 401 }); @@ -44,7 +46,7 @@ export async function GET( // viewMode가 tree이거나 includeAll이 true인 경우 전체 목록 가져오기 const files = await fileService.getFileList( - params.projectId, + projectId, parentId, context, { diff --git a/app/api/projects/[projectId]/route.ts b/app/api/projects/[projectId]/route.ts index 38c11930..496b405c 100644 --- a/app/api/projects/[projectId]/route.ts +++ b/app/api/projects/[projectId]/route.ts @@ -8,9 +8,11 @@ import { z } from 'zod'; // GET: 프로젝트 정보 조회 export async function GET( request: NextRequest, - { params }: { params: { projectId: string } } + { params }: { params: Promise<{ projectId: string }> } ) { try { + const { projectId } = await params; + const session = await getServerSession(authOptions); if (!session?.user) { return NextResponse.json({ error: '인증이 필요합니다' }, { status: 401 }); @@ -20,7 +22,7 @@ export async function GET( // 프로젝트 접근 권한 확인 const access = await projectService.checkProjectAccess( - params.projectId, + projectId, Number(session.user.id) ); @@ -32,7 +34,7 @@ export async function GET( } // 프로젝트 정보 가져오기 - const project = await projectService.getProject(params.projectId); + const project = await projectService.getProject(projectId); if (!project) { return NextResponse.json( diff --git a/components/layout/HeaderSimple.tsx b/components/layout/HeaderSimple.tsx index f6f60342..425bf796 100644 --- a/components/layout/HeaderSimple.tsx +++ b/components/layout/HeaderSimple.tsx @@ -116,9 +116,11 @@ export function HeaderSimple() { {/* 우측 영역 - 고정 너비와 우선순위로 항상 표시되도록 함 */} <div className="ml-auto flex flex-shrink-0 items-center space-x-2"> {/* 데스크탑에서는 CommandMenu, 모바일에서는 검색 아이콘만 */} - <div className="hidden md:block md:w-auto"> - <CommandMenu /> - </div> + {!pathname?.includes("/partners/data-room") && ( + <div className="hidden md:block md:w-auto"> + <CommandMenu /> + </div> + )} {/* <Button variant="ghost" size="icon" className="md:hidden" aria-label="Search"> <SearchIcon className="h-5 w-5" /> </Button> */} diff --git a/lib/users/auth/email-auth.ts b/lib/users/auth/email-auth.ts index edd4a634..9b87add5 100644 --- a/lib/users/auth/email-auth.ts +++ b/lib/users/auth/email-auth.ts @@ -125,13 +125,15 @@ export async function checkEmailAndStartAuth(email: string): Promise<{ isActive: true, }); + const userLanguage = user.language || 'en'; + // OTP 이메일 전송 await sendEmail({ to: user.email, subject: '로그인 인증번호', template: 'otp', context: { - language: 'ko', + language: userLanguage, name: user.name, otp: otpCode, verificationUrl: '', |
