summaryrefslogtreecommitdiff
path: root/lib/bidding/list/biddings-table.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-08-13 11:05:09 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-08-13 11:05:09 +0000
commit33be47506f0aa62b969d82521580a29e95080268 (patch)
tree6b7e232f2d78ef8775944ea085a36b3ccbce7d95 /lib/bidding/list/biddings-table.tsx
parent2ac95090157c355ea1bd0b8eb1e1e5e2bd56faf4 (diff)
(대표님) 입찰, 법무검토, EDP 변경사항 대응, dolce 개선, form-data 개선, 정규업체 등록관리 추가
(최겸) pq 미사용 컴포넌트 및 페이지 제거, 파일 라우트에 pq 적용
Diffstat (limited to 'lib/bidding/list/biddings-table.tsx')
-rw-r--r--lib/bidding/list/biddings-table.tsx54
1 files changed, 53 insertions, 1 deletions
diff --git a/lib/bidding/list/biddings-table.tsx b/lib/bidding/list/biddings-table.tsx
index ce4aade9..672b756b 100644
--- a/lib/bidding/list/biddings-table.tsx
+++ b/lib/bidding/list/biddings-table.tsx
@@ -21,6 +21,8 @@ import {
biddingTypeLabels
} from "@/db/schema"
import { EditBiddingSheet } from "./edit-bidding-sheet"
+import { SpecificationMeetingDialog, PrDocumentsDialog } from "./bidding-detail-dialogs"
+
interface BiddingsTableProps {
promises: Promise<
@@ -34,6 +36,11 @@ interface BiddingsTableProps {
export function BiddingsTable({ promises }: BiddingsTableProps) {
const [{ data, pageCount }, statusCounts] = React.use(promises)
const [isCompact, setIsCompact] = React.useState<boolean>(false)
+ const [specMeetingDialogOpen, setSpecMeetingDialogOpen] = React.useState(false)
+ const [prDocumentsDialogOpen, setPrDocumentsDialogOpen] = React.useState(false)
+ const [selectedBidding, setSelectedBidding] = React.useState<BiddingListItem | null>(null)
+
+ console.log(data,"data")
const [rowAction, setRowAction] = React.useState<DataTableRowAction<BiddingListItem> | null>(null)
@@ -44,6 +51,25 @@ export function BiddingsTable({ promises }: BiddingsTableProps) {
[setRowAction]
)
+ // rowAction 변경 감지하여 해당 다이얼로그 열기
+ React.useEffect(() => {
+ if (rowAction) {
+ setSelectedBidding(rowAction.row.original)
+
+ switch (rowAction.type) {
+ case "specification_meeting":
+ setSpecMeetingDialogOpen(true)
+ break
+ case "pr_documents":
+ setPrDocumentsDialogOpen(true)
+ break
+ // 기존 다른 액션들은 그대로 유지
+ default:
+ break
+ }
+ }
+ }, [rowAction])
+
const filterFields: DataTableFilterField<BiddingListItem>[] = []
const advancedFilterFields: DataTableAdvancedFilterField<BiddingListItem>[] = [
@@ -104,6 +130,18 @@ export function BiddingsTable({ promises }: BiddingsTableProps) {
}, [])
+ const handleSpecMeetingDialogClose = React.useCallback(() => {
+ setSpecMeetingDialogOpen(false)
+ setRowAction(null)
+ setSelectedBidding(null)
+ }, [])
+
+ const handlePrDocumentsDialogClose = React.useCallback(() => {
+ setPrDocumentsDialogOpen(false)
+ setRowAction(null)
+ setSelectedBidding(null)
+ }, [])
+
return (
<>
@@ -129,7 +167,21 @@ export function BiddingsTable({ promises }: BiddingsTableProps) {
bidding={rowAction?.row.original}
onSuccess={() => router.refresh()}
/>
+
+ {/* 사양설명회 다이얼로그 */}
+ <SpecificationMeetingDialog
+ open={specMeetingDialogOpen}
+ onOpenChange={handleSpecMeetingDialogClose}
+ bidding={selectedBidding}
+ />
+
+ {/* PR 문서 다이얼로그 */}
+ <PrDocumentsDialog
+ open={prDocumentsDialogOpen}
+ onOpenChange={handlePrDocumentsDialogClose}
+ bidding={selectedBidding}
+ />
</>
)
-} \ No newline at end of file
+} \ No newline at end of file