diff options
Diffstat (limited to 'lib/bidding/vendor/partners-bidding-list.tsx')
| -rw-r--r-- | lib/bidding/vendor/partners-bidding-list.tsx | 47 |
1 files changed, 41 insertions, 6 deletions
diff --git a/lib/bidding/vendor/partners-bidding-list.tsx b/lib/bidding/vendor/partners-bidding-list.tsx index c0356e22..aa185c3a 100644 --- a/lib/bidding/vendor/partners-bidding-list.tsx +++ b/lib/bidding/vendor/partners-bidding-list.tsx @@ -13,6 +13,8 @@ import { DataTable } from '@/components/data-table/data-table' import { DataTableAdvancedToolbar } from '@/components/data-table/data-table-advanced-toolbar' import { getPartnersBiddingListColumns } from './partners-bidding-list-columns' import { getBiddingListForPartners, PartnersBiddingListItem } from '../detail/service' +import { PartnersBiddingToolbarActions } from './partners-bidding-toolbar-actions' +import { PartnersBiddingAttendanceDialog } from './partners-bidding-attendance-dialog' interface PartnersBiddingListProps { companyId: number @@ -133,6 +135,19 @@ export function PartnersBiddingList({ companyId }: PartnersBiddingListProps) { clearOnDefault: true, }) + // 데이터 새로고침 함수 + const refreshData = React.useCallback(async () => { + try { + setIsLoading(true) + const result = await getBiddingListForPartners(companyId) + setData(result) + } catch (error) { + console.error('Failed to refresh bidding list:', error) + } finally { + setIsLoading(false) + } + }, [companyId]) + if (isLoading) { return ( <div className="flex items-center justify-center py-12"> @@ -145,12 +160,32 @@ export function PartnersBiddingList({ companyId }: PartnersBiddingListProps) { } return ( - <DataTable table={table}> - <DataTableAdvancedToolbar - table={table} - filterFields={advancedFilterFields} - shallow={false} + <> + <DataTable table={table}> + <DataTableAdvancedToolbar + table={table} + filterFields={advancedFilterFields} + shallow={false} + > + <PartnersBiddingToolbarActions table={table} onRefresh={refreshData} setRowAction={setRowAction} /> + </DataTableAdvancedToolbar> + </DataTable> + + <PartnersBiddingAttendanceDialog + open={rowAction?.type === "attendance"} + onOpenChange={() => setRowAction(null)} + biddingDetail={rowAction?.row.original ? { + id: rowAction.row.original.biddingId, + biddingNumber: rowAction.row.original.biddingNumber, + title: rowAction.row.original.title, + preQuoteDate: null, + biddingRegistrationDate: rowAction.row.original.submissionStartDate?.toISOString() || null, + evaluationDate: null, + } : null} + biddingCompanyId={rowAction?.row.original?.biddingCompanyId || 0} + isAttending={rowAction?.row.original?.isAttendingMeeting || null} + onSuccess={refreshData} /> - </DataTable> + </> ) } |
