diff options
Diffstat (limited to 'components/pq')
| -rw-r--r-- | components/pq/client-pq-input-wrapper.tsx | 24 | ||||
| -rw-r--r-- | components/pq/pq-review-detail.tsx | 9 | ||||
| -rw-r--r-- | components/pq/pq-review-table.tsx | 6 |
3 files changed, 25 insertions, 14 deletions
diff --git a/components/pq/client-pq-input-wrapper.tsx b/components/pq/client-pq-input-wrapper.tsx index 89f0fa78..42d2420d 100644 --- a/components/pq/client-pq-input-wrapper.tsx +++ b/components/pq/client-pq-input-wrapper.tsx @@ -9,7 +9,7 @@ import { PQGroupData, ProjectPQ } from "@/lib/pq/service" import { useRouter, useSearchParams } from "next/navigation" interface ClientPQWrapperProps { - allPQData: PQGroupData[] + pqData: PQGroupData[] // 변경: allPQData → pqData (현재 선택된 PQ 데이터) projectPQs: ProjectPQ[] vendorId: number rawSearchParams: { @@ -18,7 +18,7 @@ interface ClientPQWrapperProps { } export function ClientPQWrapper({ - allPQData, + pqData, projectPQs, vendorId, rawSearchParams @@ -28,16 +28,12 @@ export function ClientPQWrapper({ // 클라이언트 측에서 projectId 파싱 const projectId = projectIdParam ? parseInt(projectIdParam, 10) : undefined - + // 현재 프로젝트 정보 찾기 const currentProject = projectId ? projectPQs.find(p => p.projectId === projectId) : null - - // 필요한 경우 여기서 PQ 데이터를 필터링할 수 있음 - // 예: 모든 데이터를 가져왔는데 현재 projectId에 따라 필터링이 필요한 경우 - // const filteredPQData = projectId ? allPQData.filter(...) : allPQData; - + return ( <Shell className="gap-2"> {/* 헤더 - 프로젝트 정보 포함 */} @@ -54,7 +50,7 @@ export function ClientPQWrapper({ PQ에 적절한 응답을 제출하시기 바랍니다. </p> </div> - + {/* 일반/프로젝트 PQ 선택 탭 */} {projectPQs.length > 0 && ( <div className="border-b"> @@ -65,7 +61,11 @@ export function ClientPQWrapper({ </TabsTrigger> {projectPQs.map(project => ( - <TabsTrigger key={project.projectId} value={`project-${project.projectId}`} asChild> + <TabsTrigger + key={project.projectId} + value={`project-${project.projectId}`} + asChild + > <a href={`/partners/pq?projectId=${project.projectId}`}> {project.projectCode} </a> @@ -75,11 +75,11 @@ export function ClientPQWrapper({ </Tabs> </div> )} - + {/* PQ 입력 탭 */} <React.Suspense fallback={<Skeleton className="h-7 w-52" />}> <PQInputTabs - data={allPQData} + data={pqData} vendorId={vendorId} projectId={projectId} projectData={currentProject} diff --git a/components/pq/pq-review-detail.tsx b/components/pq/pq-review-detail.tsx index e1bc5510..e636caae 100644 --- a/components/pq/pq-review-detail.tsx +++ b/components/pq/pq-review-detail.tsx @@ -32,6 +32,7 @@ import { import { Card } from "@/components/ui/card" import { formatDate } from "@/lib/utils" import { downloadFileAction } from "@/lib/downloadFile" +import { useSession } from "next-auth/react" // Importando o hook do next-auth // 코멘트 상태를 위한 인터페이스 정의 interface PendingComment { @@ -72,6 +73,10 @@ export default function VendorPQAdminReview({ pqType }: VendorPQAdminReviewProps) { const { toast } = useToast() + const { data: session } = useSession() + const reviewerName = session?.user?.name || "Unknown Reviewer" + const reviewerId = session?.user?.id + // State for dynamically loaded data const [pqData, setPqData] = React.useState<PQGroupData[]>(data) @@ -272,7 +277,9 @@ export default function VendorPQAdminReview({ vendorId: vendor.id, projectId: pqType === 'project' ? projectId : undefined, comment: itemComments, - generalComment: requestComment || undefined + generalComment: requestComment || undefined, + reviewerName, + reviewerId }); if (res.ok) { diff --git a/components/pq/pq-review-table.tsx b/components/pq/pq-review-table.tsx index e778cf91..08b4de61 100644 --- a/components/pq/pq-review-table.tsx +++ b/components/pq/pq-review-table.tsx @@ -25,6 +25,7 @@ import { addReviewCommentAction, getItemReviewLogsAction } from "@/lib/pq/servic import { useToast } from "@/hooks/use-toast" import { formatDate } from "@/lib/utils" import { downloadFileAction } from "@/lib/downloadFile" +import { useSession } from "next-auth/react" interface ReviewLog { id: number @@ -189,6 +190,9 @@ function ItemReviewButton({ answerId, checkPoint, onCommentAdded }: ItemReviewBu const [newComment, setNewComment] = React.useState(""); const [isLoading, setIsLoading] = React.useState(false); const [hasComments, setHasComments] = React.useState(false); + const { data: session } = useSession() + const reviewerName = session?.user?.name || "Unknown Reviewer" + const reviewerId = session?.user?.id // If there's no answerId, item wasn't answered if (!answerId) { @@ -258,7 +262,7 @@ function ItemReviewButton({ answerId, checkPoint, onCommentAdded }: ItemReviewBu const res = await addReviewCommentAction({ answerId, comment: newComment, - reviewerName: "AdminUser", + reviewerName, }); if (res.ok) { |
