diff options
Diffstat (limited to 'lib/bidding/list/biddings-table.tsx')
| -rw-r--r-- | lib/bidding/list/biddings-table.tsx | 54 |
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 |
