"use client" import * as React from "react" import { useRouter, useSearchParams } from "next/navigation" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { ProjectInfoTab } from "./project-info-tab" import { QuotationResponseTab } from "./quotation-response-tab" import { CommunicationTab } from "./communication-tab" // 프로젝트 스냅샷 타입 정의 interface ProjectSnapshot { scDt?: string klDt?: string lcDt?: string dlDt?: string dockNo?: string dockNm?: string projNo?: string projNm?: string ownerNm?: string kunnrNm?: string cls1Nm?: string projMsrm?: number ptypeNm?: string sector?: string estmPm?: string } // 시리즈 스냅샷 타입 정의 interface SeriesSnapshot { sersNo?: string scDt?: string klDt?: string lcDt?: string dlDt?: string dockNo?: string dockNm?: string } interface QuotationData { id: number status: string totalPrice: string | null currency: string | null validUntil: Date | null remark: string | null rfq: { id: number rfqCode: string | null materialCode: string | null dueDate: Date | null status: string | null remark: string | null projectSnapshot?: ProjectSnapshot | null seriesSnapshot?: SeriesSnapshot[] | null item?: { id: number itemCode: string | null itemName: string | null } | null biddingProject?: { id: number pspid: string | null projNm: string | null } | null createdByUser?: { id: number name: string | null email: string | null } | null } | null vendor: { id: number vendorName: string vendorCode: string | null } | null } interface TechSalesQuotationTabsProps { quotation: QuotationData defaultTab?: string } export function TechSalesQuotationTabs({ quotation, defaultTab = "project" }: TechSalesQuotationTabsProps) { const router = useRouter() const searchParams = useSearchParams() const currentTab = searchParams?.get("tab") || defaultTab const handleTabChange = (value: string) => { const params = new URLSearchParams(searchParams?.toString() || "") params.set("tab", value) router.push(`?${params.toString()}`, { scroll: false }) } return ( 프로젝트 및 RFQ 정보 견적 응답 커뮤니케이션
) }